我正在使用 iText 在 android 中创建 PDF,除了段落中的字体之外,一切正常(字体在表格中工作正常)
我声明了这样的字体
Font titleFont = FontFactory.getFont(FontFactory.HELVETICA_BOLD,18);
像这样设置
//create title
Paragraph p1 = new Paragraph("Title");
p1.setAlignment(Paragraph.ALIGN_LEFT);
p1.setFont(titleFont);
//add title to document
document.add(p1);
但我最终得到默认大小为 12 的默认 helvetica,而且如果我对表格中的元素执行相同的操作,字体也可以正常工作,就像这样
Font paraFont = FontFactory.getFont(FontFactory.HELVETICA,14);
Paragraph p = new Paragraph(format.format(cal.getTime()));
p.setAlignment(Element.ALIGN_LEFT);
p.setFont(paraFont);
cell.addElement(p);
完美运行,任何想法
最佳答案
如果你这样做:
Paragraph p1 = new Paragraph("Font size 12 ");
p1.setAlignment(Paragraph.ALIGN_LEFT);
p1.setFont(titleFont);
p1.add("Font size 18");
您会注意到文本“字体大小 12”的字体大小为 12,文本“字体大小 18”的字体大小为 18。为什么?嗯,这就是 iText 5 及更早版本中的逻辑:字体改变的同时字体也改变。即在“字体大小 12”
之前,在“字体大小 18”
之前。
将代码更改为:
Paragraph p1 = new Paragraph("Font size 12 ", titleFont);
p1.setAlignment(Paragraph.ALIGN_LEFT);
或者将其更改为:
Paragraph p1 = new Paragraph();
p1.setAlignment(Paragraph.ALIGN_LEFT);
p1.setFont(titleFont);
p1.add("Font size 18");
关于java - 在未设置的 android 字体上使用 iText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49939399/