mPDF:如何创建不使用嵌入式字体的PDF


mPDF: how to create PDF not using embedded fonts?

我们有一个工作方式如下的系统:

  1. PDF文件是使用mPDF库在服务器上生成的
  2. 用户在浏览器中查看生成的PDF文件,有时会将其打印到创建EMF文件的虚拟打印机
  3. 分析EMF文件以提取文本信息
  4. 提取的文本信息将被进一步处理

这个过程的一部分是从EMF文件中提取文本信息。当EMF文件确实包含文本信息时,我的算法工作得很好。但当PDF文件打印到虚拟打印机时,打印软件将文本信息的某些部分替换为直线和曲线,从而无法从EMF中提取文本信息。

我花了很多时间研究这个问题,得出的结论是,并没有对每个打印的PDF都有共同的解决方案。但与此同时,我发现打印软件只替换那些使用嵌入式OpenType字体的文本部分。

所以在这种特殊的情况下,若我可以配置mPDF不使用嵌入式OpenType字体,那个么问题就会得到解决。

我的问题是,是否可以以不使用嵌入式OpenType字体的方式配置mPDF?

我收到了mPDF作者Ian Back的回复,他说当前版本(5.3)无法创建没有嵌入字体的文档:

mPDF没有这样做的选项。我曾经尝试过,但是在让它发挥作用时发现了很大的问题,然后决定它不是值得,因为它依赖于用户拥有正确的文件(以及文件版本)。

由于mPDF是在FPDF之上构建的,我认为这样做是可能的。FPDF的字体必须准备为.php文件,因此删除这些字体应该会使mPDF呈现没有它们的文档。

尝试重命名TTF文件夹:/ttfontdata/

这是一个黑客,但它应该工作。(注意:我还没有尝试过)