前
我有一份“旧的”2 页 ODT 文档。该 ODT 文件的内容如下30 千字节。当我使用旧版 OpenOffice 3.2 将文档导出为 PDF 时,生成的文件太大 (>200 千字节我认为)。
当时,我发现了一个避免这种情况的技巧:我选择了文件中的所有文本,并通过在字体选择框中输入“Times”手动更改字体。即使我的系统上没有名为“Times”的字体,它也能很好地工作,产生~30 kBPDF 文件。
结果如下pdffonts oo-file.pdf
:
name type encoding emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
Times-Bold Type 1 WinAnsi no no no 26 0
Times-Roman Type 1 WinAnsi no no no 24 0
DAAAAA+DejaVuSans-Bold TrueType WinAnsi yes yes yes 18 0
Times-BoldItalic Type 1 WinAnsi no no no 27 0
Times-Italic Type 1 WinAnsi no no no 25 0
GAAAAA+DejaVuSerif TrueType WinAnsi yes yes yes 23 0
HAAAAA+OpenSymbol TrueType WinAnsi yes yes yes 13 0
如你看到的,未嵌入“Times”字体,并且不需要,因为它是标准 14 种字体任何 PDF 阅读器都应该能够显示。
启动困难
但现在我正在使用 LibreOffice 5.2.3,显然改变了它的字体嵌入策略. 导出为 PDF 的同一个文件现在417 千字节大 (x14)。
看pdffonts oo-file-exported-with-lo.pdf
:
name type encoding emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
NimbusRomNo9L-Medi Type 1 Builtin yes no yes 36 0
NimbusRomNo9L-Regu Type 1 Builtin yes no yes 52 0
NimbusRomNo9L-Regu Type 1 Custom yes no yes 55 0
EAAAAA+Verdana-Bold TrueType WinAnsi yes yes yes 18 0
NimbusRomNo9L-Medi Type 1 Custom yes no yes 39 0
NimbusRomNo9L-MediItal Type 1 Builtin yes no yes 28 0
NimbusRomNo9L-MediItal Type 1 Custom yes no yes 31 0
NimbusRomNo9L-ReguItal Type 1 Builtin yes no yes 44 0
JAAAAA+TimesNewRomanPSMT TrueType WinAnsi yes yes yes 23 0
NimbusRomNo9L-ReguItal Type 1 Custom yes no yes 47 0
LAAAAA+OpenSymbol TrueType WinAnsi yes yes yes 13 0
解决方法
我设法将此文件大小大幅减小到54 千字节通过将其转换为 ps,然后转换回 PDF:
pdf2ps lo-file-edited.pdf temp.ps
ps2pdf temp.ps smaller.pdf
这使 (pdffonts smaller.pdf
):
name type encoding emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
KUEZVI+NimbusRomNo9L-Medi Type 1C Custom yes yes no 8 0
XHHJOA+NimbusRomNo9L-Regu Type 1C Custom yes yes no 10 0
LEKIBS+Verdana-Bold TrueType WinAnsi yes yes no 12 0
WMOWQS+NimbusRomNo9L-MediItal Type 1C Custom yes yes no 14 0
SOLBEP+NimbusRomNo9L-ReguItal Type 1C Custom yes yes no 16 0
OJIXHX+TimesNewRomanPSMT TrueType WinAnsi yes yes no 18 0
OJIXHX+OpenSymbol TrueType WinAnsi yes yes no 20 0
但是,我认为这种解决方法不是很优雅,而且无论如何,它仍然会生成一个比第一个大两倍的文件。
问题
所以,我如何强制 LibreOffice 使用 PDF标准 14 种字体 没有将它们嵌入到生成的 PDF 文件中?
我想要一个相对较小的文件。
免费软件解决方案将受到欢迎。