使用 PDFsharp 合并两个 PDF 文件时出错
Error merging two PDF files using PDFsharp
我在合并两个文件时遇到问题。如果我尝试在单独的 void 函数中使用 AddPage(from.Pages[i]);
,我会得到
An object reference is required for the non-static field, method, or property
It relates to
CopyPages(one, outPdf);
CopyPages(two, outPdf);
如果我将其设置为 static void 它将 运行 但控制台显示一条错误,指出它 "can not save a PDF with no pages"
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]);
}
}
你的 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");
不是 open/read 文件,它只是准备创建一个具有该名称的新文件。
我在合并两个文件时遇到问题。如果我尝试在单独的 void 函数中使用 AddPage(from.Pages[i]);
,我会得到
An object reference is required for the non-static field, method, or property It relates to
CopyPages(one, outPdf); CopyPages(two, outPdf);
如果我将其设置为 static void 它将 运行 但控制台显示一条错误,指出它 "can not save a PDF with no pages"
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]);
}
}
你的 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");
不是 open/read 文件,它只是准备创建一个具有该名称的新文件。