fpdf是一个基于php的pdf处理工具,但是有一个很严重的缺点,就是无法识别annots。pymupdf是基本mupdf的,基于python开发,功能比较强大,能识别annots
1,下载pymupdf
https://github.com/rk700/PyMuPDF
2,安装pymupdf
下载完成后,pymupdf/installation/centos,有安装方法
# wget https://mupdf.com/downloads/mupdf-1.13.0-source.tar.gz # tar -zxvf mupdf-1.13.0-source.tar.gz # cd mupdf-1.13.0-source # export CFLAGS="-fPIC -std=gnu99" # make HAVE_X11=no HAVE_GLFW=no HAVE_GLUT=no prefix=/usr/local # sudo make HAVE_X11=no HAVE_GLFW=no HAVE_GLUT=no prefix=/usr/local install # cd .. # rm -rf PyMuPDF # git clone https://github.com/rk700/PyMuPDF.git # cd PyMuPDF # sudo python setup.py build # sudo python setup.py install
3,测试代码
# cat /root/mergePdf.py #! python ''' @author: tank @blog: blog.51yip.com v1.0 Created on Feb 25, 2018 ''' # coding:utf-8 from __future__ import print_function import os, sys,fitz, json data = json.loads(sys.argv[1]) doc = fitz.open(data['pdf']) pageCount = doc.pageCount for index in range(pageCount): str_index = str(index) # if data['images'].has_key("'" + str(index) + "'"): if str_index in data['images'].keys(): page = doc[index] pix = fitz.Pixmap(data['images'][str_index]) page.insertImage(page.rect, pixmap=pix, overlay=True) doc.save(sys.argv[2])
传参数如下:
argv[1]对应参数如下:
{ "pdf": "绝对径/1.pdf", "images": { "0": "绝对径/2.png", "2": "绝对径/3.png" } }
argv[2]对应参数如下:
绝对径/2.pdf
调用方法:
# python mergePdf.py argv[1] argv[2]
上面的这个例子,是将二张图片,合成到pdf的第一页和第三页,并且生成新的pdf
转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/other/1944.html
具体的安装步骤可以再说明白一点嘛......下载了作者给的两个链接的文件,安装步骤实在没明白