与PDF文件内的任何文本相关联的字体都嵌入到PDF文件中,导致文件大小显着增加。是否有可能删除PDF中的嵌入字体,并从Web页面中的服务器使用它们?
是否可以从PDF文件中删除所有这些嵌入字体以减小文件大小?相反,我想使用本地机器或特定位置的字体。我可以通过Compart DBMill或PDFLib或Perl来实现吗?
栅格化文本不是一个选项,因为它会使文本无法访问。
与PDF文件内的任何文本相关联的字体都嵌入到PDF文件中,导致文件大小显着增加。是否有可能删除PDF中的嵌入字体,并从Web页面中的服务器使用它们?
是否可以从PDF文件中删除所有这些嵌入字体以减小文件大小?相反,我想使用本地机器或特定位置的字体。我可以通过Compart DBMill或PDFLib或Perl来实现吗?
栅格化文本不是一个选项,因为它会使文本无法访问。
它看起来像CAM::PDF可以做到这一点。它有一个deEmbedFont方法去除对字体的引用,并且the documentation说你以后应该使用cleanse
来获得尺寸上的好处。
删除嵌入的字体数据,保持字体引用不变。如果字体存在且1)字体未嵌入或2)嵌入数据已成功丢弃,则返回true。如果字体不存在,则返回false,否则嵌入的数据不能丢弃。
可选的$ basefont参数允许您更改字体。当一些应用程序嵌入标准字体(见下文)并给它一个有趣的名字时,这很有用,如SYLXNP + Helvetica。在这个例子中,当去嵌入时将基本名称改回标准的Helvetica是很重要的。
反嵌嵌入字体不会将其从PDF文档中删除,它只是删除对它的引用。要通过丢弃未使用的字体数据来减小尺寸,应在此方法后的某个时间使用以下代码。
$self->cleanse();
感谢您的快速建议Simbabque。我会试试这个,并会在这里发布结果。 – Sriram
澄清:你想一个PDF没有嵌入字体,并迫使消费者已经在为了字体正常查看PDF文件。你不想删除嵌入的字体来窃取它并在别的地方使用它。 – simbabque
相关:https://forums.adobe.com/thread/442685 – simbabque
:-)是的。此要求用于内部目的,可用字体已存在于服务器中。用户也将在服务器网络内部。 PDF文件页面跨越到1000年,并且嵌入了相当多的字体,使其体重更大。我不确定首先是否有可能。但如果可能的话会很酷。 – Sriram