2012-07-11 811 views
1

我想添加一个新的页面到PDF文档,但由于某种原因,这没有发生。也许我的其他问题https://stackoverflow.com/questions/11428878/itextsharp-splitlate-not-working与此有关,因为这个问题中的表没有中断,也没有创建新的页面。 这是我对新的页面添加代码:Document.NewPage()不添加新页面

Document doc = new iTextSharp.text.Document(iTextSharp.text.PageSize.A4.Rotate(),20,20,20,40); 
string rep1Name;     // variable to hold the file name of the first part of the report 
rep1Name = Guid.NewGuid().ToString() + ".pdf"; 

FileStream output = new FileStream(System.Web.HttpContext.Current.Server.MapPath("~/ReportGeneratedFiles/reports/" + rep1Name), FileMode.Create); 
PdfWriter pdfWriter = PdfWriter.GetInstance(doc, output); 

doc.Open(); 
doc.NewPage(); 
doc.NewPage(); 
doc.Close(); 

回答

3

只需调用newPage()绝不添加任何空白页。
您需要让作者知道该页面是空的。

示例:参照NewPage Example使用Java。希望同样的方法也适用于C#。

public class PdfNewPageExample 
{ 
    // throws DocumentException, FileNotFoundException 
    public static void main(String ... a) throws Exception 
    { 
     String fileHome = System.getProperty("user.home") + "/Desktop/"; 
     String pdfFileName = "Pdf-NewPage-Example.pdf"; 

     // step 1 
     Document document = new Document(); 
     // step 2 
     FileOutputStream fos = new FileOutputStream(fileHome + pdfFileName); 
     PdfWriter writer = PdfWriter.getInstance(document, FileOutputStream); 
     // step 3 
     document.open(); 

     // step 4 
     document.add(new Paragraph("This page will NOT be followed by a blank page!")); 

     document.newPage(); 
     // we don't add anything to this page: newPage() will be ignored 

     document.newPage(); 
     document.add(new Paragraph("This page will be followed by a blank page!")); 

     document.newPage(); 

     writer.setPageEmpty(false); 
     document.newPage(); 
     document.add(new Paragraph("The previous page was a blank page!")); 
     // step 5 
     document.close(); 

     System.out.println("Done ..."); 
    } // psvm(..) 
} // class PdfNewPageExample 
+0

非常感谢!它现在的作品! – user1517150 2012-07-14 11:19:00