Créer un document
Dans cet article, nous allons montrer comment utiliser l’API Aspose.PDF pour Java pour générer et lire facilement des fichiers PDF dans des applications Java.
L’API Aspose.PDF pour Java permet aux développeurs d’applications Java d’intégrer une fonctionnalité de traitement de documents PDF dans leurs applications. Elle peut être utilisée pour créer et lire des fichiers PDF sans avoir besoin d’installer d’autres logiciels sur la machine sous-jacente. Aspose.PDF pour Java peut être utilisé dans une variété de types d’applications Java telles que les applications Desktop, JSP et JSF.
Comment créer un fichier PDF avec Java
Pour créer un fichier PDF avec Java, les étapes suivantes peuvent être utilisées.
-
Créez un objet de la classe Document
-
Ajoutez un objet Page à la collection Pages de l’objet Document
-
Ajoutez TextFragment à la collection Paragraphs de la page
-
Enregistrez le document PDF résultant
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();
//Ajouter une page
Page page = document.getPages().add();
// Ajouter du texte à la nouvelle page
page.getParagraphs().add(new TextFragment("Bonjour le monde!"));
// Enregistrer le PDF mis à jour
document.save(_dataDir+"HelloWorld_out.pdf");
}
Dans ce cas, nous créons un document PDF d’une page avec un format de page A4, orientation portrait. Notre page contiendra un “Hello, World” dans la partie supérieure gauche de la page.
De plus, Aspose.PDF pour Java offre la possibilité de créer un PDF consultable. Apprenons le prochain extrait de code :
public static void CreateSearchablePDF() {
Document doc = new Document(_dataDir + "sample1.pdf");
// Créer callBack - logique pour reconnaître le texte pour les images pdf. Utilisez un OCR externe prenant en charge la norme HOCR(http://en.wikipedia.org/wiki/HOCR).
// Nous avons utilisé l'OCR gratuit 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();
}
// lecture de out.html dans une chaîne
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();
}
// suppression des fichiers temporaires
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();
}
};
// Fin callBack
doc.convert(cbgh);
doc.save(_dataDir + "output971.pdf");
}
}