iText 7:如何构建混合不同字体的段落?

皮尼奥

我已经使用iText 7来构建pdf文件几天了,不幸的是,iText 7与iText 5完全不同,并且文档仍然非常不完整。

我正在尝试建立一个混合两种字体或两种字体样式的段落(例如:段落中间有一个粗体文本)

使用iText 5,可以使用块来完成:

Font regular = new Font(FontFamily.HELVETICA, 12);
Font bold = Font font = new Font(FontFamily.HELVETICA, 12, Font.BOLD);
Phrase p = new Phrase("NAME: ", bold);
p.add(new Chunk(cc_cust_dob, regular));
PdfPCell cell = new PdfPCell(p);

使用iText 7,我仍然没有找到实现此目的的方法。

有没有人尝试使用iText的最新版本来执行此操作?

注意:我使用的是csharp,但是java也很有用

布鲁诺·洛瓦吉(Bruno Lowagie)

请阅读文档,尤其是iText 7:构建块“第1章:PdfFont类简介”

在该章中,您会发现使用iText 7时切换字体要容易得多,因为您可以使用默认字体和字体大小,可以定义和重用Style对象,等等。

一个例子:

Style normal = new Style();
PdfFont font = PdfFontFactory.createFont(FontConstants.TIMES_ROMAN);
normal.setFont(font).setFontSize(14);
Style code = new Style();
PdfFont monospace = PdfFontFactory.createFont(FontConstants.COURIER);
code.setFont(monospace).setFontColor(Color.RED)
    .setBackgroundColor(Color.LIGHT_GRAY);
Paragraph p = new Paragraph();
p.add(new Text("The Strange Case of ").addStyle(normal));
p.add(new Text("Dr. Jekyll").addStyle(code));
p.add(new Text(" and ").addStyle(normal));
p.add(new Text("Mr. Hyde").addStyle(code));
p.add(new Text(".").addStyle(normal));
document.add(p);

首先,我们定义一个Style我们称为的,normal并使用14磅Times-Roman。然后定义一个Style我们称为的code,并且使用12磅Courier(红色)和灰色背景。

然后,我们组成一个使用这些样式ParagraphusingText对象。

请注意,您可以链接add()注释,如本示例所示:

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

我们将新创建的字体大小设置Paragraph为8磅。字体大小将被所有添加到中的对象继承Paragraph,除非这些对象覆盖该默认大小。在这种情况下title1,我们定义的字体大小为12磅,在此情况下title2,我们定义的字体大小为16磅。添加为String" by ")的内容和添加为Text未定义字体大小对象的内容继承自其添加对象的字体大小8 pt Paragraph

这是来自官方教程的副本/粘贴。我希望这对于不允许“仅链接”答案的StackOverflow就足够了。此“没有链接的仅答案规则”不应导致复制/粘贴手册的整章内容...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

IText 7:如何为段落构建文本和附件的混合?

来自分类Dev

如何在iText中将不同的字体应用于PDFCell中的段落和块

来自分类Dev

iText字体策略

来自分类Dev

iText字体策略

来自分类Dev

iText7:如何获取段落的实际宽度

来自分类Dev

iText7 目录

来自分类Dev

iText 7如何在整个文档中设置字体

来自分类Dev

如何使用 iText 7 删除 PDF 文件中的重复字体

来自分类Dev

使用 iText 拆分旋转的段落

来自分类Dev

在 iText 中水平对齐段落

来自分类Dev

iText,减少等宽字体的间距

来自分类Dev

如何知道与itext中的字体兼容的cmap?

来自分类Dev

如何知道与Itext中的字体兼容的cmap?

来自分类Dev

itext 7表边框问题

来自分类Dev

IText 7 链接边框显示

来自分类Dev

itext:如何调整文本提取?

来自分类Dev

如何使用iText返回PDF

来自分类Dev

iText7 - 如何设置 LoggerFactory?

来自分类Dev

如何使用 iText 7 设置卢布符号?

来自分类Dev

Java Itext中包含多个段落的PDF

来自分类Dev

在iText7中的jar中提供字体

来自分类Dev

如何使用IText将段落添加到矩形中

来自分类Dev

iText最大字体大小

来自分类Dev

在Itext中修改现有PDF的字体

来自分类Dev

带有黑色字体的 iText 矩形

来自分类Dev

如何嵌入来自其他 PDF iText 7 的所有字体

来自分类Dev

如何在 iText7/iText7.pdfhtml 的行首修复 CJK 标点符号

来自分类Dev

如何使Fabric.js IText字体不加粗?

来自分类Dev

如何在Stamper中使用Verdana字体(iText PDF)