我们正在评估Itext7(因此我对IText7相当新),并希望更改表格中的字体。当然,一旦我有了字体,更改桌面上的字体很容易,但是创建字体很有挑战性。我找到了简单的例子
font = PdfFontFactory.createFont(FontConstants.TIMES_ITALIC, PdfEncodings.WINANSI);
但我想控制字体的大小,族等。我找到了以前版本的Itext的示例,看起来非常简单。
BaseFont helvetica = BaseFont.createFont(HELVETICA, CP1252, EMBEDDED);
Font font = new Font(helvetica, 12, Font.NORMAL);
感谢您的帮助。
答案 0 :(得分:4)
iText 7相当新颖。有iText 7: Jump-Start tutorial可以帮助您入门,但我们仍需要撰写有关iText 7特定方面的许多教程。
幸运的是,您发布的问题已经在第二个iText 7教程iText 7: Building Blocks中处理过了。您需要的信息位于Chapter 1: Introducing the PdfFont class。
当您阅读本章时,您将理解字体的大小不应该是PdfFont
类的属性。而是在您使用此字体的对象级别定义字体大小。
例如:
Text title1 = new Text("The Strange Case of ").setFontSize(12);
Text title2 = new Text("Dr. Jekyll and Mr. Hyde").setFontSize(16);
Text author = new Text("Robert Louis Stevenson");
Paragraph p = new Paragraph().setFontSize(8)
.add(title1).add(title2).add(" by ").add(author);
document.add(p);
在这种情况下,"The Strange Case of "
的字体大小为12; "Dr. Jekyll and Mr. Hyde"
的字体大小为16; " by "
和"Robert Louis Stevenson"
的字体大小为8,因为该大小是在Paragraph
的级别定义的。 " by "
的字体大小是Paragraph
的字体大小。没有为"Robert Louis Stevenson"
定义字体大小,这意味着此Text
对象继承了它所属的Paragraph
的字体大小。
我目前正在制作第2章。您会注意到iText 7现在允许您通过定义Document
级别的字体来更改Document
的默认字体大小。这是iText 7的众多改进之一。