与PDF文件中的任何文本相关联的字体都嵌入到PDF文件中,导致文件大小显着增加。
是否可以从PDF文件中删除所有嵌入字体以减小文件大小?相反,我想使用本地计算机或特定位置的字体。我可以使用 Compart DBMill或PDFLib或Perl 来实现这一目标吗?
光栅化文本不是一种选择,因为它会使文本无法访问。
答案 0 :(得分:2)
看起来CAM::PDF可以做到这一点。它有一个deEmbedFont方法,用于删除对字体的引用,the documentation表示您之后应该使用cleanse
来获得大小优势。
删除嵌入的字体数据,保持字体引用不变。如果字体存在且1)未嵌入字体或2)成功丢弃嵌入数据,则返回true。如果字体不存在则返回false,否则无法丢弃嵌入的数据。
可选的$ basefont参数允许您更改字体。当一些应用程序嵌入标准字体(见下文)并给它一个有趣的名字,如SYLXNP + Helvetica时,这很有用。在此示例中,在去嵌入时将基本名称更改回标准Helvetica非常重要。
去嵌入字体不会将其从PDF文档中删除,只是删除对它的引用。要通过丢弃未使用的字体数据来减小尺寸,您应该在此方法之后的某个时间使用以下代码。
$self->cleanse();