我一直想看一段PDF的内部,比如它的原始源代码,所以我可以看一下。这样做的任何方式?
答案 0 :(得分:45)
除非您对内部结构有所了解,否则查看PDF的原始代码对您没有多大帮助。您应该获得official PDF reference (download PDF)的副本,并且您应该阅读一些介绍性文章,例如 this [gone] 或 {{3开头。
即使经过这样的准备,在盯着原始代码时你也不会发现它们有用。因为PDF通常包含“过滤”的部分(即:压缩)。
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对象部分。