不同的pdf有不同的cmap,如何制作全局cmap,以便将许多具有相同字体映射的pdf处理到/toUnicodemap

2024-03-14

我有很多pdf文件,复制后render错误的文字,由于不好

字体映射到 unicode 映射

像这样的东西: 原创 - निर्वाचक

复制时渲染:ननरररचक

我已经浏览了各种答案:

无法从 pdf 复制准确的印地语内容 https://stackoverflow.com/questions/30756193/unable-to-copy-exact-hindi-content-from-pdf

使用 itextsharp 阅读 PDF,其中 PDF 语言为非英语 https://stackoverflow.com/questions/15385270/read-pdf-using-itextsharp-where-pdf-language-is-non-english

使用 PDFminer 解析 pdf(梵文脚本)会给出不正确的输出[重复] https://stackoverflow.com/questions/31876415/parsing-a-pdfdevanagari-script-using-pdfminer-gives-incorrect-output

我跟着这个answer https://stackoverflow.com/a/29474423/8030107并使用qpdf得到想要的pagecontentstream,我得到了cmaps,当读取时使用Vim.

但是,现在我面临的问题是,每个pdf有自己不同的/字体到/toUnicode地图,我想要一个类似的东西特定脚本(例如梵文)的 cmap 的全局地图.

我也在考虑更换流!&#映射到的字符unicode以全球的方式。

希望有一些关于如何解决这个问题的想法。

Cmaps下面给出了两个不同的 pdf:

For pdf 1 :

/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
<00> <FF>
endcodespacerange
68 beginbfchar
<01> <096D>
<02> <0967>
<03> <0917>
<04> <091C>
<05> <091C093E>
<06> <0928>
<07> <0020>
<08> <0938>
<09> <0935>
<0A> <091C>
<0B> <092E>
<0C> <0932>
<0D> <0915>
<0E> <092A>
<0F> <092A0942>
<10> <0930>
<11> <092A094D0930>
<12> <092E0941>
<13> <0916>
<14> <092A>
<15> <091A>
<16> <0924>
<17> <0925>
<18> <0928094D>
<19> <092F>
<1A> <0926>
<1B> <0921>
<1C> <0927>
<1D> <0927093F>
<1E> <0930>
<1F> <002E>
<20> <092B>
<21> <092B>
<22> <0915>
<23> <002F>
<24> <0968>
<25> <0966>
<26> <096E>
<27> <0928>
<28> <0936>
<29> <0923>
<2A> <0906>
<2B> <09260947>
<2C> <092A094B>
<2D> <0938094D>
<2E> <091F>
<2F> <0905>
<30> <002C>
<31> <0939>
<32> <0028>
<33> <0029>
<34> <002D>
<35> <0927094D>
<36> <091D>
<37> <0932094D>
<38> <0924094D>
<39> <09300941>
<3A> <0915094D0937>
<3B> <092D>
<3C> <0924>
<3D> <0915094D0924>
<3E> <0923094D>
<3F> <092C>
<40> <0926094D0926>
<41> <092A094D0924>
<42> <0936>
<43> <2013>
<44> <096A>
endbfchar
endcmap
CMapName currentdict /CMap defineresource pop
end
end
endstream
endobj

For pdf 2:

