2013-09-04 3 views
1

ITextSharp를 사용하여 다음 HTML을 PDF로 내보내려고했지만 시도한 방법에 관계없이 테두리가 표시되지 않습니다.ITextSharp 아래쪽 테두리가있는 HTML로 PDF를 내 보냅니다.

HTML은 아래쪽 테두리를 표시하지만 일단 PDF로 내보내지면 번역이 손실됩니다. 아래쪽 테두리를 가짜로 만들 수있는 아이디어 나 방법은 없나요?

감사

HTML :

<Table > 
    <tr> 
     <td class="test123">Test</td> 
     <td>Test</td> 
    </tr>  
    <tr> 
     <td>Test</td> 
     <td>Test</td> 
    </tr>  
    <tr> 
     <td>Test</td> 
     <td>Test</td> 
    </tr>  
    <tr> 
     <td>Test</td> 
     <td>Test</td> 
    </tr>  
    <tr> 
     <td>Test</td> 
     <td>Test</td> 
    </tr>  

</Table> 

C 번호 :

string htmWrite = File.ReadAllText(Server.MapPath("~/Sample/Test.html")); 
    Document document = new Document(); 
StyleSheet css = new StyleSheet(); 
css.LoadStyle("test123", HtmlTags.HR, "1"); 

css.LoadStyle("test123", "border-bottom-style", "solid"); 
css.LoadStyle("test123", "border-bottom-width", "2px"); 

PdfWriter.GetInstance(document, new FileStream(@"C:\test\MySamplePDF.pdf", FileMode.Create)); 
document.Open(); 
iTextSharp.text.html.simpleparser.HTMLWorker hw = 
      new iTextSharp.text.html.simpleparser.HTMLWorker(document); 
hw.SetStyleSheet(css); 
hw.Parse(new StringReader(htmWrite)); 
document.Close(); 

답변

1

해결 XMLWorkerHelper

Document document = new Document(); 

     PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(@"C:\test\MySamplePDF.pdf", FileMode.Create)); 

     document.Open(); 

     TextReader r = new StreamReader(Server.MapPath("~/Sample/Test.html")); 
     XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, r);document.Close(); 
2

사용 XMLWorkerHelper을 사용합니다. HTML 파일에서 필요에 따라 테두리를 올바르게 설정해야합니다. XMLWorkerHelper는 자동으로 해당 스타일을 적용합니다. 하단 테두리 사용은 다음과 같습니다.

border-bottom-color: Black; 
border-bottom-width : 1px; 
border-bottom-style : solid; 
관련 문제