繁体   English   中英

从python创建pdf

[英]create pdf from python

我想从Python应用程序生成PDF。 它们开始相对简单,但有些可能会变得更复杂(基本上就像文档一样,但后面会包含水印)

我以前曾在原始postscript中工作过,并提供了我可以生成正确的标题等文件并在文件的最后我想避免使用复杂的库,这可能不完全符合我的要求。 有些似乎已经有了bitrot并且不再受支持(pypdf和pypdf2)特别是当我知道PDF / Postscript可以完全满足我的需求时。 PDF内容确实不那么复杂。

我可以通过将适当的文本标题写入文件和我的postscript代码来生成EPS(Encapsulated postscript)。 但是检查PDF有一个lil二进制头我不知道如何生成。

我可以生成EPS并转换它。 我对此并不十分满意,因为生产环境是Windows 2008服务器(Dev是Ubuntu 12.04),制作东西并转换它看起来非常愚蠢。

有没有人这样做过? 我不想使用图书馆而迂腐吗?

只要你在Python 2.7中工作, Reportlab似乎是目前最好的解决方案。 它的功能非常全面,可能有点复杂,具体取决于你正在做什么,但由于你似乎熟悉PDF内部,一般希望学习曲线不会太陡峭。

借来自ask.yahoo

如果PDF文件是1.1版本的PDF文件,则PDF文件以“%PDF-1.1”开头。 当他们没有存储二进制数据对象时,您可以正常阅读PDF文件,如果您不需要在其中存储类似Paint位图的二进制对象,您甚至可以使用记事本创建PDF文件。

但是在看到“%PDF-1.1”之后你会忽略之后的内容(Adobe Reader也会这样做)并直接到文件末尾,其中有一行显示“%% EOF”。 这始终是文件中的最后一件事; 如果在那里,你知道文件中那个位置之前只有几个字符,那么单词“startxref”后跟一个数字。 该数字告诉读者程序在文件中查找的位置,以查找描述文件结构的项目列表的开头。 列表中的这些项可以是页面对象,字典对象或流对象(如位图的二进制数据),每个项都有“obj”和“endobj”标记其描述开始和结束的位置。

对于相当简单的PDF文件,您可以像使用记事本一样键入文本,以生成Adobe Reader和其他PDF查看器程序可以正确读取和显示的工作PDF文件。

做这样的事情是一个挑战,即使对于一个简单的文件,你真的必须知道你正在做什么才能将任何二进制数据放到它应该去的文件中; 但是对于字符数据,你只能输入它。而PDF中使用的所有命令都是你可以输入的字符串形式。最难的部分是计算那些给出文件偏移量的数字。文件中的项目(例如“startxref”后面的数字)。

如果文件格式的布局方式引起了您的兴趣,请继续阅读PDF手册,该手册讲述了整个故事。 http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/PDF32000_2008.pdf

但实际上你应该只使用一个库

感谢@LukasGraf提供此链接http://www.gnupdf.org/Introduction_to_PDF ,它展示了如何从头开始创建一个简单的hello world pdf

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM