C# iTextsharp 替换多页 PDF 的页面

Jun*_*ens 7 c# pdf replace itext

说,我现在有一个名为“a.pdf”的 5 页 PDF,其中第 2 页和第 4 页是空的。另一个名为“b.pdf”的 2 页 PDF。现在我想要的是将“b.pdf”的第一页复制到“a.pdf”的第2页,将“b.pdf”的第二页复制到“a.pdf”的第4页。

我发现很难找到任何例子,我发现这里有人提供, http ://itextsharp.10939.n7.nabble.com/Replace-Pages-with-ItextSharp-td2956.html Called 'PdfStamper.ReplacePage() ',我想这就是我要找的东西,但我做了一个简单的演示但没有成功。有人可以帮我开一张支票吗?

string _outMergeFile = Server.MapPath("~/11/a.pdf");

string file2 = Server.MapPath("~/11/b.pdf");
PdfReader readerA = new PdfReader(_outMergeFile);
PdfReader readerB = new PdfReader(file2);

PdfStamper cc = new PdfStamper(readerA,new MemoryStream());

cc.ReplacePage(readerB, 1, 2);
cc.ReplacePage(readerB, 2, 4);
cc.Close();
Run Code Online (Sandbox Code Playgroud)

提前致谢。

================================================== ============================== 感谢何塞的建议。该代码现在有效。我现在在这里提供一个简单的示例供其他人参考。

public void MyFunction()
{
    string _outMergeFile = Server.MapPath("~/11/a.pdf");

    string file2 = Server.MapPath("~/11/b.pdf");
    PdfReader readerA = new PdfReader(_outMergeFile);
    PdfReader readerB = new PdfReader(file2);

    PdfStamper cc = new PdfStamper(readerA, new FileStream(Server.MapPath("~/11/result.pdf"), FileMode.Append));

    cc.ReplacePage(readerB, 1, 2);
    cc.Close();
}
Run Code Online (Sandbox Code Playgroud)

jos*_*ose 5

好的,我想我已经找到你的问题了。cc是在内存中创建的,并且在关闭文件之前我没有看到任何代码来保存对文件的实际更改,因此对内存中文件所做的更改会丢失。new FileStream ()一种选择是使用 a而不是内存流来创建它