不使用第三方库手动创建pdf文件

问题描述 投票:0回答:1

我想在不使用任何第三方库的情况下手动创建一个 pdf 文件。我需要创建一个示例发票格式,其中包含一些文本、一个表格和一个带有原始 pdf 对象的图像。我查看了几页,但没有提供适当的数据并建议使用第三方库。如果有一些信息,那将非常有帮助。

规范链接:https://archive.org/details/pdf320002008/page/n3/mode/2up

我浏览了规范中的一些部分。我可以使用提供的示例创建带有小文本的 pdf。在将表格和图像添加到 pdf 时需要一些帮助。在 pdf 示例中使用了编码,所以我无法理解表的创建。我需要文件中没有任何编码的原始对象格式。

pdf pdf-generation adobe pdf-specification
1个回答
0
投票

在控制台中编写 PDF 很容易,但首先您需要编写 PDF 标题,因此对于在 MS NotePad IDE 中应该足够简单的单页和编译只需按 Ctrl+S,同时使用实时视图。

对于您的初学者,我会使用 CMD 来简单地编写基础知识,然后添加徽标和图像,因为它们是二进制的并且需要更多的数学运算,例如使用 DIR 来获取它们的文件大小。但是,我要说的是,要使客户可以接受“基本”File.pdf,需要通过打印或其他 PDF Lib 进行解析以整理到合规级别(任何一个 CLI.exe 都可以)。

%PDF-1.1
1 0 obj <</Pages 2 0 R/Type/Catalog>>endobj
2 0 obj <</Type/Pages/Count 2/Kids [3 0 R 5 0 R]>>endobj
3 0 obj <</Type/Page/Contents 4 0 R/Parent 2 0 R/Resources<</Font<</F1<</Type/Font/BaseFont/Helvetica/Subtype/Type1>>>>>>/MediaBox[0 0 595 842]>>endobj
4 0 obj <</Length 100>>
stream 
BT 
  /F1 20 Tf 30 700 Td (Dear Customer) Tj
ET
BT 
  /F1 12 Tf 30 640 Td (Here is your Invoice!) Tj
ET
BT 
  /F1 11 Tf 30 620 Td
 (See Page 2 for T & C) Tj
ET
1.00 g
 30 550 m 565 550 l S
 30 500 m 565 500 l S
 30 550 m 30 50 l S
 500 550 m 500 50 l S
 565 550 m 565 50 l S
endstream
endobj

5 0 obj <</Type/Page/Contents 6 0 R/Parent 2 0 R>>endobj
6 0 obj <</Length 100>>
stream
0.5 g
 100 600 50 75 re f S
 100 600 m 500 600 l S
endstream
endobj

trailer
<</Root 1 0 R/Size 7>>
%%EOF
© www.soinside.com 2019 - 2024. All rights reserved.