2015-09-07 29 views
1

与PDF文件内的任何文本相关联的字体都嵌入到PDF文件中,导致文件大小显着增加。是否有可能删除PDF中的嵌入字体,并从Web页面中的服务器使用它们?

是否可以从PDF文件中删除所有这些嵌入字体以减小文件大小?相反,我想使用本地机器或特定位置的字体。我可以通过Compart DBMill或PDFLib或Perl来实现吗?

栅格化文本不是一个选项,因为它会使文本无法访问。

+0

澄清:你想一个PDF没有嵌入字体,并迫使消费者已经在为了字体正常查看PDF文件。你不想删除嵌入的字体来窃取它并在别的地方使用它。 – simbabque

+0

相关:https://forums.adobe.com/thread/442685 – simbabque

+0

:-)是的。此要求用于内部目的,可用字体已存在于服务器中。用户也将在服务器网络内部。 PDF文件页面跨越到1000年,并且嵌入了相当多的字体,使其体重更大。我不确定首先是否有可能。但如果可能的话会很酷。 – Sriram

回答

2

它看起来像CAM::PDF可以做到这一点。它有一个deEmbedFont方法去除对字体的引用,并且the documentation说你以后应该使用cleanse来获得尺寸上的好处。

删除嵌入的字体数据,保持字体引用不变。如果字体存在且1)字体未嵌入或2)嵌入数据已成功丢弃,则返回true。如果字体不存在,则返回false,否则嵌入的数据不能丢弃。

可选的$ basefont参数允许您更改字体。当一些应用程序嵌入标准字体(见下文)并给它一个有趣的名字时,这很有用,如SYLXNP + Helvetica。在这个例子中,当去嵌入时将基本名称改回标准的Helvetica是很重要的。

反嵌嵌入字体不会将其从PDF文档中删除,它只是删除对它的引用。要通过丢弃未使用的字体数据来减小尺寸,应在此方法后的某个时间使用以下代码。

$self->cleanse(); 
+0

感谢您的快速建议Simbabque。我会试试这个,并会在这里发布结果。 – Sriram

相关问题