Create Document
Neste artigo, vamos mostrar como usar a API Aspose.PDF para Java para gerar e ler facilmente arquivos PDF em aplicativos Java.
A API Aspose.PDF para Java permite que os desenvolvedores de aplicativos Java integrem funcionalidades de processamento de documentos PDF em suas aplicações. Pode ser usada para criar e ler arquivos PDF sem a necessidade de qualquer outro software instalado na máquina subjacente. Aspose.PDF para Java pode ser usado em uma variedade de tipos de aplicativos Java, como aplicativos Desktop, JSP e JSF.
Como Criar Arquivo PDF usando Java
Para criar um arquivo PDF usando Java, os seguintes passos podem ser usados.
-
Crie um objeto da classe Document
-
Adicione um objeto Page à coleção Pages do objeto Document
-
Adicione TextFragment à coleção Paragraphs da página
-
Salve o documento PDF resultante
package com.aspose.pdf.examples;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Scanner;
import javax.imageio.ImageIO;
import com.aspose.pdf.*;
import com.aspose.pdf.Document.CallBackGetHocr;
public class ExampleCreate {
private static String _dataDir = "/home/admin1/pdf-examples/Samples/";
public static void Create() {
Document document = new Document();
//Adicionar página
Page page = document.getPages().add();
// Adicionar texto à nova página
page.getParagraphs().add(new TextFragment("Hello World!"));
// Salvar PDF atualizado
document.save(_dataDir+"HelloWorld_out.pdf");
}
No caso, criamos um documento PDF de uma página com tamanho A4, orientação retrato. Nossa página conterá um “Hello, World” na parte superior esquerda da página.
Além disso, o Aspose.PDF para Java fornece a capacidade de criar um PDF pesquisável. Vamos aprender o próximo trecho de código:
public static void CreateSearchablePDF() {
Document doc = new Document(_dataDir + "sample1.pdf");
// Criar callBack - lógica para reconhecer texto em imagens de pdf. Use suporte OCR externo que suporte o padrão HOCR(http://en.wikipedia.org/wiki/HOCR).
// Usamos o OCR gratuito google tesseract(http://en.wikipedia.org/wiki/Tesseract_%28software%29)
CallBackGetHocr cbgh = new CallBackGetHocr() {
@Override
public String invoke(java.awt.image.BufferedImage img) {
File outputfile = new File(_dataDir + "test.jpg");
try {
ImageIO.write(img, "jpg", outputfile);
} catch (IOException e1) {
e1.printStackTrace();
}
try {
java.lang.Process process = Runtime.getRuntime().exec("tesseract" + " " + _dataDir + "test.jpg" + " " + _dataDir + "out hocr");
System.out.println("tesseract" + " " + _dataDir + "test.jpg" + " " + _dataDir + "out hocr");
process.waitFor();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
// lendo out.html para string
File file = new File(_dataDir + "out.hocr");
StringBuilder fileContents = new StringBuilder((int) file.length());
Scanner scanner = null;
try {
scanner = new Scanner(file);
String lineSeparator = System.getProperty("line.separator");
while (scanner.hasNextLine()) {
fileContents.append(scanner.nextLine() + lineSeparator);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
if (scanner != null)
scanner.close();
}
// deletando arquivos temporários
File fileOut = new File(_dataDir + "out.hocr");
if (fileOut.exists()) {
fileOut.delete();
}
File fileTest = new File(_dataDir + "test.jpg");
if (fileTest.exists()) {
fileTest.delete();
}
return fileContents.toString();
}
};
// Fim do callBack
doc.convert(cbgh);
doc.save(_dataDir + "output971.pdf");
}
}