问题

问题

我有一份“旧的”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 文件中?

我想要一个相对较小的文件。

免费软件解决方案将受到欢迎。

相关内容