编程技术分享平台

网站首页 > 技术教程 正文

技术研究拾遗:PDF文件(技术研究内容有哪些)

xnh888 2024-10-26 16:45:26 技术教程 19 ℃ 0 评论

PDF文件衍生自PostScript,最初用记事本就可以打开编辑。随着PDF嵌入的内容功能越来越多,有些二进制的图像和音视频数据,就出现了stream,以及对PDF压缩的需求。

在2008年1月,PDF成为了ISO标准(ISO 32000),截止目前停留在1.7版本。

如果你用notepad++,以文本的方式尝试打开PDF文件,基本可以看清文件的结构。但它总希望被认为是一个二进制文件,最好以binary的方式读取。为了达到这个目的,会在标题行后紧跟一个注释行,要求至少包含四个二进制字符(byte最高位为1),这样就差不多能让很多App识别出这是一个二进制文件。

以下片段,用记事本另存为PDF,就是正常的PDF文件

%PDF-1.1
%¥±?

1 0 obj
  << /Type /Catalog
     /Pages 2 0 R
  >>
endobj

2 0 obj
  << /Type /Pages
     /Kids [3 0 R]
     /Count 1
     /MediaBox [0 0 200 144]
  >>
endobj

3 0 obj
  <<  /Type /Page
      /Parent 2 0 R
      /Resources << /Font << /F1 << /Type /Font /Subtype /Type1/BaseFont /Times-Roman
               >>
           >>
       >>
      /Contents 4 0 R
  >>
endobj

4 0 obj
  << /Length 55 >>
stream
  BT
    /F1 18 Tf
    0 0 Td
    (Hello World) Tj
  ET
endstream
endobj

xref
0 5
0000000000 65535 f 
0000000018 00000 n 
0000000077 00000 n 
0000000178 00000 n 
0000000457 00000 n 
trailer
  <<  /Root 1 0 R
      /Size 5
  >>
startxref
565
%%EOF

拷贝上述内容,保存为PDF文件打开,你将看到:


总结:

1.PDF版本号,在文件开头处:%PDF-1.7

2.PDF第二行乱码没啥用,随便4个高字节为1的byte:%a??ó

本次先分享到这,哈不太习惯头条的编辑发布,搞得有点麻烦。下次,我再分享一段python代码用于解析PDF的结构。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表