Поиск…


замечания

Создание документа, в котором вам нужно переключаться между стилями, часто бывает утомительным в iText 5. Вам нужно создать много объектов Chunk и вам всегда нужно сделать компромисс между применением стилей непосредственно к каждому новому Chunk или созданию вспомогательный метод, который создает Chunk для вас.

Что мы зафиксировали в iText 7:

Теперь можно связать методы. Параметры setFont() , setFontSize() , addStyle() и другие методы возвращают объект, на который они вызывается. Добавление Paragraph с использованием разных стилей теперь можно сделать в одной строке:

document.add(
    new Paragraph()
        .add("In this example, named ")
        .add(new Text("HelloWorldStyles").addStyle(style))
        .add(", we experiment with some text in ")
        .add(new Text("code style").addStyle(style))
        .add("."));

Используя объект Style , вы также можете применять различные свойства (шрифт, цвет шрифта, цвет фона, размер шрифта и т. Д.) За один раз с помощью addStyle() .

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

Прочитайте Знакомство с классом PdfFont, который является главой 1 в учебнике iText 7: Building Blocks . Получите бесплатную электронную книгу!

HelloWorldStyles.java (iText 5)

В этом примере iText 5 нам нужно переключиться между разными стилями в том же документе:

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

Лучший способ сделать это в iText 5 - создать удобный метод, который создает Chunk в стиле, который нужно часто использовать; см. метод createBgChunk() :

public Chunk createBgChunk(String s, Font font) {
    Chunk chunk = new Chunk(s, font);
    chunk.setBackground(BaseColor.LIGHT_GRAY);
    return chunk;
}

Теперь мы можем использовать этот метод в коде, который создает PDF:

public void createPdf(String dest)
throws DocumentException, IOException {
    Document document = new Document();
    PdfWriter.getInstance(document, new FileOutputStream(dest));
    document.open();
    Font code = new Font(FontFamily.COURIER, 12, Font.NORMAL, BaseColor.RED);
    Paragraph p = new Paragraph("In this example, named ");
    p.add(createBgChunk("HelloWorldStyles", code));
    p.add(", we experiment with some text in ");
    p.add(createBgChunk("code style", code));
    p.add(".");
    document.add(p);
    document.close();
}

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

HelloWorldStyles.java (iText 7)

В этом примере iText 7 нам нужно переключиться между разными стилями в том же документе:

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

Лучший способ добиться этого в iText 7 - создать объект Style и применить этот Style к объекту Text :

public void createPdf(String dest) throws IOException {
    PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
    PdfFont code = PdfFontFactory.createFont(FontConstants.COURIER);
    Style style = new Style()
        .setFont(code)
        .setFontSize(12)
        .setFontColor(Color.RED)
        .setBackgroundColor(Color.LIGHT_GRAY);
    try (Document document = new Document(pdf)) {
        document.add(
            new Paragraph()
                .add("In this example, named ")
                .add(new Text("HelloWorldStyles").addStyle(style))
                .add(", we experiment with some text in ")
                .add(new Text("code style").addStyle(style))
                .add("."));
    }
}

Источник: 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