提问者:小点点

iTextPdf:使用非嵌入式字体


我已经使用Java和iTextPdf创建了一个表格,其中列出了一堆单元格。我不太清楚如何更改这些单元格内文本的字体。这对我的孩子来说很重要,所以我正在尝试使用Comic SansMS。一切都编译和运行良好,但我得到了一个通用字体(可能是Helvetica或类似的东西)。

有人知道如何生成这样的字体吗?谢谢!

这是我写的缩小版本:

import com.itextpdf.text.FontFactory; 
import com.itextpdf.text.pdf.FontSelector;

public static PdfPTable createTable() {
        FontSelector selector = new FontSelector();
        selector.addFont(FontFactory.getFont("Comic Sans MS"));
        PdfPTable table = new PdfPTable(3);
        PdfPCell cell;
        Phrase ph;

        ph = selector.process("My Title");
        cell = new PdfPCell(ph);
        table.addCell(cell);
        return table;

共1个答案

匿名用户

您可以将字体导入FontFactory,然后将其用作

    String filename = "Comic Sans MS.ttf";
    FontFactory.register(filename, filename);
    Font font = FontFactory.getFont(filename, BaseFont.CP1252, BaseFont.EMBEDDED);

这也将在PDF文件中嵌入字体,因此即使目标PDF阅读器没有安装此字体,它也可以工作。