gpt4 book ai didi

pdf - PDF 词典的编码

转载 作者:行者123 更新时间:2023-12-03 10:03:01 25 4
gpt4 key购买 nike

我需要知道 PDF 词典值的编码(不是向用户显示的文本,而是“隐藏的代码”)。我打算不为此使用任何库。在哪里可以找到它?

最佳答案

the encoding of the values of PDF dictionaries

PDF 词典的值是 PDF 对象。

您应该查看 PDF 规范 ISO 32000-1 ,特别是第 7 章语法,了解 PDF 对象。你会发现:

The tokens that delimit objects and that describe the structure of a PDF file shall use the ASCII character set. In addition all the reserved words and the names used as keys in PDF standard dictionaries and certain types of arrays shall be defined using the ASCII character set.

因此,大多数时候您必须处理 ASCII 值。

但是,对于字符串来说,情况很棘手,因为有多种类型的字符串使用相同的字符串语法选项,因此您必须根据上下文解释它们的内容。

Table 35 – String Object Types

Type Description

text string Shall be used for human-readable text, such as text annotations, bookmark names, article names, and document information. These strings shall be encoded using either PDFDocEncoding or UTF-16BE with a leading byte-order marker. This type is described in 7.9.2.2, "Text String Type."

PDFDocEncoded string Shall be used for characters and glyphs that are represented in a single byte, using PDFDocEncoding. This type is described in 7.9.2.3, "PDFDocEncoded String Type."

ASCII string Shall be used for characters that are represented in a single byte using ASCII encoding.

byte string Shall be used for binary data represented as a series of bytes, where each byte can be any value representable in 8 bits. The string may represent characters but the encoding is not known. The bytes of the string need not represent characters. This type shall be used for data such as MD5 hash values, signature certificates, and Web Capture identification values. This type is described in 7.9.2.4, "Byte String Type."

如果字符串是值,例如作者元数据的,它是一个文本字符串,因此它使用 PDFDocEncoding 或带有前导字节顺序标记的 UTF-16BE 进行编码。

如果另一方面,字符串是值,例如签名字典中的内容,它是一个保存二进制对象的字节字符串,任何根据某种编码解释它的尝试都会失败。

流的情况更加棘手。

首先,流内容可能会以某种方式进行处理,例如它可能被压缩。要获取实际的流内容,您首先必须撤消此处理。

内容可以是二进制的,例如字体程序或文本,例如JavaScript,或者它可能是内容流,例如页面内容。

A content stream is a PDF stream object whose data consists of a sequence of instructions describing the graphical elements to be painted on a page. The instructions shall be represented in the form of PDF objects, using the same object syntax as in the rest of the PDF document.

因此,它们大多是 ASCII 值。文本绘制指令的字符串参数也是一个异常(exception)。它们的编码完全取决于绘制字符串时当前选择的字体,并且字体可能使用标准编码,但它们也可能使用完全困惑的临时编码。

PS:如果您碰巧尝试分析加密的 PDF,您会发现加密适用于文档 PDF 文件中的所有字符串和流,只有极少数异常(exception)。特别是加密不适用于字典和数组结构、数字和名称。因此,不知道这一点的人可能不会意识到 PDF 已加密,而是假设字符串和流以非常奇怪的方式编码。

关于pdf - PDF 词典的编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35068916/

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