/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
<00> <FF>
endcodespacerange
100 beginbfchar
<01> <0020>
<02> <0938>
<03> <002E>
<04> <092B>
<05> <092B>
<06> <0916>
<07> <0915>
<08> <0915>
<09> <096F>
<0A> <096C>
<0B> <0967>
<0C> <002F>
<0D> <0968>
<0E> <0966>
<0F> <096D>
<10> <0928>
<11> <0928>
<12> <0932>
<13> <0917>
<14> <0924>
<15> <0928094D>
<16> <092F>
<17> <092F093E>
<18> <0930>
<19> <0930>
<1A> <0028>
<1B> <0918>
<1C> <0918094B>
<1D> <0937093F>
<1E> <0926093F>
<1F> <0915>
<20> <002D>
<21> <0029>
<22> <0930>
<23> <092A>
<24> <0915>
<25> <091A094D>
<26> <0906>
<27> <09320947>
<28> <0932094D>
<29> <092A0941>
<2A> <0935094D>
<2B> <0935>
<2C> <09300941>
<2D> <09320940>
<2E> <092E>
<2F> <0926>
<30> <0905>
<31> <0930>
<32> <0909>
<33> <0938>
<34> <0938>
<35> <091D>
<36> <0924094D>
<37> <091A>
<38> <0939>
<39> <0937094D>
<3A> <092A094D0930>
<3B> <096E>
<3C> <091C>
<3D> <0924>
<3E> <0921>
<3F> <0926094D092F>
<40> <092C094D>
<41> <091F>
<42> <092E094D>
<43> <090F>
<44> <0969>
<45> <0927>
<46> <0930>
<47> <002C>
<48> <092D093F>
<49> <0936>
<4A> <092C>
<4B> <003F>
<4C> <0933>
<4D> <0917094D0930>
<4E> <0936094D>
<4F> <0927094D>
<50> <0915>
<51> <096A>
<52> <0920093F>
<53> <0923094D>
<54> <091C>
<55> <092A>
<56> <0930094D0926094B>
<57> <096B>
<58> <091C>
<59> <0908>
<5A> <0910>
<5B> <0922>
<5C> <0930>
<5D> <09150940>
<5E> <0936>
<5F> <0927094B0902>
<60> <0917094D>
<61> <09350948>
<62> <0915>
<63> <091C094D>
<64> <092C094D0930093F>
endbfchar
13 beginbfchar
<65> <0905>
<66> <0926>
<67> <0907>
<68> <0915094D>
<69> <091F>
<6A> <09150949>
<6B> <0916094D>
<6C> <0924093E0903>
<6D> <0924094D0924>
<6E> <0930094D09250940>
<6F> <0027>
<70> <2013>
<71> <0939>
endbfchar
endcmap
CMapName currentdict /CMap defineresource pop
end
end
endstream
endobj

我还看到过一些问题/答案,例如:

从一个 PDF 中提取到 Unicode 映射并在另一个 PDF 中使用 https://stackoverflow.com/q/13668105/8030107

由于 ToUnicode 映射,PDF 文本提取返回错误字符 https://stackoverflow.com/q/28678841/8030107

Also, pdf 的字节内容流是这样的:

