当前位置: 首页 > 面试题库 >

使用iText从* .ttf文件创建字体

刘高驰
2023-03-14
问题内容

这是我的Resources.class中的一种方法:

public static Font loadFont(String fontFileName)
    {
        BaseFont base = null;

        try
        {
            base = BaseFont.createFont(Resource.class.getResource(fontFileName + "_font.ttf").toString(), BaseFont.WINANSI, true);
        }
        catch (DocumentException | IOException e)
        {
            e.printStackTrace();
        }

        Font font = new Font(base, Font.BOLD, 15);
        return font;
    }

我的程序的结构是:

src (folder)
    core (package)
        //all (but one) classes used for program
    resources (package)
        class Resources (used to load resources into the "core" classes)
        wingding_font.ttf

这是不起作用的代码片段:

p = new Phrase("some random text");
p.setFont(Resource.loadFont("wingding"));
pa = new Paragraph(p);
pa.setFont(Resource.loadFont("wingding"));
document.add(pa);

当我打开PDF时,文本在那里,但是使用了一些字体(我猜是默认字体)。

注意1:我尝试将字体设置为仅短语(p)和仅段落(pa),但这丝毫没有改变输出。

注意2:Resource.loadFont(“ wingding”); try / catch方法没有“捕获”任何错误。


问题答案:

尝试创建一个嵌入的字体对象,并使用此字体呈现文本:

//this code should run once at initialization/application startup
FontFactory.register("resources/wingding_font.ttf");
Font textFont = FontFactory.getFont("wingding", BaseFont.IDENTITY_H, 
    BaseFont.EMBEDDED, 10); //10 is the size
...
//reuse the reference to the font object when rendering your text
Paragraph p = new Paragraph("someText", textFont);

顺便说一下,iText具有FontFactory帮助加载字体的类,您不再需要中的loadFont方法Resources

希望能帮助到你。



 类似资料:
  • null 有人能解释一下,当我使用PdfReader阅读模板后,我如何制作模板的副本吗?有没有办法把表格写到模板副本上,而不是一个新文档上? 为了将来的参考,我做了以下工作:

  • 如果有人做了类似的事情,一个代码示例将非常有帮助。 提前谢了。

  • 我有一块帆布。它要求用户从a-Z、a-Z或0-9中绘制一个字符。一旦用户绘制了一个角色(比如a),当前画布对象将保存在画布的arraylist中。另一个空白画布弹出,要求用户绘制B,以此类推。 这些程序运行良好。但是我想创建一个文件,并绘制所有可接受的字符。 我在最后显示的画布下方有一个按钮,单击该按钮时,将从画布的arraylist中提取所有字符,并创建一个文件从中删除。但是怎么做呢?

  • 问题内容: 在我的系统上,我需要注册两个外部字体.TTF文件: 在创建Font()对象之前,我使用以下命令进行记录: 然后创建对象(由于格式不同,我创建了多个Font()): 好的,系统正常工作。问题在于,运行后,.TTF文件会更改大小(分别为83 KB和80 KB),从而: 然后,当我第二次运行系统时,发生以下错误: 如果我将更改后的大小(83 KB和80 KB)的.TTF文件替换为原始文件(7

  • 我询问两件事。首先,我有一个ttf文件,它位于我的macair驱动器中。我不想将该文件添加到我的项目结构中。如何从中导入True_type字体。我尝试了各种方法将其导入我的Java程序。例如,公共类TextFixer{ 私有静态字符串[]名称 = { " iksswgrg.ttf " }; //这存在于我的macair驱动器上,我想从它创建字体。 第二部分是我想使用图形创建一个字符串。首先,我需要

  • 问题内容: 我正在尝试从csv文件创建字典。csv文件的第一列包含唯一键,第二列包含值。csv文件的每一行代表字典中的唯一键,值对。我尝试使用类,但是我只能弄清楚如何为每一行生成一个新的字典。我要一部字典。这是我尝试使用的代码: 当我运行上面的代码时,我得到一个。如何从csv文件创建一个字典? 问题答案: 我相信你正在寻找的语法如下: 或者,对于,你需要: