reportlab,找到页面中最后一段的位置/坐标

时间:2016-08-18 07:08:57

标签: python reportlab pdfrw

我需要在最后一页的最后一段之后插入一些文字,我不确定是否可以找到最后一段的坐标。

据我所知,reportlab是处理pdf的最强大的库,但是如果可以通过另一个库实现则可以。

还要问是否可以复制(找到最后一段的名称和大小等字体属性)?

我有什么

from reportlab.pdfgen.canvas import Canvas
from pdfrw import PdfReader
from pdfrw.toreportlab import makerl
from pdfrw.buildxobj import pagexobj

input_file = 'abc.pdf'
output_file = 'def.pdf'

# Get pages
reader = PdfReader(input_file)
pages = [pagexobj(p) for p in reader.pages]
canvas = Canvas(output_file)
lastpage = pages[-1]

for page_num, page in enumerate(pages, start=1):
    canvas.setPageSize((page.BBox[2], page.BBox[3]))
    canvas.doForm(makerl(canvas, page))

    if page == lastpage:
        canvas.saveState()

        # helpful code might come here

        canvas.restoreState()

    canvas.showPage()

canvas.save()

1 个答案:

答案 0 :(得分:1)

解决方案是来自Yusuke Shinyama的Great pdfminer python库。他的项目有5星。

pdfminer目前仅适用于python2.7

使用

解压缩归档后从源代码安装
sudo python setup.py install

安装后命令行工具pdf2txt.py可以像

一样使用
/usr/local/bin/pdf2txt.py -t xml file.pdf > xmlfile.xml

包含所有需要的信息以及更多信息!