当前位置: 首页 > 知识库问答 >
问题:

PDFBox插入一个PDF文件作为一个页面到另一个PDF文件

山越
2023-03-14

在java Web应用程序中使用PDFBox。我有一个代表多页绘图或蓝图的PDF文件。还有其他PDF文件表示对父文件的修改。我想将这些页面插入到第1页和第2页之间的父PDF文件中。

我找到了关于合并和添加页面的文章,但不完全是我需要的。

一些指导会很有帮助。

到目前为止我的代码

try{

                InputStream in = null;
                OutputStream out = null;
                PDDocument document = null;

                String parentfile = "";
                for(DLDrawingFile dldf: dldwg.getDldrawingfileList()){
                    System.out.println("DocsVisionDrawingList: AcrobatRotateAndMerge_3: " + dldf.getDrawingnumber() + " " + dldf.getTypeID());

                    if(parentfile.equals("") && dldf.getTypeID().equals("DRAWING")){

                        NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(attachmentRoot_DOMAIN,attachmentRoot_ID,attachmentRoot_PW);

                        SmbFile file = new SmbFile("smb:" + dldf.getDldrawingfile(), auth);
                        file.connect();

                        File file2 = new File(dldf.getDldrawingfile()); 

                        in = new BufferedInputStream(new SmbFileInputStream(file));

                        document = PDDocument.load(in);

                        parentfile = dldf.getDldrawingfile();
                        System.out.println("DocsVisionDrawingList: AcrobatRotateAndMerge_3: Parent: " + parentfile);
                    }
                    else{
                        System.out.println("DocsVisionDrawingList: AcrobatRotateAndMerge_3: Child: " + dldf.getDldrawingfile());
                        //this is where the child files would be iterated over.

                    }
                }

            }
            catch(Exception e){

            }

共有1个答案

樊令秋
2023-03-14

警告:这是一个很好的初学者解决方案。然而,在下面的评论中,MLK提到这是不完整的。这种方法的另一个问题是,它只在代码的最后一位工作,因为它关闭了costream,这将阻止您添加任何未来的文本

我知道这是一个老帖子,但如果有人遇到同样的问题,这里有一个anwser为我工作。Tilman Hausherr的方法对我有效

PDDocument document = new PDDocument();
for (int numberOfPages = 0; numberOfPages < 10; numberOfPages++) {
            //Creating a blank page
            PDPage blankPage = new PDPage();
            //Adding the blank page to the document
            document.addPage(blankPage);
        }
PDPageTree mergePD = document.getPages();
PDDocument doc1 = PDDocument.load(file1);
PDDocument doc2 = PDDocument.load(file2);



//the left argument is the page number of the pdf that is being inserted
   //the right argument is the page number of the original pdf that places the inserted pdf

mergePD.insertAfter(doc1.getPage(0),document.getPage(0)); //creates a new page after page 0
mergePD.insertAfter(doc2.getPage(0),document.getPage(1)); //creates a new page after page 1
 类似资料:
  • 问题内容: 如何将多个PDF文件合并/转换为一个大PDF文件? 我尝试了以下操作,但是目标文件的内容不符合预期: 我需要一个非常简单/基本的命令行(CLI)解决方案。最好的办法是,如果我可以将合并/转换的输出直接传送到管道中(就像我之前在这里提出的问题中最初尝试的那样:Linux管道(convert->pdf2ps-> lp)。 问题答案: 抱歉,我设法使用Google自己找到了答案,还有些运气:

  • 我正在尝试将多个pdf页面合并为一个pdf页面。有很多iText的例子展示了如何将pdf页面合并到一个文件中,但是我需要所有的页面都放在一个页面中(一路上缩小它们的宽度和高度) 编辑:尝试从这里这个代码,但它只是合并成一个文件的pdf页面,我需要他们收缩成一个单一的页面

  • 我需要将N个PDF文件合并成一个。我先创建一个空白文件 稍后,我将遍历html字符串数组 我不太明白PdfWriter和PDFCopy之间的区别。

  • 问题内容: 我有一个带有汉字文本的文件,我想将这些文本复制到另一个文件中。但是文件输出混乱了中文字符。注意,在我的代码中,我已经在使用“ UTF8”作为编码了: 问题答案: 在这种情况下,请勿使用FileReader,因为它不允许您指定输入编码。在FileInputStream上构造一个InputStreamReader。 像这样:

  • 问题内容: 在python中(对于在GUI中创建的一个图形),我可以使用以下方法将图形保存在.jpg和.pdf下: 要么 我想使用一个文件将多个图形保存为.pdf或.jpg(就像在数学实验室中所做的一样)。有人可以帮忙吗? 问题答案: 使用为您解决问题。将您的对象传递给方法。 例如,如果您打开了一大堆对象并将其保存到多页PDF中,则可以执行以下操作:

  • 这是一个代码示例, 我犯的错误, [pdf.py:1629]Traceback(最近的最后一次调用):文件test.py,第22行,在pdfWriter.write(newFile)File"/home/ubuntu/Ritesh/work/lib/python3.5/site-包/PyPDF2/pdf.py",第482行,在写自己。_sweepIndirectReferences(extrana