gpt4 book ai didi

java - PDFBox 将 PDF 文件作为页面插入到另一个 PDF 文件中

转载 作者:行者123 更新时间:2023-12-05 07:38:40 36 4
gpt4 key购买 nike

在 Java 网络应用程序中使用 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){

}

最佳答案

警告一个很好的初学者解决方案。然而,在下面的评论中,MLK 提到它是不完整的。这个方法的另一个问题是它只有在它的最后一段代码时才有效,因为它关闭了 COSStream,这将阻止你添加任何 future 文字

我知道这是旧帖子,但如果其他人遇到同样的问题,这里是对我有用的答案。 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

关于java - PDFBox 将 PDF 文件作为页面插入到另一个 PDF 文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47779298/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com