gpt4 book ai didi

pdf - 从一个 PDF 中提取到 Unicode map 并在另一个 PDF 中使用

转载 作者:行者123 更新时间:2023-12-04 02:01:52 27 4
gpt4 key购买 nike

我有一个 Unicode PDF 文档,它缺少 toUnicode 映射。我有一个具有 toUnicode 映射的相同字体的不同 PDF。我可以从一个 PDF 中提取它并使用它从另一个 PDF 中提取文本吗?

最佳答案

对于 Unicode 映射,Adobe 有特殊资源/ToUnicode您可以在字体资源描述的 pdf 文件中找到它。看起来像

<</BaseFont /ONWALI+Sylfaen/DescendantFonts [10 0 R]/Encoding /Identity-H/Subtype /Type0/ToUnicode 11 0 R/Type /Font>>

/ToUnicode 11 0 R 是您需要在 pdf 文件中包含的。 11 0是一个资源ID

我在 Acrobat Pro 中创建了包含所有字母符号的示例 pdf,以使用与报告中使用的相同字体进行标准 ToUnicode 映射。我已经将资源提取为文本,它看起来像:

/CIDInit /ProcSet findresource begin
12 dict begin
begincmap
/CIDSystemInfo
<< /Registry (Adobe)
/Ordering (UCS) /Supplement 0 >> def
/CMapName /Adobe-Identity-UCS def
/CMapType 2 def
1 begincodespacerange
<0000> <FFFF>
endcodespacerange
50 beginbfchar
<0003> <0020>
...and so on...
endbfchar
endcmap CMapName currentdict /CMap defineresource pop end end

ToUnicode 资源通常是压缩的,因此您必须解压缩它才能获得如上所示的文本。

然后我编写了获取 pdf 的代码(来自 Misrosoft Reporting 中生成的报告)并为找到的每种字体添加/ToUnicode 资源。 Pdf 有带指针的外部参照表,您不能将其作为文本文件进行编辑。所以你必须使用一些 pdf 引擎(我用过 PDFTron 但 itext 应该足够了)。每次我需要将报告另存为 pdf 时,都会执行此后处理代码。实际上ToUnicode映射应该由Microsoft Reporting engine填充,但是好得令人难以置信。

就是这样。

关于pdf - 从一个 PDF 中提取到 Unicode map 并在另一个 PDF 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13668105/

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