2016-10-24 14 views
0

私はGenerate PDF fuctionを持っています。ここでは3つの異なるHTMLを1つのpdfとしてロードしています。 しかし、私は "ページB"という単語を含むページが必要です。itextsharpを使って個々のページを回転する - MVC C#

public void HTMLToPdfTEST(string[] HTML, string fileName, string folderPath, string physicalApplPath, string requestNumber = "") 
    { 
     Document document = new Document(); 
     PdfWriter pdfwriter = PdfWriter.GetInstance(document, new FileStream(physicalApplPath + folderPath + "\\" + fileName + ".pdf", FileMode.Create)); 

     TableHeader tevent = new TableHeader(); 
     tevent.Header = requestNumber; 
     pdfwriter.PageEvent = tevent; 
     document.Open(); 
     iTextSharp.text.html.simpleparser.StyleSheet styles = new iTextSharp.text.html.simpleparser.StyleSheet(); 
     iTextSharp.text.html.simpleparser.HTMLWorker hw = new iTextSharp.text.html.simpleparser.HTMLWorker(document); 


     foreach (string htmlPage in HTML) 
     { 
      if (requestNumber.Contains("Page B")){ 
       //do page rotation 
       hw.Parse(new StringReader(htmlPage)); 
      } 
      else{ 
       hw.Parse(new StringReader(htmlPage)); 
      } 

      document.NewPage(); 
     } 
     document.Close(); 
    } 
+1

あなたは 'XMLWorker'を使用しているべきですが、あなたは長い間廃止された' HTMLWorker'を使用しています。 –

答えて

0

解決策があります。

//added below line and mentioned it in if condition.  
document.SetPageSize(PageSize.A4); 
    document.Open(); 

foreach (string htmlPage in HTML) 
     { 

      if (requestNumber.Contains("CMC") && HTML[1] != null) 
      { 
       //do page rotation 
       document.SetPageSize(PageSize.A4.Rotate()); 
       hw.Parse(new StringReader(htmlPage)); 
      } 
      else 
      { 
       hw.Parse(new StringReader(htmlPage)); 
      } 

      document.NewPage(); 
     } 
     document.Close(); 

今すぐ動作しています!

関連する問題