我的扫描仪已将PDF / A文档设为OCRed。该文件有点倾斜,因此我使用ghostscript将其旋转1度:
gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dSAFER \
-dPDFSETTINGS="/screen" \
-dSubsetFonts=true -dEmbedAllFonts=true \
-sPAPERSIZE=a4 -sOutputFile="out.pdf" \
-c "<</BeginPage{1 rotate}>> setpagedevice" \
-f in.pdf
(这是另一个SO线程的经过修改的摘录)
这确实很好,但是带有文本编码的东西是不正确的-当我从原始文档中复制并粘贴带有波兰字母的单词(±śćęłńźż)时,一切正常,但是当我复制并粘贴相同的单词时上面命令生成的PDF中的确切单词,此波兰字母转换为“〜”(“opłata”->“ op〜ata”,“wpłynęło”->“ wp〜yn ~~ o”)。如何保存文字?我真的需要保持不变。
编辑:以上命令的输出:
GPL Ghostscript 9.25 (2018-09-13)
Copyright (C) 2018 Artifex Software, Inc. All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Processing pages 1 through 3.
Page 1
Loading NimbusSans-Regular font from /usr/local/Cellar/ghostscript/9.25/share/ghostscript/9.25/Resource/Font/NimbusSans-Regular... 5076560 3564226 2614872 1261064 3 done.
Loading NimbusSans-Bold font from /usr/local/Cellar/ghostscript/9.25/share/ghostscript/9.25/Resource/Font/NimbusSans-Bold... 5142672 3737333 2635072 1280462 3 done.
Loading NimbusSans-Italic font from /usr/local/Cellar/ghostscript/9.25/share/ghostscript/9.25/Resource/Font/NimbusSans-Italic... 5310168 3943119 2816872 1460233 3 done.
Loading NimbusSans-BoldItalic font from /usr/local/Cellar/ghostscript/9.25/share/ghostscript/9.25/Resource/Font/NimbusSans-BoldItalic... 5497480 4140597 3059272 1695969 3 done.
Page 2
Page 3
答案 0 :(得分:0)
首先要尝试的是不设置SubsetFonts = true。
如果您的原始PDF文件没有ToUnicode CMap,则您将依靠“启发式”(又名猜测)来从给定的字符编码中确定Unicode点。
如果原始文档有效,则其字符编码可能与ASCII或类似的字符匹配。但是,当子集字体时,编码会更改。本质上,遇到的第一个字符变为编码位置1,第二个为2,依此类推。
当您尝试剪切和粘贴时,这自然会引起问题。
但是,鉴于您使用的字符超出了正常的ASCII范围,因此出现问题的可能性很小。
您可能正在使用旧版本的Ghostscript + pdfwrite(您实际上没有说出您使用的是哪个版本,也没有提供会说的反向通道输出)及其错误已得到修复。 / p>
但是坦率地说,在没有看到输入的PDF文件的情况下,几乎任何人都不可能弄清楚为什么新的PDF文件与众不同,因此除了猜测之外,不可能为您提供任何有用的建议。