在Java中合并2个PDF

在Java中合并2个PDF,java,pdf,itext,Java,Pdf,Itext,我对iText和将2PDF合并到1 PDF有问题 我想合并此PDF: PDF1-一个站点: 这是PDF1 PDF2-一个站点: 这是PDF2 我需要的是: 代码1-两个站点: 一站一:这是PDF1。 一个站点二:这是PDF2 代码2-数字被覆盖: 这是PDF(1/2) 公共类主{ 公共静态void main(字符串[]args)引发IOException、DocumentException{ PDF阅读器; PDF导入页面; LinkedList fileList=新建LinkedList();

我对iText和将2PDF合并到1 PDF有问题

我想合并此PDF:

PDF1-一个站点:

这是PDF1

PDF2-一个站点:

这是PDF2

我需要的是:

代码1-两个站点:

一站一:这是PDF1。
一个站点二:这是PDF2

代码2-数字被覆盖:

这是PDF(1/2)

公共类主{
公共静态void main(字符串[]args)引发IOException、DocumentException{
PDF阅读器;
PDF导入页面;
LinkedList fileList=新建LinkedList();
添加(新文件(“C:\\Temp\\PDF1.pdf”);
添加(新文件(“C:\\Temp\\PDF2.pdf”);
文件ergebnis=新文件(“C:\\Temp\\Code2.pdf”);
Document document2=新文档(PageSize.A4);
PdfWriter writer=PdfWriter.getInstance(document2,新文件输出流(ergebnis));
文档2.open();
PdfContentByte canvas=writer.getDirectContent();
//标题
reader=newpdfreader(fileList.get(0.getAbsolutePath());
page=writer.getImportedPage(读取器,1);
canvas.addTemplate(第0页,第0页);
//奥法加贝
reader=newpdfreader(fileList.get(1.getAbsolutePath());

对于(int i=1;i这个问题有点模糊-如果你问如何获取两个PDF并将它们合并在一起,这篇文章在iText中展示了最简单的方法:

这个问题有点模糊-如果你问如何获取两个PDF并将它们合并在一起,这篇文章在iText中展示了最简单的方法:

请阅读我的文章这本书解释了为什么使用
PdfWriter
/
PdfImportedPage
合并文档是错误的。如果要连接两个文档,则应使用
PdfCopy
PdfSmartCopy
。如果希望一个文档充当另一个文档的公司文具,则应使用
PdfStamper
r问题,不清楚你需要哪一个(你把它留给解释),所以请阅读第6章。我已经尽了努力编写了它,并免费提供给您,以便您可以选择适合您的解决方案。

请阅读我的书。它解释了为什么使用
PdfWriter
/
PdfImportedPage
合并文档是错误的方法。您应该使用
PdfCopy
PdfSmartCopy
如果您想连接两个文档。如果您想让一个文档充当另一个文档的公司文具,则应使用
PdfStamper
。从您的问题来看,不清楚您需要两个文档中的哪一个(您可以自行解释),所以请阅读第6章。我已经尽了努力编写了它并免费提供,以便您可以选择适合您的解决方案。

是否清楚所有第1页加上所有第2页都可以放在一个目标页面上?在这种情况下,您只需调整
canvas.addTemplate(第0页,第0页)的数字参数即可
是否清楚所有的第1页加上所有的第2页都可以放在一个目标页面上?在这种情况下,您只需调整canvas.addTemplate(第0页,第0页)的数值参数即可
我想询问者希望将两个源文档的内容放在同一个结果页上,一个放在另一个下,因此PdfCopy可能不是解决方案。这就是为什么我添加了关于PdfStamper和公司文具的备注。杰普,我需要两个文档放在一个结果页上。谢谢关于iText的章节。我读了,但我不能在一个站点上,将我的两个pdf转换为一个pdf。定义“在一个站点上”。在本文中,“站点”一词指的是什么?另外,“连接”一词可能是错误的。我猜你的意思是“叠加”。请重新措辞,使问题更准确。请不要期望人们对不准确的问题给出准确的答案。我想询问者希望将两个源文档的内容放在同一结果页上,一个放在另一个下,因此PdfCopy可能不是解决方案。这就是为什么我添加了关于PdfStamper和comp的备注任何文具。Jep我需要在一个结果页上同时包含两个文档。谢谢关于iText的章节。我读了它,但是我不能在一个站点上将我的两个pdf连接到一个pdf。定义“在一个站点上”。站点这个词在上下文中指的是什么?另外,“连接”这个词可能是错误的。我想你的意思是“叠加”。请重新措辞,使问题更准确。请不要期望人们对不准确的问题给出准确的答案。
    PDFMergerUtility ut = new PDFMergerUtility();
    ut.addSource("C:\\Temp\\PDF1.pdf");
    ut.addSource("C:\\Temp\\PDF2.pdf");
    ut.setDestinationFileName("C:\\Temp\\Code1.pdf");
    ut.mergeDocuments();
public class main {
public static void main(String[] args) throws IOException, DocumentException {
    PdfReader reader;
    PdfImportedPage page;


    LinkedList<File> fileList = new LinkedList<File>();
    fileList.add(new File("C:\\Temp\\PDF1.pdf"));
    fileList.add(new File("C:\\Temp\\PDF2.pdf"));


    File ergebnis = new File("C:\\Temp\\Code2.pdf");
    Document document2 = new Document(PageSize.A4);
    PdfWriter writer = PdfWriter.getInstance(document2, new FileOutputStream(ergebnis));

    document2.open();
    PdfContentByte canvas = writer.getDirectContent();

    // Header 
    reader = new PdfReader(fileList.get(0).getAbsolutePath());
    page = writer.getImportedPage(reader, 1);
    canvas.addTemplate(page, 0, 0);
    // Aufgabe
    reader = new PdfReader(fileList.get(1).getAbsolutePath());
    for(int i=1; i<=reader.getNumberOfPages(); i++){
        page = writer.getImportedPage(reader, i);
        canvas.addTemplate(page, 0, 0);
        document2.newPage();
    }

    document2.close();
    writer.close();
}