如何打开PDF原始?

时间:2011-07-03 10:06:05

标签: pdf adobe

我一直想看一段PDF的内部,比如它的原始源代码,所以我可以看一下。这样做的任何方式?

5 个答案:

答案 0 :(得分:45)

除非您对内部结构有所了解,否则查看PDF的原始代码对您没有多大帮助。您应该获得official PDF reference (download PDF)的副本,并且您应该阅读一些介绍性文章,例如 this [gone] {{3开头。

即使经过这样的准备,在盯着原始代码时你也不会发现它们有用。因为PDF通常包含“过滤”的部分(即:压缩)。

如何查看'原始'二进制部分

背后的真实PDF源代码 Jay Birkenbilt的this是一个非常有用的命令行工具(可用于Linux,Mac OSX和源代码,在开源艺术许可下),它可以解压缩大多数过滤内容并重新组织内部结构一种让你更深入了解它的方法(所有对象都是按数字排序的,等等)。实现这一目标的命令行是:

 qpdf  --qdf  original.pdf  unpacked.pdf

用于查看PDF的另一个有用且免费的工具(GPL许可,但仅限Linux的AFAIK)当然是qpdf。这个甚至来PDFEdit(如果你愿意的话),同时仍允许你访问内部结构和“原始”PDF代码。

答案 1 :(得分:4)

使用Hex editor。当然,除非你知道PDF specification(PDF,8.6 MB),否则你不会认识到太多。

答案 2 :(得分:2)

使用CosEdit实用程序调查PDF文件源非常容易。免费版本允许查看来源但不能编辑它们。

答案 3 :(得分:0)

除了将qpdf工具转换为postscript可能会有所帮助。 PDF是PS的子集。通常很容易理解,例如,图表的标签在哪里。您可以使用pdf2ps或调用ghostscript

gs -sDEVICE=pswrite some.pdf -sOutputFile=some.ps -dNOPAUSE -c quit

使用pdflatex生成PDF时,可以使用选项禁用压缩。这使PDF更具可读性。

答案 4 :(得分:0)

如果目的只是为了查看文件,那么任何简单的文本编辑器都可以执行此操作,例如记事本。 PDF只是基于文本的格式,包括嵌入式内容字节流。原始PDF看起来像这样:

>>
/Border [0 0 0]
/Rect [121.02 332.48 363.24 343.64]
/StructParent 1321
/Subtype /Link
/Type /Annot
>>
endobj
64579 0 obj
<<
/Filter /FlateDecode
/Length 5771
>>
stream
Ũn0x/�+�}�ǹ����\֛ bYO�5[��X��W��L��(�������V�A3�C���������u큋_�a��ךm2N�6�    ��A��8
�d���NQ⺢GI��G�[��)�̉Y��R�y{R����&�&�;��g�k1���ҋeTC�(W��`���*��(;�AEc<=  mnZ+��|T��v
�.��зe�aޞ��V4�b���L����k�Oj.ֿ�y�����kc|I��  ��C�0��Hf�7d�/�z���m��o��A��B��IJ�%�. 
!�%f�б���&�ޒ�4Ύ7�l�3���3`�
endstream
endobj
64580 0 obj
<<
/Border [0 0 0]
/Dest <E4AE7DD2769553EF1668>
/Rect [219 648.5 256.8 659.66]
/StructParent 1323
/Subtype /Link
/Type /Annot
>>

您看到的是基本的COS对象,例如名称,字典,流等。 PDF 32000标准中描述了所有对象,请参见 7.3对象部分。