Поиск…


замечания

Код для преобразования простого текстового файла в документ PDF довольно прост, используете ли вы iText 5 или iText 7. В iText 7 у вас есть преимущество в том, что вы можете определить выравнивание на уровне документа. В iText 5 вы должны установить выравнивание для каждого отдельного объекта Paragraph .

Чтобы понять реальную разницу между iText 5 и iText 7 в этой паре примеров, мы должны взглянуть на полученный PDF. В iText 5 мы получаем 35 страниц текста. В iText 7 у нас есть тот же текст, который распространяется на 38 страницах.

Текст легче читать при создании iText 7, потому что при создании макета используются разные значения по умолчанию. Вы можете получить тот же результат из iText 5 кода, но тогда вам придется изменить некоторые значения в отношении интервала.

В iText 7 значения по умолчанию были выбраны на основе 16-летнего опыта работы с iText. Таким образом, вы получите лучший результат с меньшим количеством кода.

Хотите узнать больше?

Чтение Работа с RootElement, которая является главой 5 в учебнике iText 7: Building Blocks . Получите бесплатную электронную книгу!

Text2Pdf.java (iText 5)

Предположим, что у нас есть следующий текстовый файл: jekyll_hyde.txt

Как мы преобразуем его в PDF, который выглядит так:

введите описание изображения здесь

При использовании iText 5 мы будем использовать следующий код:

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();
}

Источник: developers.itxtpdf.com

Text2Pdf.java (iText 7)

Предположим, что у вас есть следующий текстовый файл: jekyll_hyde.txt

Как мы преобразуем его в PDF, который выглядит так:

введите описание изображения здесь

При использовании iText 7 нам нужен следующий код:

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();
}

Источник: developers.itxtpdf.com и учебник iText 7: Building Blocks .



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow