我有一个非常奇怪的任务。有一份编译好的 PDF 文档,其中包含有关数学主题的指南。它是俄语的,因此其中包含大量纯文本中的俄语符号和大量公式中的数学符号。这是一个简短的示例:
我需要以不可见的纯文本打印此文档,即仅打印公式和数学符号。如下所示:
文档是用 LaTeX 编译的,但无法获取源代码。我唯一能想到的办法就是以某种方式删除或替换文档中的所有俄语字体。但它们没有嵌入,我甚至无法在 Windows 中找到它们!以下是来自 Adobe Acrobat 的文档中使用的字体的屏幕截图:
我的最终任务是获得此文档的印刷版。因此,如果有人能告诉我如何将所有俄语符号变成白色 - 这将是可接受的解决方案。欢迎提出任何建议。
还有一些小问题可以帮助我了解它的工作原理:
- 这些字体在我的 Windows 7 x64 操作系统中存储在哪里?我的文件夹中没有这样的条目
C:\Windows\Fonts\
。 - 我应该使用什么实用程序来对 PDF 文档进行低级编辑?例如字体操作?
更新
使用 Adobe Acrobat,我检查了所显示片段的字体。它SFRM1200
用于纯文本、SFTI1200
斜体CMMI12
和其他数学符号。那么现在的问题是如何从文档中取消SFTI1200
嵌入CMMI12
字体?我预计一旦我取消嵌入它们,读者将无法正确呈现它们,并会将它们替换为一些无意义的符号,例如正方形。对于我的任务来说,这甚至更容易接受。
答案1
这是我的解决方案。
- 使用
pdffonts
实用程序pdf包中列出文档中字体的全名。现在我们知道字体SFRM1200
有全名ABEHUC+SFRM1200
。我不知道这些“全名”是什么意思。
使用ghostscript使用以下命令来取消嵌入选定的字体:
"n:\Program Files\gs\gs9.06\bin\gswin64c.exe" ^ -dBATCH ^ -dNOPAUSE ^ -sOutputFile=output.pdf ^ -sDEVICE=pdfwrite ^ -dPDFSETTINGS=/default ^ -dEmbedAllFonts=true ^ -c ".setpdfwrite <</NeverEmbed [/ABEHUC+SFRM1200 /ICZOQF+SFTI1200]>> setdistillerparams" ^ -f POSOBSBR.pdf
谢谢这个帖子在 SO 上获取提示。请注意字体的全名是如何在
/NeverEmbed
开关下列出的。
处理之后的结果如下:
谢谢你的帮助!