2013-08-07 16 views
4

我想在pdf的每个页面上显示一个文本。这个文本是一个看起来像<p style="color: #ff0000">blabla</p>的html代码,它在最终文档中显示为红色,我将它转换为pdf(html2pdf lib),然后将它合并(PyPDF2 lib)到我的pdf的每个页面。 ...但合并非常缓慢!将信息添加到pdf,PyPDF2合并得太慢

我的问题是: 是否有合并PDF比PyPDF2的page.mergePage方法更快的方法? (或者也许有更快的方式来添加我的文本到这个pdf?)

谢谢! (在Windows 8上使用python 2.7.5)

+0

对您要添加的文本有何限制?你需要使用特定的字体吗?你需要控制文本显示在页面的哪个位置? – Felipe

回答

0

由于您只是在页面中添加一些文本,因此您可以通过直接编辑页面的内容流来加速此过程。合并必须处理显着减慢过程的字体,其他资源,裁剪框等。如果您实际需要修改其中的一些内容,解决方案会变得更加复杂。一些示例代码:

TEXT_STREAM = [] # The PS operations describing the creation of your text 
def add_text(page): 
    "Add the required text to the page." 
    contents = page.getContents() 
    if contents is None: 
     stream = ContentStream(TEXT_STREAM, page.pdf) 
    else: 
     contents.operations.extend(TEXT_STREAM)