使用PDFsharp

时间:2015-09-24 08:16:50

标签: c# .net pdf pdfsharp

合并两个文件时遇到问题。如果我尝试将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]);
    }
}

1 个答案:

答案 0 :(得分:1)

你的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");无法打开/读取文件,它只是准备创建一个具有该名称的新文件。