gpt4 book ai didi

pdf - Ghostscript:使用 'gxps' 生成可搜索的 PDF

转载 作者:行者123 更新时间:2023-12-02 03:27:37 24 4
gpt4 key购买 nike

我有一个可搜索的 XPS 文件,我将其转换为 PDF,如下所示:

gxps -sOutputFile=C:\temp\foo.pdf -sDEVICE=pdfwrite \
-dNOPAUSE C:\temp\foo.xps

生成的 PDF 不可搜索。

  • gxps 有办法生成可搜索的 PDF 吗?
  • 如果没有,是否有类似的应用程序可以在命令行上将可搜索的 XPS 转换为可搜索的 PDF?

编辑:

gxps version: 9.15
Build date: Mon Sep 22 12:35:05 2014

最佳答案

我查看了 PDF 并使用 pdffonts 快速调查了 GPXPS 为生成的 PDF 文件使用的字体:

 $ pdffonts forSO.pdf

name type encoding emb sub uni object ID
----------------------- ------------ ---------------- --- --- --- ---------
RFGWZI+Arial TrueType WinAnsi yes yes yes 11 0

从表面上看,它看起来不错:

  1. 唯一使用的字体是嵌入的(参见 emb 列)。
  2. 字体类型为普通字体(见类型栏)。
  3. 字体编码为标准编码(参见编码栏)。
  4. 该字体似乎有一个配套的 /ToUnicode 映射(参见 uni 列)。

然而,仔细观察,由 gxps 嵌入到 PDF 中的真实 /ToUnicode 映射似乎严重受损。这是它,作为完整的间接对象从 PDF 中提取,具有未压缩的流:

41 0 obj
<<
/Length 863
>>
stream
/CIDInit /ProcSet findresource begin
12 dict begin
begincmap
/CMapType 2 def
/CMapName/R41 def
1 begincodespacerange
<00><ff>
endcodespacerange
42 beginbfrange
<04><04><0004>
<05><05><0004>
<06><06><0006>
<07><07><0006>
<08><08><0006>
<09><09><0006>
<0a><0a><000a>
<0b><0b><000a>
<0c><0c><000c>
<0d><0d><000c>
<0e><11><000e>
<12><12><000c>
<13><13><000c>
<14><14><000c>
<15><15><000c>
<16><16><0004>
<17><17><0004>
<18><18><0004>
<19><1a><0019>
<1b><1b><001a>
<1c><1c><001a>
<1d><1d><001a>
<1e><1e><001a>
<1f><1f><001a>
<20><20><0044>
<21><21><001a>
<22><22><001a>
<23><23><001a>
<24><24><0024>
<25><25><000c>
<26><26><001d>
<27><27><0023>
<28><28><0023>
<29><29><0028>
<41><41><0044>
<44><44><0044>
<49><49><0044>
<63><63><0044>
<69><69><0044>
<74><74><0044>
<76><76><0044>
<79><79><0044>
endbfrange
endcmap
CMapName currentdict /CMap defineresource pop
end end
endstream
endobj

如您所见,/ToUnicode 表包含 42 个键,但它们只映射到 12 个不同的字符值:

  • 这 12 个不同字符值中的一些值在此表中多次出现,因此将多个字形反向映射到同一字符(这反过来似乎对单个字符也不正确):

         no. of |   char 
    occurrences | value
    ------------+-----------
    1 | <000e>
    1 | <0019>
    1 | <001d>
    1 | <0024>
    1 | <0028>
    2 | <000a>
    2 | <0023>
    4 | <0006>
    5 | <0004>
    7 | <000c>
    8 | <001a>
    9 | <0044>
  • 例如,字符值 06 映射到具有数字 060708 的字形> 和 09

这看起来不对。

恕我直言,这值得将错误报告到 Ghostscript's Bugzilla (但我不确定 GXPS 组件是否仍在积极维护中)。

更新:我在这里找到了 Ghostscript/GPXPS bugzilla 数据库中的现有条目:

关于pdf - Ghostscript:使用 'gxps' 生成可搜索的 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29589683/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com