当前位置: 首页 > 知识库问答 >
问题:

用IText在PDF中嵌入非嵌入字体

潘阳舒
2023-03-14

所以我有下面的问题。我收到一个PDF文件,其中包含一组字体。这些字体没有嵌入到文件中。下面是一个简单的例子:

我希望将这些字体嵌入PDF中,这样它们就可以自包含并且始终可用。但事情似乎没那么简单。我正在使用iText进行PDF处理。

我已经阅读并尝试了以下问题/答案:

    null

GraphicsEnvironment e = GraphicsEnvironment.getLocalGraphicsEnvironment();
java.awt.Font[] fonts = e.getAllFonts();
for(java.awt.Font f : fonts){
    System.out.println(f.getFontName());
}

共有1个答案

任昊阳
2023-03-14

对于WindowsC:\Windows\fonts等包含所有字体文件,并且在资源管理器中还显示字体名称。所以人工搜索是可行的。

在java中,您可以使用graphicsenvironment.getAvailableFontFamilyNames()font.getFamilyName()从PDF中检查名称,如“Arial Mt”。

但是,字体中缺少该文件的getter。

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
Font font = Font.createFont(Font.TRUETYPE_FONT, ttfFile);
ge.registerFont(font); // If you want to load the font.

if (pdfFontName.startsWith(font.getFamilyName()) {
    System.out.printf("%s - %s / %s%n", ttfFile.getName(), font.getFamilyName(),
            font.getName());
}
 类似资料:
  • 问题内容: 我有一个使用Foxit表单设计器创建的pdf文件。在我的设计系统上,我安装了条形码字体。条形码字体在AcroField之一中使用。foxit似乎没有在文档中嵌入字体。 我也有一些客户的计算机上未安装条形码字体,因此我想将该字体嵌入到PDF中。我是否可以使用iText将AcroFields中使用的字体嵌入到PDF中? 编辑: 字体似乎包含在文本中,但没有包含在字段中,因此字体(条形码)将

  • 虽然它按预期工作,并嵌入了使用的字体子集,但我想知道是否有一种方法可以使生成的PDF文档完全不嵌入字体。当创建实例并将属性设置为并使用它们来生成各种PDF构建块时,就可以使用这种方法。在使用时,我正在寻找同样的行为。

  • 我正在使用FOP 0.94,我也许可以升级到FOP 0.95。是否可以嵌入Bas14字体?如果可以,如何? 我试过把这个放在fop.xconf里: 那行不通。 最好的问候,莫滕

  • 问题内容: 我有一个自定义字体,我想在Java程序中炫耀它,用户无需安装就可以查看它。有谁知道这是怎么做到的吗? 工作解决方案 我已经实现了以下内容: 问题答案: 我从未做过,但似乎您想要的方法是 导入字体 或者 该参数是或,而或参数包含字体的二进制数据。 导入后使用字体: 要使Font对Font构造函数可用,必须通过调用在中注册返回的Font 。

  • 尽管 WebAssembly 是为运行在 Web 上设计的,它也可以在其它的环境中良好地运行。包括从用作测试的最小化 shell ,到完全的应用环境 —— 例如:在数据中心的服务器、物联网(IoT)设备或者是移动/桌面应用程序。甚至,运行嵌入在较大程序里的 WebAssembly 也是可行的。 非 Web 环境下,它可能有和 Web 环境下不同的应用编程接口(API)。功能测试(feature t

  • 我想在PDF文档中嵌入HelveticaNeueLTCom-BdCn.ttf。我正在使用Grails渲染0.4.4插件生成PDF文件。我尝试遵循, 但它不起作用。