精华内容
下载资源
问答
  • 多份pdf文档合并
    千次阅读
    2022-04-13 17:15:06

    1、引入POM

        <dependencies>
            <dependency>
                <groupId>com.itextpdf</groupId>
                <artifactId>itextpdf</artifactId>
                <version>5.5.13.3</version>
            </dependency>
        </dependencies>
    

    2、编写工具类

    public class PdfUtils {
    /**
         * 创建pdf文档
         *
         * @param response
         * @param fileName
         * @return
         */
        public static Document createDocument(HttpServletResponse response, String fileName) {
            try {
                response.reset();
                response.setHeader("Content-Type", "application/pdf-stream");
                response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
                response.setHeader("Pragma", "no-cache");
                response.setHeader("Cache-Control", "no-cache");
            } catch (Exception e) {
                e.printStackTrace();
            }
    
            // 设置大小
            return new Document(PageSize.A4, 50, 50, 80, 50);
        }
    
        /**
         * 合并pdf
         *
         * @param response
         * @param document
         * @param byteList
         */
        public static void mergePdf(HttpServletResponse response, Document document, List<byte[]> byteList) {
            try {
                OutputStream os = response.getOutputStream();
                // 以任意一个页面创建pdf模板
                document = new Document(new PdfReader(byteList.get(0)).getPageSize(1));
    
                PdfCopy copy = new PdfCopy(document, os);
    
                // 打开文档
                document.open();
                // 遍历pdf文件
                for (byte[] bytes : byteList) {
                    // 读取pdf
                    PdfReader reader = new PdfReader(bytes);
    
                    // 获取页数
                    int numberOfPages = reader.getNumberOfPages();
                    // 从第一页开始
                    for (int i = 1; i <= numberOfPages; i++) {
                        // 新建文档页
                        document.newPage();
                        // 复制操作
                        PdfImportedPage page = copy.getImportedPage(reader, i);
                        copy.addPage(page);
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
                throw new RuntimeException("PDF合并失败!");
            } finally {
                if (document != null) {
                    document.close();
                }
            }
        }
    }
    

    3、代码实现

    支持上传MultipartFile文件或者通过本地文件的Path的进行合并PDF

    @RestController
    @RequestMapping("/test")
    public class PdfController {
    /**
         * 上传文件进行合并
         *
         * @param files
         * @param response
         */
        @PostMapping("pdfStream")
        public void pdf(@RequestParam("files") MultipartFile[] files, HttpServletResponse response) {
            try {
                // 判断文件是否合规、以及转化为输入流
                List<byte[]> byteList = new ArrayList<>();
                for (MultipartFile file : files) {
                    // 限制格式只能为pdf
                    if (file == null) {
                        throw new RuntimeException("文件不能为空!");
                    }
                    String originalFilename = file.getOriginalFilename();
                    String substring = originalFilename.substring(originalFilename.lastIndexOf(".") + 1);
                    if (!substring.equals("pdf")) {
                        throw new RuntimeException("只能上传pdf格式文件!");
                    }
    
                    // 获取输入流
                    // 获取输入流
                    InputStream inputStream = file.getInputStream();
                    byte[] bytes = inputStreamToByte(inputStream);
                    byteList.add(bytes);
                }
    
                // 1.设置输出流名称
                String fileName = "合并文件.pdf";
                Document document = PdfUtils.createDocument(response, fileName);
    
                // 2.开启合并
                PdfUtils.mergePdf(response, document, byteList);
            } catch (Exception e) {
                e.printStackTrace();
                throw new RuntimeException(e.getMessage());
            }
        }
    
        /**
         * 本地文件转换合并
         *
         * @param response
         */
        @GetMapping("pdfPath")
        public void pdfPath(HttpServletResponse response) {
            try {
                // 加载本地文件
                List<String> paths = new ArrayList<>();
                paths.add("C:\\Users\\LiGezZ\\Desktop\\1.pdf");
                paths.add("C:\\Users\\LiGezZ\\Desktop\\2.pdf");
    
                // 判断文件是否合规、以及转化为输入流
                List<byte[]> byteList = new ArrayList<>();
                for (String path : paths) {
                    File file = new File(path);
                    // 限制格式只能为pdf
                    if (!file.exists()) {
                        throw new RuntimeException("文件不存在!");
                    }
                    if (file.length() <= 0) {
                        throw new RuntimeException("文件不能为空!");
                    }
    
                    String name = file.getName();
                    String substring = name.substring(name.lastIndexOf(".") + 1);
                    if (!substring.equals("pdf")) {
                        throw new RuntimeException("只能上传pdf格式文件!");
                    }
    
                    // 获取输入流
                    FileInputStream inputStream = new FileInputStream(file);
                    byte[] bytes = inputStreamToByte(inputStream);
                    byteList.add(bytes);
                }
    
                // 1.设置输出流名称
                String fileName = "合并文件.pdf";
                Document document = PdfUtils.createDocument(response, fileName);
    
                // 2.开启合并
                PdfUtils.mergePdf(response, document, byteList);
            } catch (Exception e) {
                e.printStackTrace();
                throw new RuntimeException(e.getMessage());
            }
        }
    
        private byte[] inputStreamToByte(InputStream inputStream) {
            try (ByteArrayOutputStream os = new ByteArrayOutputStream()) {
                byte[] bytes = new byte[1024];
                int len = 0;
                while ((len = inputStream.read(bytes)) != -1) {
                    os.write(bytes, 0, len);
                }
                os.flush();
                return os.toByteArray();
            } catch (Exception e) {
                throw new RuntimeException("InputStream转换失败!");
            }
        }
    }
    
    更多相关内容
  • N个文件夹,每个文件夹内有不等数量的pdf文件,批量让每个文件夹下的文档合并成一个pdf,也就是最后生成N个pdf 举个例子:共1000个pdf,分成了500个文件夹,每个文件夹下有2个pdf,批量自动合并成500个pdf
  • 此函数使用 apache pdfbox(包含在 Matlab 中)将pdf 文件合并为一个文档。 用法: inputFiles = {'foo.pdf', 'bar.pdf}; outputFileName = 'foobar.pdf'; mergePdfs(inputFiles, outputFileName);
  • PDF文档合并工具软件

    2018-07-03 13:38:52
    PDF文档合并工具软件,有几个文档想要合并到一起来编辑,就用PDF文档合并工具软件
  • 这篇文章主要介绍了Python如何把PDF文件合并,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码如下 from PyPDF2 import PdfFileMerger import os files...
  • 一款可以将PDF文件文档合并软件 就是把PDF文件合成一.zip
  • pdf文档合并软件

    2022-03-01 13:25:58
    pdf文档合并软件,提升工作效率必备软件。
  • PDFMerge - 将个PDF文件合并成单个PDF文档
  • 您可以通过使用“添加源文档...”按钮或从文件浏览器中拖入文件来添加源PDF文档。 可以通过按工具栏中的相应按钮来上移,下移或删除文档。 当您的文档列表看起来不错时,请按“保存输出...”按钮。 如果使用预先...
  • PDF Combine是一款PDF文档合并工具,它可以将2个或者个PDF文件合并为一个,你可以对页眉和页脚进行调整。支持文本格式、EXCEL/CSV/PDF/HTML格式。安装步骤及使用说明:软件安装后界面是英文的,若感觉不便可以...
  • 主要介绍了如何实用Java实现合并、拆分PDF文档,处理PDF文档时,这样的好处是对文档的存储、管理很方便。下面将通过Java程序代码介绍具体的PDF合并、拆分的方法,需要的朋友可以参考下
  • 合并pdf文档

    2018-04-23 13:52:58
    小软件,快速合并已有的pdf文档。 删除Adobe LiveCycle Designer 删除Preflight 删除说明/帮助 删除一些字体 注:此绿色版没有带VC库,如果出现“由于配置文件不正确,应用程序未能启动,重新安装应用程序可能...
  • PDF文档合并小程序

    2019-03-18 02:29:46
    PDFMerge.zip,PDFMerge,run.bat,lib,pdfbox-1.1.0.jar,commons-logging-1.1.1.jar,PDFMerge.jar
  • PDF多目录合并程序.zip

    2022-05-23 12:06:43
    1-支持PDF格式文件批量以文件夹合并合并后的PDF将以文件夹名称命名。 2-若合并无效请检查文件是否缺失或路径是否正确 3-此程序使用过一次后,必须重新打开才能再次使用 注:此程序可解压直接使用,不用注册与激活...
  • 概要:「我的ABC软件工具箱」提供了文档合并的功能,其中就包括了 PDF 拆分成单个文件。我们可以根据需要将文件夹中的PDF 文档按照一定的顺序进行合并,这样可以把PDF 文档整合形成一个完整的文档。非常的...

    概要:「我的ABC软件工具箱」提供了文档合并的功能,其中就包括了 PDF 拆分成单个文件。我们可以根据需要将文件夹中的多个 PDF 文档按照一定的顺序进行合并,这样可以把多个 PDF 文档整合形成一个完整的文档。非常的方便与实用。

    前面我们介绍了 Word 合并成单个文件、Excel 合并成单个文件和 PPT 合并成单个文件的小妙招, 今天给大家介绍一下使用办公软件「我的ABC软件工具箱」将 PDF 合并成单个文件的小妙招。它可以指定文件夹,将文件夹内的多个 PDF 文档按照一定的顺序进行合并,从而形成一个完整的 PDF 文档。我们一起来看看这个小妙招吧!

    打开「我的ABC软件工具箱」,左侧面板选择【合并拆分】,然后右侧就能看到【 PDF 合并成单个文件】的功能啦!

    点击菜单按钮,会进入到选择文件夹的页面。

    在当前页面就可以点击右上角的“添加文件夹”按钮来添加要合并的文件夹了,还可以直接将文件夹拖拽进来!

    添加好后,界面就能显示我们已经添加的待合并的文件夹了。列表中的每一条记录是一个文件夹,此操作会将该文件夹中的 PDF 文件合并成一个文件!当添加完文件夹后,就可以点击“下一步”按钮了,进入到设置参数信息的页面。

    因为文件夹中往往会包含多个 PDF 文档,所以我们需要指定文档是按照降序还是升序的方式进行合并。设置好并确认无误后点击下一步进入到设置输出目录的页面。

    在这个页面,我们可以设置文件存储的位置。设置好并确认无误后,继续点击下一步,「我的ABC软件工具箱」就进行 PDF 合并成单个文件的操作了。

    一会儿,PDF 合并的操作就处理完成了。这个界面上能看到处理文件的列表,还能看到合并了多少个文档!

    到这里,PDF 合并成单个文件的小妙招就介绍完了,是不是很简单很实用呢?

    展开全文
  • 把该软件放入要合并PDF目录下点击即可,合并后的PDF在merge_end文件夹下
  • pdf文件,合并成一个pdf文件,绿色免安装,简单易用
  • POI-TL合并多个Word文档

    2021-06-27 23:13:49
    POI-TL合并多个Word文档
  • 往下看↓↓↓↓PDF文档合并方法一step1:使用编辑器打开PDF文档,点击编辑器左边的“导航面板-页面”,点击鼠标右键,选择“插入页面-从文件”:step2:选择需要合并的文档,点击确定:step3:填...

    2d0d77fd0dd12612b2b120edc4813b38.gif

    在PDF应用越来越广泛的办公环境下,掌握PDF文档的操作技巧是非常有必要的。

    我们重要的合同文档一般都是PDF格式的,而且合同一般含有非常多的附件,如果把多份附件合并成一份,该如何操作呢?

    往下看

    ↓↓↓↓

    PDF文档合并

    方法一

    step1:使用编辑器打开PDF文档,点击编辑器左边的“导航面板-页面”,点击鼠标右键,选择“插入页面-从文件”:

    040d576d7505ef349dd2a59f1d93f459.png

    step2:选择需要合并的文档,点击确定:

    6d1e54b8a651e40424f76d7b35a76fb2.png

    step3:填写需要插入的文件页面范围与插入文件的位置,点击确定:

    0eea1a3332db6029c52e7df422bd041e.png

    效果图:

    743012f8f453b69d779c5b0335d045cc.png

    方法二

    step1:点击导航栏的“转换”,选择“合并文件”:

    0654113f3d0ad8845811662005a6f5e4.png

    step2:添加需要合并的文件,调整合并文档的顺序,点击确定即可:

    243031f19e03bd1a82c26d1675112a47.png

    以上办法学会了吗?

    需要更多教程给小编留言喔~

    42a6afee53267bfea6db0d3ddc895e17.png 07aa9b2d80823816e26b4aebcacf930c.png

    顺手点个【在看】

    今年升职加奖金 ^_^

    展开全文
  • 纯java完成个pdf合并及其目录生成(支持自定义目录),页码生成,目前只支持单列表目录,若有通用的pdf文档操作需求可反馈....源码内附彩蛋,有兴趣可自行发掘
  • CoolUtils PDF Combine能够将2个或者个PDF文件合并为一个单独的PDF文档,在合并之前,你可以根据需要设置PDF文档的页眉和页脚,设置书签样式,还能设置文档属性,如文档的作者,创建者及关键字,若要保护文档,...
  • 亿彩Pdf文档专用合并器为将主目录下的每一个子文件夹中的文件名样子类似的Pdf文件,按顺序拼合成一个大文件之后,将被拼合的源文件删除!适合专业机构批量整理扫描件Pdf文件之用!
  • Python 3.7.3参考文档PDF英文版,该文档包含了Python官方文档的各各方面,包括Python语言参考、HOWTOs, 标准库、Python/C扩展, 模块安装等等,是python开发必备参考文档
  • PDF合并软件.zip

    2021-09-25 23:35:55
    PDF文档合并软件,可以将个PDF文件合并成一个总的PDF文件
  • 本文实例讲述了Python结合ImageMagick实现张图片合并为一个pdf文件的方法。分享给大家供大家参考,具体如下: 前段时间买了不少书,现在手头的书籍积累的越来越,北京这边租住的小屋子空间越来越满了。自从习惯...
  • 如果使用例如PDFSharp [^],则可以遵循以下示例:合并文档[^]
  • 迅捷pdf合并软件是一款专门针对PDF文件批量合并的工具;操作简单,支持选择文件和文件夹;支持文件拖拽,可以通过上移或者下移按钮自由调整pdf文档进行排序,批量合并执行速度快
  • PDF文档合并

    2012-11-10 12:00:47
    PDF文档合并器 将PDF文档合并成一个PDF文档。比如说你想做一个简历,封面的页边距和简历的页边距不一样,想整合到一块,就可以用到这个软件。。
  •  软件特点: 1、将PDF文档合并为一个新的PDF中,即将2个或2个以上的PDF合并为1个文档。 2、将PDF文件中的几个重要部分合并为一个新的部分。 3、不用担心PDF合并的准确性,你考虑的问题,ChromePDF都提前为你...
  • 个PDF快速合并,无需单页手动添加,而且可以排序。尤其适合扫描后的单页PDF文档合并以及个图片转成的PDF文件合并

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 29,829
精华内容 11,931
热门标签
关键字:

多份pdf文档合并