【发布时间】:2016-08-29 14:46:39
【问题描述】:
所以我有以下问题。我收到一个包含一组字体的PDF 文件。这些字体没有嵌入到文件中。这是一个简单的例子:
我想将这些字体嵌入到PDF 中,因此它们是独立的并且始终可用。但事情似乎没有那么简单。我正在使用IText 进行我的PDF 处理。
我已阅读并尝试了以下问题/答案:
- how-to-create-pdf-with-font-information-and-embed-actual-font-when-merging-them
- embed-truetype-fonts-in-existing-pdf
- embed-font-into-pdf-file-by-using-itext
- how-to-check-that-all-used-fonts-are-embedded-in-pdf-with-java-itext
- 章节
16.1.4 Replacing a font本书iText in Action - 2nd Edition - ...
但让我最接近的是以下示例:EmbedFontPostFacto.java(来自书中)。提供Arial.ttf 文件时,我能够嵌入Arial 字体。
但是有了这个,就像其他例子一样,我需要字体的源文件才能嵌入它。就我而言,我没有源文件。但是我可能会将它们放在系统上。所以我想在系统上查询我可用的字体,看看它是否对应于给定的字体。
类似的东西
GraphicsEnvironment e = GraphicsEnvironment.getLocalGraphicsEnvironment();
java.awt.Font[] fonts = e.getAllFonts();
for(java.awt.Font f : fonts){
System.out.println(f.getFontName());
}
但我无法将给定的java.awt.Font 转换为RandomAccessFile 或byte[] 以用于嵌入字体文件本身。是否有另一种方法可以将字体嵌入到PDF,而无需字体本身的源文件?
【问题讨论】:
标签: java pdf fonts itext itextpdf