精华内容
下载资源
问答
  • 多个PDF合并为一个

    2017-09-08 14:23:26
    多个pdf合并为一个,里面除了有pdf合并的代码,还有java打开浏览器并传递参数的代码。合并pdf在默认包中,主要用了itext中的第三方类来实现。
  • 迅捷pdf合并软件是一款专门针对PDF文件批量合并的工具;操作简单,支持选择文件和文件夹;支持文件拖拽,可以通过上移或者下移按钮自由调整pdf文档进行排序,批量合并执行速度快
  • python合并多个pdf文件

    千次阅读 2019-03-21 19:14:17
    python合并多个pdf文件 假设您有个无聊的工作,将几十个PDF文档合并成一个PDF文件。 他们每个都有封面页作为第一页,但你不希望在最终结果中重复覆盖表。 即使有有很多免费的程序来组合PDF,其中许多只是合并整个...

    python合并多个pdf文件

    假设您有个无聊的工作,将几十个PDF文档合并成一个PDF文件。 他们每个都有封面页作为第一页,但你不希望在最终结果中重复覆盖表。 即使有有很多免费的程序来组合PDF,其中许多只是合并整个文件在一起。 让我们编写一个Python程序来自定义哪些页面你想要的是组合PDF。从高层次来看,这是程序将要做的事情:

    • 查找当前工作目录中的所有PDF文件。
    • 对文件名进行排序,以便按顺序添加PDF。
    • 将每个PDF的每个页面(不包括第一页)写入输出文件。
      在实现方面,您的代码需要执行以下操作:
    • 调用 os.listdir() 来查找工作目录中的所有文件,删除所有非PDF文件。
    • 调用Python的sort()列表方法来按字母顺序排列文件名。
    • 为输出PDF创建PdfFileWriter对象。
    • 遍历每个PDF文件,为其创建PdfFileReader对象。
    • 在每个PDF文件中循环遍历每个页面(第一页除外)。
    • 将页面添加到输出PDF。
    • 将输出PDF写入名为allminutes.pdf的文件。
      对于此项目,请打开一个新的文件编辑器窗口并将其另存为 “combinePdfs.py

    Step 1:找到所有的PDF文件

    首先,您的程序需要获取所有扩展名为.pdf的文件的列表
    当前的工作目录并对它们进行排序。 让你的代码看起来像
    以下:

    在这里插入代码片
    

    在shebang线和关于什么的描述性评论之后程序没有,这段代码导入了os和PyPDF2模块。该
    os.listdir(’.’) 调用将返回当前工作中的每个文件的列表目录。 代码循环遍历此列表,并仅添加带有.pdf扩展的那些文件pdfFiles。之后,此列表按字母顺序排序,使用key = str.lower关键字参数对sort() 进行排序。创建PdfFileWriter对象以保存组合的PDF页面。最后,一些评论概述了该计划的其余部分。

    #! /usr/bin/python3
    # combinePdfs.py - Combines all the PDFs in the current working directory into
    # a single PDF.
    
    import PyPDF2, os
    
    # Get all the PDF filenames.
    pdfFiles = []
    for filename in os.listdir('.'):
        if filename.endswith('.pdf'):
            pdfFiles.append(filename)
    pdfFiles.sort(key = str.lower)
    
    pdfWriter = PyPDF2.PdfFileWriter()
    
    # TODO: Loop through all the PDF files.
    
    # TODO: Loop through all the pages (except the first) and add them.
    
    # TODO: Save the resulting PDF to a file.
    
    

    第二步:打开每一个 PDF 文件

    现在程序必须读取pdfFiles中的每个PDF文件。 添加以下内容:

    #! /usr/bin/python3
    # combinePdfs.py - Combines all the PDFs in the current working directory into
    # a single PDF.
    
    import PyPDF2, os
    
    # Get all the PDF filenames.
    pdfFiles = []
    for filename in os.listdir('.'):
        if filename.endswith('.pdf'):
            pdfFiles.append(filename)
    pdfFiles.sort(key = str.lower)
    
    pdfWriter = PyPDF2.PdfFileWriter()
    
    # Loop through all the PDF files.
    for filename in pdfFiles:
        pdfFileObj = open(filename, 'rb')
        pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
        # TODO: Loop through all the pages (except the first) and add them.
    
    # TODO: Save the resulting PDF to a file.
    
    

    对于每个PDF,循环通过以读二进制模式(以’rb’作为第二个参数)调用open() 。 open()调用返回一个File对象,它被传递给PyPDF2.PdfFileReader() 。

    第三步: 添加每一页

    对于每个PDF,您都希望遍历除第一个页面之外的每个页面。 加上这个代码到你的程序:

    #! /usr/bin/python3
    # combinePdfs.py - Combines all the PDFs in the current working directory into
    # a single PDF.
    
    import PyPDF2, os
    
    # Get all the PDF filenames.
    pdfFiles = []
    for filename in os.listdir('.'):
        if filename.endswith('.pdf'):
            pdfFiles.append(filename)
    pdfFiles.sort(key = str.lower)
    
    pdfWriter = PyPDF2.PdfFileWriter()
    
    # Loop through all the PDF files.
    for filename in pdfFiles:
        pdfFileObj = open(filename, 'rb')
        pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
        # Loop through all the pages (except the first) and add them.
        for pageNum in range(1, pdfReader.numPages):
            pageObj = pdfReader.getPage(pageNum)
            pdfWriter.addPage(pageObj)
    
    
    
    # TODO: Save the resulting PDF to a file.
    

    for循环中的代码将每个Page对象分别复制到PdfFileWriter对象。 请记住,您想跳过第一页。 以来
    PyPDF2认为0是第一页,你的循环应该从1 开始,然后转到但不包括pdfReader.numPages中的整数。

    第四步: 保存结果

    在这些嵌套的for循环完成循环之后,pdfWriter变量将会循环包含PdfFileWriter对象,其中包含所有PDF的页面。最后一步是将此内容写入硬盘驱动器上的文件。 将此代码添加到你程序中:

    #!/usr/bin/python3
    # combinePdfs.py - Combines all the PDFs in the current working directory into
    # a single PDF.
    
    import PyPDF2, os
    
    # Get all the PDF filenames.
    pdfFiles = []
    for filename in os.listdir('/home/hux/books/python'):
        if filename.endswith('.pdf'):
            pdfFiles.append('/home/hux/books/python/'+filename)
    pdfFiles.sort(key = str.lower)
    
    pdfWriter = PyPDF2.PdfFileWriter()
    
    # Loop through all the PDF files.
    for filename in pdfFiles:
        pdfFileObj = open(filename, 'rb')
        pdfReader = PyPDF2.PdfFileReader(pdfFileObj, strict=False)
        for pageNum in range(1, pdfReader.numPages):
            pageObj = pdfReader.getPage(pageNum)
            pdfWriter.addPage(pageObj)
    
    pdfOutput = open('allminutes.pdf', 'wb')
    pdfWriter.write(pdfOutput)
    pdfOutput.close()
    
    
    展开全文
  • PDF合并工具

    2018-07-26 15:01:01
    免安装,支持PDF之间合并,是办公的常用软件;作为一名技术人员,经常需要这样的软件,很好用,挺不错的
  • PDFMerge - 将多个PDF文件合并成单个PDF文档
  • PDF合并

    2018-09-30 10:01:00
    Java代码实现一个或多个合并生成打印一个完整的PDF,可以参考下面的代码: public void createPdf(HttpServletResponse response) { PdfReader reader1 = null; PdfReader reader2 = null; response....

    Java代码实现一个或多个合并生成打印一个完整的PDF,可以参考下面的代码:

    public void createPdf(HttpServletResponse response) {
      PdfReader reader1 = null;
      PdfReader reader2 = null;
      response.setContentType("application/pdf;");
      try {
        String flowId = "43776BCBB2AC40688A8B7A17339426E6";
        FlowBean flow = flowService.getCropDocHeader(flowId);
        CorporateTemplate pdf = new CorporateTemplate();
        String fileName = flow.getApplyId() + ".pdf";
        response.setHeader("Content-disposition", "filename=" + new String(fileName.getBytes("GBK"), "ISO8859-1"));
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        pdf.print(out, flow, PrintType.ALL);
        reader1 = new PdfReader(out.toByteArray());
        reader2=new PdfReader(out.toByteArray());
        Document document = new Document();
        PdfWriter writer = PdfWriter.getInstance(document, response.getOutputStream());
        document.open();
        PdfContentByte cb = writer.getDirectContent();
        int totalPages = 0;
        totalPages += reader1.getNumberOfPages();
        totalPages += reader2.getNumberOfPages();
        List<PdfReader> readers = Lists.newArrayList();
        readers.add(reader1);
        readers.add(reader2);
        int pageOfCurrentReaderPDF = 0;
        Iterator<PdfReader> iteratorPDFReader = readers.iterator();
        while (iteratorPDFReader.hasNext()) {
        PdfReader pdfReader = iteratorPDFReader.next();
        while (pageOfCurrentReaderPDF < pdfReader.getNumberOfPages()) {
        document.newPage();
        pageOfCurrentReaderPDF++;
        PdfImportedPage page = writer.getImportedPage(pdfReader, pageOfCurrentReaderPDF);
        cb.addTemplate(page, 0, 0);
        }
        pageOfCurrentReaderPDF = 0;
      }
        document.close();
        writer.close();
      } catch (IOException | DocumentException e) {
        e.printStackTrace();
      }
    }

    此方法支持批量!试过的请点个赞,不懂可以留言。

    转载于:https://www.cnblogs.com/bin93/p/9728165.html

    展开全文
  • pdf合并工具

    2019-04-03 08:41:03
    pdf合并工具,配合pdfcreate,pdf合并神奇吧,软件小巧实用
  • PDF分割合并工具

    2018-07-14 08:42:54
    PDF分割合并工具,可将PDF文件分割成单页PDF文件,也可将多个PDF文件合并成一个文件,完全无限制。
  • PDFBinderg合并pdf的工具

    2017-08-09 16:58:05
    PDFBinderg合并pdf的工具
  • 在之前项目有个功能中需要做多个PDF合并,而且可能pdf数量会很多,所以在实现了三种方式后做了一下简单的时间对比 第一种方法 用的spire.doc.free依赖 <dependency> <groupId>e-iceblue</groupId&...

    在之前项目有个功能中需要做多个PDF合并,而且可能pdf数量会很多,所以在实现了三种方式后做了一下简单的时间对比

    第一种方法

    用的spire.doc.free依赖

            <dependency>
                <groupId>e-iceblue</groupId>
                <artifactId>spire.doc.free</artifactId>
                <version>2.0.0</version>
            </dependency>
    

    代码:

                    File file = new File("m1.pdf");
                    //合并PDF文档法一
                    PdfDocumentBase doc = PdfDocument.mergeFiles(inputStreams.toArray(new InputStream[inputStreams.size()]));
                    //保存文档
                    doc.save(file.getName(), FileFormat.PDF);
                    doc.close();
                    // file转Bytes,后续要用到bytes
                    bytes = DownLoadUtils.File2byte(file);
    

    mergeFiles的参数可以是流数组InputStream[],也可以是文件名数组String[]等

    第二种方法

    使用pdfbox依赖

            <dependency>
                <groupId>org.apache.pdfbox</groupId>
                <artifactId>pdfbox</artifactId>
                <version>2.0.12</version>
            </dependency>
    

    代码:

                    // 合并PDF文档法二
                    File file1 = new File("m2.pdf");
                    PDFMergerUtility merger = new PDFMergerUtility();
                    inputStreams.forEach(merger::addSource);
                    merger.setDestinationFileName(file1.getName());
                    try {
                        // 合并PDF
                        merger.mergeDocuments(null);
                    } catch (IOException e) {
                        logger.error("Pdf Merge error: ", e);
                    }
                    // file转Bytes,后续要用到
                    bytes = DownLoadUtils.File2byte(file1);
    

    除了merger.setDestinationFileName方法,也可以用它的其他类型的方式

    第三种方法

    用的itext依赖

            <dependency>
                <groupId>com.lowagie</groupId>
                <artifactId>itext</artifactId>
                <version>2.0.8</version>
            </dependency>
    

    代码:

    /**
         * pdf合并
         * @param inputStreams 要合并的pdf的InputStream数组
         * @return 合并后的pdf的二进制内容
         */
    private static byte[] mergePdfFiles(List<InputStream> inputStreams) {
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            Document document = new Document();// 创建一个新的PDF
            byte[] pdfs = new byte[0];
            try {
                PdfCopy copy = new PdfCopy(document, bos);
                document.open();
                for (InputStream is : inputStreams) {// 取出单个PDF的数据
                    PdfReader reader = new PdfReader(DownLoadUtils.InputStream2byte(is));
                    int pageTotal= reader.getNumberOfPages();
    //                logger.info("pdf的页码数是 ==> {}",pageTotal);
                    for (int pageNo=1;pageNo<=pageTotal;pageNo++){
                        document.newPage();
                        PdfImportedPage page = copy.getImportedPage(reader, pageNo);
                        copy.addPage(page);
                    }
                    reader.close();
                }
                document.close();
                pdfs = bos.toByteArray();
                bos.close();
                copy.close();
            } catch (DocumentException | IOException e) {
                throw new CommonException("合并PDF出错:" + e);
            }
            return pdfs;
        }
    

    方法参数和返回类型可以根据自己需要去转换

    PDF合并个数:4

    测试耗时对比(控制变量法):

    轮次方法一方法二方法三
    12471632296
    211992906589
    31127371280
    413471592657
    51482865323
    合并后pdf大小88K93K91K

    简单的测试也可以比较明显感觉方法三的效率更快些,
    所以我最后在项目中使用了依赖itext去合并pdf

    展开全文
  • 如何将两个PDF合并成一个? 我认为这对于学生和上班族来说都是一个普遍的问题,因为我们经常需要上网查找一些参考资料来帮助我们的学习或工作。 但是,发现从网上下载的大多数资料都是PDF格式。 如果我们一一打开...
  • PDF convert(多个pdf合并的脚本)

    千次阅读 2018-11-27 21:42:59
    PDF convert(多个pdf合并的脚本): 运新环境:已安装python及PyPDF2包 Tips:pip install PyPDF2 安装PyPDF2包的命令 新创建一个文件夹,在任何位置均可。 在创建的文件夹内创建py脚本,eg:PDFconvert.py ...
  • 搜索了好多篇例子,算是强拼硬凑成现在的样子,还算比较满意吧。 此包中包含可测试成功代码,关联模板、字体文件、jar等 希望能帮助到大家。...http://blog.csdn.net/layman1024/article/details/74628658
  • 多个PDF合并到一个PDF

    千次阅读 2017-09-08 14:29:34
    依赖的jar包如下: itext-2.1.7.jar ...itextpdf-5.1.3.jar 示例代码如下: /******************************************************************************* * @project: Capital-AVIDM4 * @p
  • PDF合并软件

    2011-11-16 16:23:53
    合并PDF软件,挺好用,就是一点不好是英文的
  • 老婆给女儿整理打印学习资料,希望能从很多个pdf中抽取一些页码...pdf合并工具,也算是学以致用吧。 界面如下: 最多可以选取10个pdf文件,输入要合并的页码范围,最后会把选择的页码合并为一个文件。 或者...
  • 如何合并多个PDF文件? 除word,PPT,Excel等文件格式外,PDF文件也越来越成为我们日常工作中的主流常用文件格式。...实际上,在学习了PDF合并方法之后,操作起来也是挺简单的,大家具体都是怎样完成呢,今天小编...
  • 免费合并多个PDF

    2021-08-19 16:21:18
    https://www.ilovepdf.com/zh-cn/merge_pdf
  • 需求:将若干个 word文 档和 pdf 文档按指定顺序合并为一个 pdf 文档,并将该过程自动化。 1. 将word转换为pdf。 使用工具 docto[github],该工具可免费下载与使用,执行如下命令将*.docx文件转换为同名的*.pdf...
  • 教你一个免费合并PDF最简单的方法

    千次阅读 2021-04-22 15:23:39
    那么你知道怎么将PDF合并吗?教你一个最简单实用的方法。 一般工具转换都有文件大小限制,如果要合并的文件较大又大就无法使用,所以我们可以使用像PDF编辑器这种本地工具,没有限制操作方便。 首先打开极速PDF编辑...
  • PDF编辑器破解版-完美

    2018-10-30 11:44:22
    文件里提供注册码完全免费,实现在PDF文件上自由编辑。
  • 正反面两个扫描pdf合并程序,源代码在博客:https://blog.csdn.net/qq_36553572/article/details/115457992
  • 免费将多个PDF合并成含有目录

    千次阅读 2020-04-14 09:45:52
    2、如果你的pdf没有目录,比如通过csdn将文章下载后,每篇文章是一个pdf,将多个文件合并,将每个pdf的文件名做为合并后的文件目录,则首先使用“PDF批量目录生成器(ePDF)”工具、每5个文件合并成一个PDF(注:免费...
  • 其主要功能实现合并两个pdf: 参考文献链接:https://blog.csdn.net/TOP__ONE/article/details/65637858 java动态生成pdf含表格table和 合并两个pdf文件功能。 如果对您有帮助 ,请多多支持.多少都是您的心意与...
  • 本篇文章旨在实现将图片转换为PDF,并将多个PDF合并成一个PDF。 import os import glob import fitz import PyPDF2 # 防止字符串乱码 os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8' def convert_pic_...
  • 1.下载okfone PDF转换大师PDF转换大师下载地址 打开软件之后点击【PDF合并】 将所有PDF文件添加进去,将文件按顺序排序之后选择输出目录,点击【开始】就可以合并PDF文件了。 合并完成之后,点击列表内任意...
  • 多html整理合并pdf

    2020-05-20 22:42:07
    版权声明:本文为博主原创文章,转载 请注明...因此,有了分类整理并制作PDF文档的想法。 - 环境配置安装   运行环境:Python3.6、Spyder   依赖模块:pdfkit、PyPDF2等 *注:pdfkit的安装可以参考[pyth
  • T37 合并EndNote的PDF

    2021-03-16 16:37:51
    合并EndNote库文件里面的PDF

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,115
精华内容 3,246
关键字:

pdf合并csdn

友情链接: umat.zip