stream
true^@^L^@<80>^@^C^@@cmapFgVB^@^@^@Ì^@^@^A^Rcvt <8c>C<84>^G^@^@^Aà^@^@^A$fpgm<98>\Ü¢^@^@^C^D^@^@^@dglyfÍ<92>3²^@^@^Ch^@^@'<84>head©Ò('^@^@*ì^@^@^@6hheaCþ
^D^@^@+$^@^@^@$hmtxNé(y^@^@+H^@^@^A^TlocaóLÛ5^@^@,\^@^@^@<8c>maxpö^@Î^@^@^@,è^@^@^@ nameÆîN~^@^@-^H^@^@^K£post^Z^@gþ^@^@8¬^@^@^@ prep^@_1R^@^@8Ì^@^@^@^K^@^@^@^A^@^A^@^@^@^@^@^L^@^@^A^F^@^@^@^A^B^C^D^E^F^G^H  
^K^L^M^N^O^P^Q^R^S^T^U^V^W^X^Y^Z^[^\^]^^^_ !"#$%&'()*+,-./0123456789:;<=>?@ABCD^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@2^B¼ÿÎ^@d^B+^Aó^B<91>ÿÿ^Aö^Bvÿ´^B!^B*ÿö^B£ÿ[^Bì^A[^Aï^@^O^@Kÿ<9c>^A^S^@Ü^B<99>ÿy^B^H^B^X^B"^@^Eÿõ^B^Q^Am^A@^Aä^@^N^AE^@s^BS^B^_ÿÐ^BÆÿ8^Bbÿ<9f>^Ai^@hÿ;ÿ^H^BLÿn^Bîÿ^K^Bfÿ<88>^A2^@È^B\ÿ¢^A¤^@F^AÛ^@^T^Bé^B:^B·^Bq^A<9a>^@Pÿ¡^@
^@^YÿÝ^B^Cÿìÿû^Aþ^@7ÿñÿçÿº^Aê^@^D^@^^ÿ3^@#ÿB^B5^Bä^AùÿÉÿ.^@^Vþ<9d>þ}^A©^B^M^B^Rÿ<92>^B^Wÿ¿ÿ<83>^@û^@ÿ^@Ò^Bl^A³^B{^@-^@<96>ÿØ^@ª^@U^@ZÿGÿL^@}ÿt^@¯^@<9b>^@_^BË^@n^@<91>^@¾^@(^BÐ^BÁ^BÚÿ^Aÿ^FÿÓÿ^Zþ÷ÿ°ÿ¦ÿ<97>ÿ~ÿ<8d>ÿ`ÿÄÿ«ÿµÿ÷@^E^E^D^C^B^@,vE °^C%E#ah^X#h`D-,E °^C%E#ah#h`D-,  ¸ÿÀ8^R±@^A68-,  °@8^R°^A6¸ÿÀ8-,^A°Fv Gh^X#Fah X °^C%#8°^B%^R°^A6e8Y-^@^B^@<85>^@^@^C¤^C¤^@^D^@   ^@oA$^@^G^@^F^@^D^@^C^@^B^@^C^@ ^@^H^@^B^@^E^@^B^@^D^@^A^@^B^@^@^@^E^@^H^@^G^@^D^@^B^@^A^@^C^@  ^@^F^@^B^@^E^@^B^@^D^@^C^@^B^@^@^@^A^@F^@^A^@^@^@Fv/7^Xv^@?^W<ý^W<?<ý<^A?^W<ý^W<?<ý<10º^@
^@^@^@^E+3^Q!^Q!7!^Q!^Q<85>^C^_üáC^B<9a>ýf^C¤ü\C^C^_üá^@^B^@W^@^@^BC^B ^@^\^@)^@/A^L^@^G^@[^@^\^@^[^@^A^@^C^@^@^@^A^@F^@^A^@^A^@Fv/7^Xv^@?^W<?^A10º^@*^@^A^@^E+!"&546?^A^N^A^U^T^V3267"&54632^V^U^T^F#7>^A54&#"^F^U^T^V3^ATj<93>        ^KI^N^MmN,Q^USuS9@Y<82>m<9f>^G^G3$!/Y@Î<93>!x^?'K Ty¬I<<81>[Pq<8c>d¦Èð%@^YKiO6He^@^@^B^@<99>ÿß^B^A^B»^@^O^@^\^@5A^N^@^O^@^N^@^B^@^@^@Q^@^K^@
^@^B^@  ^@b^@F^@^A^@^A^@Fv/7^Xv^@?^W<?^W<^A10º^@^]^@^A^@^E+^E^Q^N^A#"&54632^V^U^Q#^C2654&#"^F^U^T^V3^A¾^W>#HeeHUfCx/BB/,>>,!^A£^V^XiJKim[ýì^A°G14KK41G^@^@^@^Aÿó^@^@^B^S^B<9a>^@^X^@)A  ^@^F^@^E^@^A^@^B^@^A^@F^@^A^@^A^@Fv/7^Xv^@/<?<^A10º^@^Y^@^A^@^E+^C5!^U#^Q#^Q#^Q^T^F#"&546;^A26=^A#^M^B qB§^T^M^Yl^P
/^K^P<84>^B^<<ý¢^B^þº^P^X}^\
^P^T^N<99>^@^@^Aÿó^@^@^Bæ^B<9a>^@^^^@)A ^@^V^@^U^@^A^@^R^@^Q^@F^@^A^@^A^@Fv/7^Xv^@/<?<^A10º^@^_^@^A^@^E+%"&'7^^^A32654&'!5!5!^U#^Q#^Q#^^^A^U^T^F#^A5H<9c>:<3|3!/;6^A^^ýÁ^BóqC ^[^ZU=PÁ ^Z<8e>«3$9y7<8c><<ý¢^A<8f>%U,@Y^@^@^Aÿó^@^@^A^X^B<9a>^@^H^@)A    ^@^F^@^E^@^A^@^B^@^A^@F^@^A^@^A^@Fv/7^Xv^@/<?<^A10º^@   ^@^A^@^E+^C5!^U#^Q#^Q#^M^A%rBq^B^<<ý¢^B^^@^@^@^Aÿó^@^@^BW^B<9a>^@^X^@)A ^@^L^@^K^@^A^@^H^@^G^@F^@^A^@^D^@Fv/7^Xv^@/<?<^A10º^@^Y^@^D^@^E+^S463!5!5!^U#^Q#^Q#"^F^]^A^T^F#"&5^T^\^S^A`þP^BdqCÁ^P^X^T^M^Wn^A<8f>^N^T­<<ý¢^An^P
C^P^X<8b>^[^@^Aÿóÿù^BÓ^B<9a>^@^_^@.A^K^@^U^@M^@^F^@^E^@^A^@^B^@^A^@F^@^A^@^A^@Fv/7^Xv^@/<?<?^A10º^@ ^@^A^@^E+^C5!^U#^Q#^Q#'35#^U^T^F#"&'^S^G^A7^^^A326=^A!^M^BàqC³"ÕéB/^H^O^DÈ5þÔ6^U9^\^\'þÿ^B^<<ý¢^A@BÜ´4J^D^Bþé"^Aª(-6&^\´^@^Aÿó^@^@^B-^B<9a>^@"^@)A  ^@^F^@^E^@^A^@^B^@^A^@F^@^A^@^A^@Fv/7^Xv^@/<?<^A10º^@#^@^A^@^E+^C5!^U#^Q#5^N^A#"&54632^V^W^G.^A#"^F^U^T^V3267^Q!^M^B:rB^[I(SuuS^X,^S"^L^Z^O7NN7'J^[þz^B^<<ý¢Õ #jJKi^M^N5        ^KF2.C5/^A%^@^Aÿ$^@^@^A^X^C±^@^\^@=A^Q^@^S^@^R^@^B^@^Q^@+^@^Z^@^Y^@^A^@^V^@^U^@^B^@^C^@^A^@F^@^A^@^G^@Fv/7^Xv^@/^W<?<?^W<^A10º^@^]^@^G^@^E+^C53.^A#"^F^U^T^V^W#.^A54632^V^W3^U#^Q#^Q#^Mq^Q[4'6^\^YI^W^X]CM<80>^UrrBq^B^<`|3$ ?^Y^W>#=U<9e>y<ý¢^B^^@^@^Bÿó^@^@^BQ^B<9a>^@^U^@^Z^@)A      ^@^F^@^E^@^A^@^B^@^A^@F^@^A^@^A^@Fv/7^Xv^@/<?<^A10º^@^[^@^A^@^E+^C5!^U#^Q#^Q#^U^T^F#"&546;^A5#^W35#^U^M^B^rBð^L^H^Wn^T^M6xºðð^B^<<ý¢^A@/^P^Xd^T^M^TÜÜÜÜ^@^Aÿóÿù^Bä^B<9a>^@&^@.A^K^@^X^@M^@^F^@^E^@^A^@^B^@^A^@F^@^A^@^A^@Fv/7^Xv^@/<?<?^A10º^@'^@^A^@^E+^C5!^U#^Q#^Q"^F^G'>^A7.^A#"^F^U^T^V^W^G.^A54632^V^W>^A35!^M^BñqB:d^V@@@   


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

不同的pdf有不同的cmap,如何制作全局cmap,以便将许多具有相同字体映射的pdf处理到/toUnicodemap 的相关文章

  • ABCPdf 添加文档 javascript

    是否可以使用 ABCPdf 将文档 JavaScript 添加到生成的 PDF 中 如果你的意思是 在文档加载后执行的Javascript 那么看看本文档页面 http www websupergoo com helppdf8net sou
  • 如何将任何语言和字符集的字符串转换为 Java 中的有效文件名?

    我需要根据用户输入的名称生成文件名 这些名称可以是任何语言 例如 约翰 史密斯 高岡和子 我爱你 这些是使用输入的值 因此我不能保证名称不包含文件名中无效的字符 用户将从浏览器下载这些文件 因此我需要确保文件名在所有配置的所有操作系统上都有
  • 如何使用Python从pdf文件中删除页面?

    我有一些超过 500 页的 pdf 文件 但每个文件中只需要几页 有必要保留文档的标题页 我确切地知道程序应该删除的页数 如何使用安装在 MS Visual Studio 上的 Python 2 7 环境来完成此操作 尝试使用PyPDF2
  • 显示来自 weburl iphone sdk 的 pdf

    我正在开发一个项目 我想显示网站上的 pdf 我有 pdf 的 url 知道如何做到这一点 我还想创建网站上 pdf 的缩略图 您可以在您的设备中显示 pdf 文件 直接将 url 传递给 UIWebView UIWebView webVi
  • MKAnnotationView 的不同字体

    在iPhone SDK地图上的标注气泡上 可以更改标题和副标题属性的字体吗 我对标注气泡中显示的默认字体不满意 并且希望使用不同的字体来匹配我的应用程序的其余部分 然而 我没有看到太多提及这一点 这让我担心这可能是不可能的 我见过构建自定义
  • 在 UIWebView 中使用自定义字体

    我想在 UIWebView 中显示自定义字体 我已经将字体放在 应用程序提供的字体 下的 plist 中 使用中的代码 UIWebView webView UIWebView alloc initWithFrame myRect NSURL
  • 将自定义字体与 wkhtmltopdf 一起使用

    我正在尝试在使用 wkhtmltopdf 生成的 PDF 中使用自定义字体 我读到您不能使用 google webfonts 并且 wkhtmltopdf 使用 truetype ttf 文件 谁能证实这一点吗 所以我从 google we
  • 创建 PDF/A-3:嵌入文件应包含有效的 Params 密钥

    我正在尝试使用 itextpdf 5 4 5 和 itext pdfa 5 4 5 创建 PDF A 3 当我设置 PdfFileSpecification 时 出现以下异常 com itextpdf text pdf PdfAConfor
  • 自定义字体显示在 IB 中,但不显示在模拟器中

    我已经设置了一个UITextView and a UILabel使用自定义字体 它是垂直镜像的蒙古文字体 但我还添加了英文文本 以便您可以看到效果 这些文字显示在 Interface Builder 中 但在模拟器中大部分字符都在UITex
  • PHP:读取字体文件的 TrueType/OpenType 元数据

    如何阅读字体详细信息 例如 字体在其元数据中包含版权 姓氏 设计者 版本等信息 我还希望脚本能够计算文件中的字形数量 并返回字体支持的语言 例如 典型的字体可能包含西方语言 瑞典语和罗马语言支持 并具有数百个字形 它应该支持 truetyp
  • 将 SignedHash 插入 PDF 中以进行外部签名过程 -workingSample

    遵循电子书第 4 3 3 节 PDF 文档的数字签名 https jira nuxeo com secure attachment 49931 digitalsignatures20130304 pdf 我正在尝试创建一个工作示例 其中 客
  • DOCX 到 PDF:SaveAs2、ExportAsFixedFormat 与 PrintOut

    我有一个小小的目标 即使用 C 和 NET 将大量 docx 文件转换为 pdf 而无需打开 Word 可见 且无需使用任何第三方库 需要管理的组件更少 花费的资金也更少 目前 我正在尝试正确转换单个文档 该文档必须尽可能高效 以便快速转换
  • 使用 Django 从标准输出返回 pdf 响应

    我正在使用 wkhtmltopdf 创建 PDF 文件 但是我不知道如何正确返回它们 所以我必须将它们写入我的媒体文件夹 然后重定向到刚刚创建的文件 编辑 Ian 的建议是写入 STDOUT 因此我更改了 wkhtmltopdf 命令来执行
  • 使用 PDFBox 在 PDF 上绘制矢量图像

    我想使用 Apache PDFBox 在 PDF 上绘制矢量图像 这是我用来绘制常规图像的代码 PDPage page PDPage document getDocumentCatalog getAllPages get 1 PDPageC
  • 所见即所得与 Unicode

    我在 Delphi 中编写了一个 Windows 程序 该程序使用 GetCharWidth 和 Em Square 将文本非常精确地放置并换行到屏幕和打印机 这对于 ANSI 文本效果很好 您只需要检索和计算 255 个字符的宽度 但当您
  • 使用 Swift 将自定义字体添加到 macOS 应用程序

    我遵循了一堆教程 但它不起作用 我只是想向 macOS 应用程序添加自定义字体 我基本上尝试过 添加了 ttf字体文件到我的项目 目标会员资格已设置 我还确保使用复制文件Copy Files within Bundle Phases 编译后
  • 用于表示过滤的漏斗的 Unicode 字符

    是否存在在常见计算机操作系统上广泛使用的表示过滤 例如漏斗 的 unicode 字符 到目前为止我发现的一些最相似的字符 Y V
  • 如何在 chromedriver 2.15 中打开 pdf 而无需下载

    我最近升级到 Chromedriver 2 15 现在 当我单击 pdf 文件的链接时 它会自动下载 而不是像以前那样显示在新选项卡中 a target blank href my pdf file pdf My PDF File a 有没
  • 如何对来自 WebView 的changeAttributes: delegate pass-through做出有意义的反应?

    WebView支持 通过WebEditingDelegate 一种让委托实现各种操作的自定义行为的机制WebView 或私人WebHTMLView 收到 当执行诸如以下操作时 void changeAttributes id sender
  • 如果我使用客户端计算机上未安装的字体,会发生什么情况?

    有人可以告诉我 如果我在 WinForms 应用程序中使用目标计算机上不可用的字体 会发生什么情况 它是否使用同一系列的字体 只是 Sans Serif 还是其他字体 您的应用程序将回退到 Segoe UI Tahoma 然后是 MS Sa

随机推荐