什么使 Pdf 文件成为 Pdf 文件?

Posted

技术标签:

【中文标题】什么使 Pdf 文件成为 Pdf 文件?【英文标题】:What Makes a Pdf file a Pdf file? 【发布时间】:2022-01-19 16:14:24 【问题描述】:

我想知道我们是否可以仅使用编码将文件类型从 png、jpeg 更改为 pdf。 因此,为了做到这一点,我首先必须弄清楚 pdf 文件与其他文件的不同之处。

【问题讨论】:

您打算使用什么语言?有一个使用 c# 中的库将图像转换为 pdf 的示例,这可能很有用。 ***.com/a/36053104/8678978 实际上,我正在android studio中使用java进行尝试,并且还想知道pdf文件一般是如何制作的? @chrisbyte PDF 文件是二进制文件。它具有特定的结构,其中的对象通过 a.map 标识到字节偏移量。获取规范副本并阅读。 要了解一般来说如何制作 pdf 文件,请考虑查看规范。 【参考方案1】:

您可以通过添加页眉和尾声将 image.PDF 文件编写为纯文本,所以这里是一个简单的单色图像,如简单的 f 和 0 所示。注意彩色图像会更加多样化。所以每个黑色像素是000000,每个白色像素是FFFFFF

%PDF-1.7
%µ¶

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

2 0 obj
<<
  /Type /Pages
  /Count 1
  /Kids [ 5 0 R ]
>>
endobj

3 0 obj
<<
  /Length 2683981
  /Type /XObject
  /Subtype /Image
  /Width 744
  /Height 592
  /BitsPerComponent 8
  /ColorSpace /DeviceRGB
  /Filter /ASCIIHexDecode
>>
stream
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
....
Dozens of lines later
ffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff
ffffffffffffffffffffffffffffff000000000000000000000000ffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
....
Thousands of lines later
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
>
endstream
endobj

4 0 obj
<<
  /Length 43
>>
stream
q
557.93026 0 0 443.9445 0 0 cm
/Img3 Do
Q

endstream
endobj

5 0 obj
<<
  /Type /Page
  /MediaBox [ 0 0 557.93026 443.9445 ]
  /Rotate 0
  /Resources <<
    /XObject <<
      /Img3 3 0 R
    >>
  >>
  /Contents 4 0 R
  /Parent 2 0 R
>>
endobj

xref
0 6
0000000000 65536 f 
0000000016 00000 n 
0000000070 00000 n 
0000000136 00000 n 
0002684310 00000 n 
0002684406 00000 n 

trailer
<<
  /Size 6
  /Info <<
    /Producer (SumatraPDF 3.4.14236)
  >>
  /Root 1 0 R
>>
startxref
2684589
%%EOF

这对于发布来说会非常臃肿,因此更通常导入源crisp.PNG 或fuzzy.peg 和zip 样式“DeFlated”(“FlateDecode”重新加密为二进制)

SumatraPDF 生成的源 PDF 仅为 23082 字节,如下所示,但对于这个问题,它被故意扩展以显示内部工作原理,但是图像可以被任何 PDF 库压缩回二进制文件

3 0 obj
<</DecodeParms<<>>/Type/XObject/Subtype/Image/Width 744/Height 592/BitsPerComponent 8/ColorSpace/DeviceRGB/Length 23082/Filter/FlateDecode>>
stream
xœíÙ–Ûº®Eóÿ?íûpƨëm‰àBÃNšó)±ÑAX®T>..............

注意图像一旦放入 PDF 中就没有 PNG 标识或 DPI (PDF 不可逆)

【讨论】:

以上是关于什么使 Pdf 文件成为 Pdf 文件?的主要内容,如果未能解决你的问题,请参考以下文章

PDF Document 是啥文件??

pdf可以用啥打开

PDF Document 是啥文件??

将PDF文件转换成为JPG图片的方法

请教,如何下载pdf文档。谢谢!

在线翻译PDF文件用什么方法