itext
Стили: iText 5 и iText 7
Поиск…
замечания
Создание документа, в котором вам нужно переключаться между стилями, часто бывает утомительным в 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 .