Ghostscript pdf 转换使连字无法复制和粘贴

Ghostscript pdf conversion makes ligatures unable to copy & paste

我有一个 pdf(使用带有 \usepackage[a-2b]{pdfx} 的乳胶创建),我可以在其中正确复制和粘贴连字,即 "fi" 在我的文本编辑器中粘贴为 "fi" . pdf 非常大,所以我试图用这个 ghostscript 命令减小它的大小:

gs -dPDFA-2 -dBATCH -dNOPAUSE -sPDFACompatibilityPolicy=1 -sDEVICE=pdfwrite 
   -dPDFSETTINGS=/printer -sProcessColorModel=DeviceRGB 
   -sColorConversionStrategy=UseDeviceIndependentColor 
   -dColorImageDownsampleType=/Bicubic -dAutoRotatePages=/None 
   -dCompatibilityLevel=1.5 -dEmbedAllFonts=true -dFastWebView=true 
   -sOutputFile=main_new.pdf main.pdf

虽然这会生成一个漂亮的小 pdf,但现在当我用 "fi" 复制单词时,我(经常)得到 "ő"。

由于原始 pdf 中以某种方式对正确的字符进行了编码,我是否可以为 ghostscript 提供一些参数,以便它在转换后的 pdf 中简单地保留此信息?

我在 macOS 10.14 上使用 ghostscript 9.27。

没有看到你的原始文件,所以我可以看到文本的编码方式,它不可能是确定的。当然 不可能 有 pdfwrite 设备 'preserve the information',有关解释,请参阅 here

如果原始 PDF 文件具有 ToUnicode CMap,则 pdfwrite devcie 应使用它在输出文件中生成新的 ToUnicode CMap,维护 cut&paste/search。如果不是,则转换过程将破坏编码。您可能可以通过将 SubsetFonts 设置为 false 来改善结果,但这只是一个猜测,没有看到示例。

我猜你的原始文件没有 ToUnicode CMap,这意味着它基本上只能靠运气工作。