itext
Text till PDF: iText 5 kontra iText 7
Sök…
Anmärkningar
Koden för att konvertera en vanlig textfil till ett PDF-dokument är ganska enkel oavsett om du använder iText 5 eller iText 7. I iText 7 har du fördelen att du kan definiera justeringen på dokumentets nivå. I iText 5 måste du ställa in justeringen för varje separat Paragraph
.
För att förstå den verkliga skillnaden mellan iText 5 och iText 7 i det här exemplet måste vi ta en titt på den resulterande PDF-filen. I iText 5 slutar vi med 35 sidor med text. I iText 7 har vi samma text fördelad på 38 sidor.
Texten är lättare att läsa när den skapas av iText 7 eftersom olika standardvärden används när du skapar layouten. Du kan få samma resultat från iText 5-koden, men då måste du ändra vissa värden med avseende på avstånd.
I iText 7 valdes standardvärdena baserat på 16 års erfarenhet av iText. På så sätt får du ett bättre resultat med mindre kod.
Vill veta mer?
Läs Arbeta med RootElement som är kapitel 5 i iText 7: Handledning för byggstenar . Skaffa gratis e-bok!
Text2Pdf.java (iText 5)
Anta att vi har följande textfil: jekyll_hyde.txt
Hur konverterar vi den till en PDF som ser ut så här:
När vi använder iText 5 använder vi följande kod:
public void createPdf(String dest)
throws DocumentException, IOException {
Document document = new Document();
PdfWriter.getInstance(document, new FileOutputStream(dest));
document.open();
BufferedReader br = new BufferedReader(new FileReader(TEXT));
String line;
Paragraph p;
Font normal = new Font(FontFamily.TIMES_ROMAN, 12);
Font bold = new Font(FontFamily.TIMES_ROMAN, 12, Font.BOLD);
boolean title = true;
while ((line = br.readLine()) != null) {
p = new Paragraph(line, title ? bold : normal);
p.setAlignment(Element.ALIGN_JUSTIFIED);
title = line.isEmpty();
document.add(p);
}
document.close();
}
Källa: utvecklare.itextpdf.com
Text2Pdf.java (iText 7)
Anta att du har följande textfil: jekyll_hyde.txt
Hur konverterar vi den till en PDF som ser ut så här:
När vi använder iText 7, behöver vi följande kod:
public void createPdf(String dest) throws IOException {
PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
Document document = new Document(pdf)
.setTextAlignment(TextAlignment.JUSTIFIED);
BufferedReader br = new BufferedReader(new FileReader(TEXT));
String line;
PdfFont normal = PdfFontFactory.createFont(FontConstants.TIMES_ROMAN);
PdfFont bold = PdfFontFactory.createFont(FontConstants.TIMES_BOLD);
boolean title = true;
while ((line = br.readLine()) != null) {
document.add(new Paragraph(line).setFont(title ? bold : normal));
title = line.isEmpty();
}
document.close();
}
Källa: utvecklare.itextpdf.com och iText 7: Handledning för byggstenar .