资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

php如何利用python实现对pdf文件的操作(读写、合并分割)-创新互联

php如何利用python实现对pdf文件的操作

需求:在PHP里实现了把8.pdf的前4页pdf文件截取出来生成新的pdf文件。

公司主营业务:成都做网站、网站制作、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出天涯免费做网站回馈大家。

详细步骤如下:

1. 安装python第三方库PyPDF2

前提:python必须是3.x版本以上,必要时需要升级pip3,命令如下:pip3 install --upgrade pip
PyPDF 自 2010年 12月开始就不在更新了,PyPDF2 接棒 PyPDF, 在此使用PyPDF2。

安装命令:pip install PyPDF2

2、编写python脚本:mypdf.py

from PyPDF2 import PdfFileReader, PdfFileWriter
import sys
def split_pdf(infn, outfn):
    pdf_output = PdfFileWriter()
    pdf_input = PdfFileReader(open(infn, 'rb'))
    # 获取 pdf 共用多少页
    page_count = pdf_input.getNumPages()
    print(page_count)
    # 将 pdf 第1页到int(sys.argv[2])页的页面,输出到一个新的文件
    for i in range(0, int(sys.argv[2])):
        pdf_output.addPage(pdf_input.getPage(i))
    pdf_output.write(open(outfn, 'wb'))

def merge_pdf(infnList, outfn):
    pdf_output = PdfFileWriter()
    for infn in infnList:
        pdf_input = PdfFileReader(open(infn, 'rb'))
        # 获取 pdf 共用多少页
        page_count = pdf_input.getNumPages()
        print(page_count)
        for i in range(page_count):
            pdf_output.addPage(pdf_input.getPage(i))
    pdf_output.write(open(outfn, 'wb'))

if __name__ == '__main__':   
    infn = '/bbs_pdf/'+ sys.argv[1]
    outfn = '/bbs_pdf/outfn.pdf'
    split_pdf(infn, outfn)

以上脚本在linux里执行/usr/local/bin/python3 /bbs_pdf/mypdf.py 8.pdf 4
实现了把8.pdf的前4页pdf文件截取出来。

3、在PHP里调用python脚本实现。

";
}
?>

通过以上步骤就实现了在PHP里借助python第三方库实现截取pdf文件的操作。本人亲自开发可用,有问题可留言,抽空予以解答。

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站栏目:php如何利用python实现对pdf文件的操作(读写、合并分割)-创新互联
网页链接:http://cdkjz.cn/article/diidis.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:400-028-6601 / 大客户专线   成都:13518219792   座机:028-86922220