Convertir du texte en PDF
Aspose.PDF for Android via Java offre la capacité de convertir des fichiers texte au format PDF. Dans cet article, nous montrons à quel point il est facile et efficace de convertir un fichier texte en PDF en utilisant Aspose.PDF.
Lorsque vous devez convertir un fichier texte en PDF, lisez d’abord le fichier texte source avec un lecteur quelconque. Nous avons utilisé StringBuilder pour lire le contenu du fichier texte. Instanciez l’objet Document et ajoutez une nouvelle page dans la collection Pages. Créez un nouvel objet TextFragment et passez l’objet StringBuilder à son constructeur. Ajoutez un nouveau paragraphe dans la collection Paragraphs en utilisant l’objet TextFragment et enregistrez le fichier PDF résultant à l’aide de la méthode Save de la classe Document.
Convertir un fichier texte simple en PDF
public void convertTXTtoPDF_Simple () {
// Initialize document object
File pdfDocumentFileName=new File(fileStorage, "demo_txt.pdf");
File txtDocumentFileName=new File(fileStorage, "Conversion/rfc822.txt");
// Instantiate a Document object by calling its empty constructor
document=new Document();
// Add a new page in Pages collection of Document
Page page=document.getPages().add();
String string;
StringBuilder stringBuilder=new StringBuilder();
InputStream is;
try {
is=new FileInputStream(txtDocumentFileName);
} catch (FileNotFoundException e) {
resultMessage.setText(e.getMessage());
return;
}
BufferedReader reader=new BufferedReader(new InputStreamReader(is));
while (true) {
try {
if ((string=reader.readLine()) == null) break;
} catch (IOException e) {
resultMessage.setText(e.getMessage());
return;
}
stringBuilder.append(string).append("\n");
}
try {
is.close();
} catch (IOException e) {
resultMessage.setText(e.getMessage());
return;
}
// Create an instance of TextFragment and pass the text from reader object to its
// constructor as argument
TextFragment text=new TextFragment(stringBuilder.toString());
// Add a new text paragraph in paragraphs collection and pass the TextFragment
// object
page.getParagraphs().add(text);
// Save resultant PDF file
try {
document.save(pdfDocumentFileName.toString());
} catch (Exception e) {
resultMessage.setText(e.getMessage());
return;
}
resultMessage.setText(R.string.success_message);
}
Convertir un fichier texte préformaté en PDF
public void convertPreFormattedTextToPdf () {
File txtDocumentFile=new File(fileStorage, "Conversion/rfc822.txt");
File pdfDocumentFileName=new File(fileStorage, "demo_txt.pdf");
Path txtDocumentFileName=Paths.get(txtDocumentFile.toString());
// Read the text file as array of string
List<String> lines;
try {
lines=Files.readAllLines(txtDocumentFileName, ENCODING);
} catch (IOException e) {
resultMessage.setText(e.getMessage());
return;
}
// Instantiate a Document object by calling its empty constructor
document=new Document();
// Add a new page in Pages collection of Document
Page page=document.getPages().add();
int count=4;
Font font=FontRepository.findFont("Droid Sans Mono");
// Set left and right margins for better presentation
page.getPageInfo().getMargin().setLeft(20);
page.getPageInfo().getMargin().setRight(10);
page.getPageInfo().getDefaultTextState().setFont(font);
page.getPageInfo().getDefaultTextState().setFontSize(12);
for (String line : lines) {
// check if line contains "form feed" character
// see https://en.wikipedia.org/wiki/Page_break
if (line.startsWith("\f")) {
page=document.getPages().add();
page.getPageInfo().getMargin().setLeft(20);
page.getPageInfo().getMargin().setRight(10);
page.getPageInfo().getDefaultTextState().setFont(font);
page.getPageInfo().getDefaultTextState().setFontSize(12);
} else {
// Create an instance of TextFragment and
// pass the line to its
// constructor as argument
TextFragment text=new TextFragment(line);
// Add a new text paragraph in paragraphs collection and pass the TextFragment
// object
page.getParagraphs().add(text);
}
}
// Save resultant PDF file
try {
document.save(pdfDocumentFileName.toString());
} catch (Exception e) {
resultMessage.setText(e.getMessage());
return;
}
resultMessage.setText(R.string.success_message);
}