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