itext
Tekst na PDF: iText 5 kontra iText 7
Szukaj…
Uwagi
Kod do konwersji zwykłego pliku tekstowego na dokument PDF jest dość prosty, bez względu na to, czy używasz iText 5, czy iText 7. W iText 7 masz tę zaletę, że możesz zdefiniować wyrównanie na poziomie dokumentu. W iText 5 musisz ustawić wyrównanie dla każdego osobnego obiektu Paragraph
.
Aby zrozumieć prawdziwą różnicę między iText 5 i iText 7 w tej parze przykładów, musimy spojrzeć na wynikowy plik PDF. W iText 5 mamy 35 stron tekstu. W iText 7 mamy ten sam tekst rozłożony na 38 stronach.
Tekst jest łatwiejszy do odczytania, gdy jest tworzony przez iText 7, ponieważ podczas tworzenia układu używane są różne wartości domyślne. Możesz uzyskać taki sam wynik z kodu iText 5, ale wtedy musiałbyś zmienić niektóre wartości w odniesieniu do odstępów.
W iText 7 wartości domyślne zostały wybrane na podstawie 16 lat doświadczenia z iText. W ten sposób uzyskasz lepszy wynik przy mniejszej ilości kodu.
Chcieć wiedzieć więcej?
Przeczytaj Praca z RootElement, który jest rozdziałem 5 w samouczku iText 7: Building Blocks . Zdobądź bezpłatny ebook!
Text2Pdf.java (iText 5)
Załóżmy, że mamy następujący plik tekstowy: jekyll_hyde.txt
Jak przekonwertować go na plik PDF, który wygląda następująco:
Korzystając z iText 5, użyjemy następującego kodu:
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();
}
Źródło: developers.itextpdf.com
Text2Pdf.java (iText 7)
Załóżmy, że masz następujący plik tekstowy: jekyll_hyde.txt
Jak przekonwertować go na plik PDF, który wygląda następująco:
Podczas korzystania z iText 7 potrzebujemy następującego kodu:
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();
}
Źródło: developers.itextpdf.com i samouczek iText 7: Building Blocks .