我们有一个工作方式如下的系统:
- PDF文件是使用mPDF库在服务器上生成的
- 用户在浏览器中查看生成的PDF文件,有时会将其打印到创建EMF文件的虚拟打印机
- 分析EMF文件以提取文本信息
- 提取的文本信息将被进一步处理
这个过程的一部分是从EMF文件中提取文本信息。当EMF文件确实包含文本信息时,我的算法工作得很好。但当PDF文件打印到虚拟打印机时,打印软件将文本信息的某些部分替换为直线和曲线,从而无法从EMF中提取文本信息。
我花了很多时间研究这个问题,得出的结论是,并没有对每个打印的PDF都有共同的解决方案。但与此同时,我发现打印软件只替换那些使用嵌入式OpenType字体的文本部分。
所以在这种特殊的情况下,若我可以配置mPDF不使用嵌入式OpenType字体,那个么问题就会得到解决。
我的问题是,是否可以以不使用嵌入式OpenType字体的方式配置mPDF?
我收到了mPDF作者Ian Back的回复,他说当前版本(5.3)无法创建没有嵌入字体的文档:
mPDF没有这样做的选项。我曾经尝试过,但是在让它发挥作用时发现了很大的问题,然后决定它不是值得,因为它依赖于用户拥有正确的文件(以及文件版本)。
由于mPDF是在FPDF之上构建的,我认为这样做是可能的。FPDF的字体必须准备为.php文件,因此删除这些字体应该会使mPDF呈现没有它们的文档。
尝试重命名TTF文件夹:/ttfontdata/
。
这是一个黑客,但它应该工作。(注意:我还没有尝试过)