读取PDF文件中的日语字符

TacB0sS

我有以下命令:

[<0e0f0a52030d030e0ce5030f0744030f> 10 <030d> 10 <0cd4>] TJ

我知道它在十六进制部分中隐藏了日语,因为这是PDF中唯一的内容,而这一行在pdf文件中唯一页面的唯一内容流中。

问题是无论我如何尝试以Hegberish结尾的十六进制字符串,我都已将这些Hex字符串解码为字节,并尝试从文化上应用了我能找到的每个字符集,但仍然得到了Gibberish。

(也许我很绝望,因为我知道它可能无法正常运行)我也尝试了另一种方法,在Android上对其进行了测试,并且能够导入pdf日语文本(从资源中加载) ,并且在调试时,我可以在String实例的值中看到REAL日语文本,但我再次尝试将所有字符集仅应用于在整个文件中生成4-6个匹配的十六进制字符,但是又一次……什么也没有。

我实际上不需要该字形,我会为正确的文本准备...

文字本身是否可以由字符集编码以外的其他方式编码?谁能指出我正确的方向?

===更新===

好的,所以我发现还有一个额外的“加密”,Identity-H,在这里读到您需要一个/ ToUnicode映射,该映射在文件中似乎找不到。

让我发疯的是,其他PDF查看器可以显示PDF,但我不知道怎么做!

再说一次,任何骨头都很好...地狱,我会去报废的:)

谢谢,

亚当。

对于某些文件上下文:

...
10 0 obj
    << 
    /Type /Page 
    /Parent 7 0 R 
    /Resources 11 0 R 
    /Contents 16 0 R 
    /MediaBox [ 0 0 595 842 ] 
    /CropBox [ 0 0 595 842 ] 
    /Rotate 0 
    >> 
endobj
11 0 obj
    << 
    /ProcSet [ /PDF /Text ] 
    /Font << /TT2 13 0 R /G1 12 0 R >> 
    /ExtGState << /GS1 19 0 R >> 
    /ColorSpace << /Cs6 15 0 R >> 
    >> 
endobj
12 0 obj
    << 
    /Type /Font 
    /Subtype /Type0 
    /BaseFont /Ryumin-Light-Identity-H 
    /Encoding /Identity-H 
    /DescendantFonts [ 18 0 R ] 
    >> 
endobj
13 0 obj
    << 
    /Type /Font 
    /Subtype /TrueType 
    /FirstChar 32 
    /LastChar 32 
    /Widths [ 278 ] 
    /Encoding /WinAnsiEncoding 
    /BaseFont /Century 
    /FontDescriptor 14 0 R 
    >> 
endobj
14 0 obj
    << 
    /Type /FontDescriptor 
    /Ascent 985 
    /CapHeight 0 
    /Descent -216 
    /Flags 34 
    /FontBBox [ -165 -307 1246 1201 ] 
    /FontName /Century 
    /ItalicAngle 0 
    /StemV 0 
    >> 
endobj
15 0 obj
    [ 
    /ICCBased 20 0 R 
    ]
endobj
16 0 obj
    << /Length 2221 /Filter /FlateDecode >> 
        stream
        ...
                [<0e0f0a52030d030e0ce5030f0744030f>10<030d>10<0cd4>]TJ
        ...
                <00e700e700e700e700e700e700e700e700e700e700e700e700e700e700e700e700e700e700e700e700e700e700e700e7>Tj
        ...
                <030e030d0a48064403740353035a039408030ebd074807c1036e0358039304e10c8802a2074807c10cd40e8a030e030d02a303770a2a0a100374036d034d036f00e7>Tj
        ...
    endstream
endobj
17 0 obj
    << 
    /Type /FontDescriptor 
    /Ascent 723 
    /CapHeight 709 
    /Descent -241 
    /Flags 6 
    /FontBBox [ -170 -331 1024 903 ] 
    /FontName /Ryumin-Light 
    /ItalicAngle 0 
    /StemV 69 
    /XHeight 450 
    /Style << /Panose <010502020300000000000000>>> 
    >> 
endobj
18 0 obj
    << 
    /Type /Font 
    /Subtype /CIDFontType0 
    /BaseFont /Ryumin-Light 
    /FontDescriptor 17 0 R 
    /CIDSystemInfo << /Registry (Adobe)/Ordering (Japan1)/Supplement 2 >> 
    /DW 1000 
    /W [ 231 [ 500 ] ] 
    >> 
endobj
19 0 obj
    << 
    /Type /ExtGState 
    /SA false 
    /SM 0.02 
    /TR2 /Default 
    >> 
endobj
20 0 obj
    << /N 3 /Alternate /DeviceRGB /Length 2572 /Filter /FlateDecode >> 
    stream
    ...
    endstream
endobj
...
TacB0sS

由于此处的大多数想法从根本上是正确的,因此它们并不完整也不准确,因此:

  • / ToUnicode可能存在于PDF文件中,但不是必须的!!!
  • 有外部,多国语言的预定/预先定义的CMap,这里

在错误的位置挖掘了这么长时间真是令人沮丧,我将PDF压缩成小块,并仔细检查了文件中的所有流,以找到没有运气的地图,因为它不在文件中!

我希望这可以避免别人的麻烦...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从文件中读取日语字符时出现问题-C

来自分类Dev

StreamReader无法从CSV文件读取日语字符

来自分类Dev

StreamReader无法从CSV文件读取日语字符

来自分类Dev

NodeJS读取带有日语字符的文件

来自分类Dev

如何从PDF阅读日语字符?

来自分类Dev

python脚本中的日语字符

来自分类Dev

Birt报告中的日语字符

来自分类Dev

在python中对齐日语字符

来自分类Dev

Birt报告中的日语字符

来自分类Dev

如何在Windows中通过python正确读取日语文件名文件

来自分类Dev

在phonegap中读取pdf文件

来自分类Dev

比较C#中的日语字符

来自分类Dev

在R中显示从MySQL检索的日语字符

来自分类Dev

PHP读取日语字符,将日语汉字转换为可读形式

来自分类Dev

PHP读取日语字符,将日语汉字转换为可读形式

来自分类Dev

如果我从IE 11下载文件,文件名中的日语字符将变成垃圾

来自分类Dev

如何从Verilog文件中读取特殊字符?

来自分类Dev

在Java中以字符方式读取文件

来自分类Dev

C ++-文件读取中缺少行尾字符

来自分类Dev

在C ++中从文件读取整数和字符

来自分类Dev

如何“看到”或“读取”文件中的ELO字符

来自分类Dev

从文件中读取数据,仅字母字符

来自分类Dev

Xcode从C ++文件中读取字符

来自分类Dev

从文件中读取每个非英语字符

来自分类Dev

如何从Verilog文件中读取特殊字符?

来自分类Dev

从文件中读取字符串

来自分类Dev

gnuplot - 如何从 dat 文件中读取 & 字符

来自分类Dev

从文件中读取直到特定的字符序列

来自分类Dev

fgetc 从文件中读取错误的字符