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
具体的安装步骤可以再说明白一点嘛......下载了作者给的两个链接的文件,安装步骤实在没明白