我们目前正与一些出版商合作,通过他们的PDF生成在线图书。我们的遗留应用程序使用flex,因此我们使用PDF2SWF SWFTools将PDF转换为SWF文件。
我们遇到的问题是,当用户执行搜索时,我们的弹性阅读器不会突出显示SWF文档中的文本。经过快速调查后,我们发现在提取文本时,我们需要嵌入PDF文档使用的字体:
http://wiki.swftools.org/wiki/How_do_I_highlight_text_in_the_SWF%3F
pdf2swf -F $YOUR_FONTS_DIR$ -f input.pdf -o output.swf
从上面的代码中可以看出,我们需要一个字体目录的路径,其中包含该PDF中的字体。
由于我们将转换大量PDF文件,是否可以直接通过PDF访问字体文件,而不是在我们的应用程序中存储大量字体?
其他信息
我们的应用程序是用Java编写的。
我们目前在应用程序中使用PDFBox和Ghostscript,因此如果任何解决方案使用这些库,那么这将是首选选项,但我们对所有想法持开放态度。 的
答案 0 :(得分:7)
PDF文件不包含字体“文件”,它们甚至可能根本不包含任何字体,但这种情况很少见。嵌入的字体数据可能有各种各样的格式:
您的应用程序是否能够阅读所有这些字体格式?如果你想使用它们,你必须使用PDF文件中嵌入的字体,因为这些字体通常是子集字体,并提供自定义编码,这意味着即使你有原始字体,你不能使用它,因为编码不正确。
当然可能这些PDF文件都是以一致的方式创建的,不使用嵌入字体,但我有疑虑......