0

原谅我英语不好。我想替换第一个文档中的页面并插入第二个文档中的页面而不是它们。我使用 itextsharp 5.3.3。第二份文档的页面包含图片。我的代码:

reader1:=New iTextSharp.text.pdf.PdfReader (file_name_1);

reader2:=New iTextSharp.text.pdf.PdfReader (file_name_2);

Document:= New iTextSharp.text.Document();

Document.Compress:=False;

For i:=4 To reader1.NumberOfPages Do

reader1.SetPageContent(i,reader2.GetPageContent(i));    

End For;

Stamper:=New iTextSharp.text.pdf.PdfStamper(reader1, New System.IO.FileStream(new_file_name, System.IO.FileMode.CreateNew));

stamper.Close();

结果,新文档中的图像混淆了。我究竟做错了什么?谢谢你的帮助!

4

1 回答 1

2

您的代码在许多层面上都是错误的。您正在复制内容流而不复制任何资源。我再也不想看到这样的代码了,永远!

请阅读http://www.manning.com/lowagie2/samplechapter6.pdf

完成任务的最佳方法是使用PdfCopy. 创建两个PdfReader对象,然后添加来自第二个阅读器的 4 个 PdfImportedPage 对象,然后添加来自PdfImportedPage第 5 页的第一个阅读器的对象。

使用以下代码示例获取灵感:

http://itextpdf.com/examples/iia.php?id=123

http://kuujinbo.info/iTextInAction2Ed/index.aspx?ch=Chapter06&ex=Concatenate

如果您发现一个页面建议使用您的原始方法,请告诉我,以便我可以采取措施删除该页面。如果您在 itextpdf.com 上找到此页面,请不要在未阅读文档的情况下使用这些示例!

于 2012-12-03T08:38:09.173 回答