2016-10-24 1 views
0

나는 하나의 pdf로 3 개의 다른 HTMLS를로드 할 때 PDF 생성 기능을 제공합니다. 하지만 나는 "페이지 B"라는 단어가 포함 된 페이지가 필요합니다. 가로로 굴려 야합니다. 무거운 GRID가 있기 때문입니다.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(); 

이제 작동 중입니다!

관련 문제