手机版
你好,游客 登录 注册
背景:
阅读新闻

PHP如何利用Python实现对PDF文件的操作

[日期:2018-10-29] 来源:Linux社区  作者:51xit [字体: ]

需求:在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
$output = shell_exec('/usr/local/bin/python3 /bbs_pdf/mypdf.py 8.pdf 4');
echo 1;
$array = explode(',', $output);
foreach ($array as $value) {
#echo "\n";
echo $value;
echo "<br>";
}
?>

通过以上步骤就实现了在PHP里借助python第三方库实现截取pdf文件的操作。

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址https://www.linuxidc.com/Linux/2018-10/155072.htm

linux
相关资讯       PHP操作PDF文件 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款