我正在使用iTextSharp生成pdf。如果某些属性为真,那么我还想插入一个包含静态内容的现有pdf。
private byte[] GeneratePdf(DraftOrder draftOrder)
// create a pdf document
var document = new Document();
// set the page size, set the orientation
document.SetPageSize(PageSize.A4);
// create a writer instance
var pdfWriter = PdfWriter.GetInstance(document, new FileStream(file, FileMode.Create));
document.Open();
if(draftOrder.hasProperty){
//add these things to the pdf
var textToBeAdded = "<table><tr>....</table>";
}
FormatHtml(document, textToBeAdded , css);
if(someOtherProperty){
//add static pdf from file
document.NewPage();
var reader = new PdfReader("myPath/existing.pdf");
PdfImportedPage page;
for(var i = 0; i < reader.NumberOfPages; i++){
//It's this bit I don't really understand
//**how can I add the page read to the document being created?**
}
我可以从源代码加载pdf,但是当我遍历页面时,我似乎无法将它们添加到我正在创建的文档中。
干杯
答案 0 :(得分:1)
请阅读http://manning.com/lowagie2/samplechapter6.pdf
如果您不介意丢失所有交互性,可以使用GetImportedPage()
方法从编写器对象获取模板,并使用AddTemplate ()
将其添加到文档中。
StackOverflow已经多次回答了这个问题,您会注意到我总是警告一些危险:您需要意识到导入页面的尺寸可能与您最初定义的页面尺寸不同。因为导入页面的这个不可见部分可以变得可见;可见部分可能变得不可见。
我更喜欢使用PdfCopy
在第二个中添加额外的页面,但也许这只是我。