java - 在未设置的 android 字体上使用 iText

标签 java android fonts itext

我正在使用 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/

相关文章:

javascript - 在按钮上使用自定义字体

css - 谷歌字体 CDN : font weights not displaying as expected

java - 在 Eclipse 中,当我转到 File->New-Project 时没有 Android Project

java - 在同一个 JPanel 上移动不同的元素

java - 我的 JFrame 总是变得太大了几个像素。

android - 区分快速和慢速 Android 设备的简单方法

html - 将自定义字体添加到 Font Awesome 库

java - 为什么我不能导入 sun 包?

Android Studio 和 lint.xml

Android - 设置了layout_weight的多行按钮的高度