使用PDFsharp合并两个PDF文件时出错

本文关键字:PDF 两个 文件 出错 PDFsharp 合并 使用 | 更新日期: 2023-09-27 18:14:15

我在合并两个文件时遇到了问题。如果我尝试将AddPage(from.Pages[i]);放在单独的void函数中,我会得到

非静态字段、方法或属性需要对象引用它与CopyPages(one, outPdf); CopyPages(two, outPdf);

如果我将它设置为静态空,它将运行,但控制台显示一个错误,指出它"不能保存没有页面的PDF"

static void Main(string[] args)
{
    PdfDocument one = new PdfDocument("1.pdf");
    PdfDocument two = new PdfDocument("2.pdf");
    PdfDocument outPdf = new PdfDocument();
    {
        CopyPages(one, outPdf);
        CopyPages(two, outPdf);
        outPdf.Save(out.pdf);
    }
}
void CopyPages(PdfDocument from, PdfDocument to)
{
    for (int i = 0; i < from.PageCount; i++)
    {
        to.AddPage(from.Pages[i]);
    }
}

使用PDFsharp合并两个PDF文件时出错

您的one是一个空的PdfDocument,您的two是一个空的PdfDocument, for循环不做任何事情,outPdf是一个空的PdfDocument。

像往常一样,你让电脑做什么,它就做什么。如果您在调试器中逐步执行代码,您可以很容易地看到这一点。

你必须使用PdfDocument inputDocument = PdfReader.Open(file, PdfDocumentOpenMode.Import);之类的东西来打开PDF文件进行导入。

参见:
http://www.pdfsharp.net/wiki/ConcatenateDocuments-sample.ashx

new PdfDocument("1.pdf");不打开/读取文件,它只是准备创建一个同名的新文件。