itextsharp将2个pdf页面缝合在一个长页面中

itextsharp将2个pdf页面缝合在一个长页面中,pdf,merge,itext,Pdf,Merge,Itext,我在这个论坛上找到了将多页pdf组装成单个页面的代码 var pgSize = new iTextSharp.text.Rectangle(612, 2984); PdfReader reader = new PdfReader(@"C:\\Users\\myuser\\Desktop\\PDFTestmerge\\test1.pdf"); Document document = new Document(pgSize, 0, 0, 0, 0); PdfWriter writer = Pd

我在这个论坛上找到了将多页pdf组装成单个页面的代码

var pgSize = new iTextSharp.text.Rectangle(612, 2984);

PdfReader reader = new PdfReader(@"C:\\Users\\myuser\\Desktop\\PDFTestmerge\\test1.pdf");

Document document = new Document(pgSize, 0, 0, 0, 0);

PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(@"C:\\Users\\myuser\\Desktop\\PDFTestmerge\\testx.pdf", FileMode.Create));

document.Open();

PdfImportedPage page;
PdfPTable table = new PdfPTable(1);

table.WidthPercentage = 100;

for (int i = 1; i <= reader.NumberOfPages; i++)
{
    page = writer.GetImportedPage(reader, i);
    table.AddCell(iTextSharp.text.Image.GetInstance(page));
    document.Add(table);
}
document.Close();
var pgSize=newitextsharp.text.Rectangle(6122984);
PdfReader reader=新的PdfReader(@“C:\\Users\\myuser\\Desktop\\PDFTestmerge\\test1.pdf”);
文档=新文档(pgSize,0,0,0,0);
PdfWriter writer=PdfWriter.GetInstance(文档,新文件流(@“C:\\Users\\myuser\\Desktop\\PDFTestmerge\\testx.pdf”,FileMode.Create));
document.Open();
PDF导入页面;
PdfPTable table=新的PdfPTable(1);
表1.1:百分比=100;

对于(int i=1;i),这是一个itext高级API尚未明确支持的用例,但可以使用其低级API。如果我的主PDF包含所有页面,任务是删除一些页面,最后将剩余页面合并到一个大页面中,这会更容易吗?(使用一个PDF…并在内部使用其自己的内容)让它变得非常重要的是,您希望将多个页面的内容组合到一个目标页面上,并将原始页面的批注放在目标页面上的适当位置。不需要批注…但是(表单字段)也许是同样的困难?…我知道每个页面的高度…所以我知道大页面的最终高度和每个页面的垂直位置(取决于我之前删除的页面)表单字段(更确切地说:它们的可视化)是注释。
Document document = new Document();

PdfCopy copy = new PdfCopy(document, new FileStream(@"C:\\Users\\myuser\\Desktop\\PDFTestmerge\\testz.pdf", FileMode.Create));
document.Open();

PdfReader reader;

int n = 0;
for (int i = 0; i < collectFinal.Count; i++)
{
    reader = null;
    reader = new PdfReader(collectFinal[i]);
    n = reader.NumberOfPages;

    for (int page = 0; page < n;)
    {
        copy.AddPage(copy.GetImportedPage(reader, ++page));
    }
}
document.Close();