2014-03-26 3 views
0

나는 여기 예제를 따라 할 수 있었고 표의 바깥에 있지만 표의 셀 내에있는 한자를 표시 할 수있었습니다. 그들은 실 거예요.iTextSharp를 사용하여 HTML 표의 한자를 PDF로 표시

@{ 
    <head> 
    <title>Daily Production Report 国务院公布了房</title> 
    </head> 
} 

@{ 
    <table style="width: 61%; font-size:x-small; font-family:'Arial Unicode MS'" border="1"> 
    <tr> 
    <td style="width: 78px">Date:</td> 
    <td style="width: 200px">&nbsp;</td> 
    <td style="width: 80px">Order ID</td> 
    <td style="width: 200px">国务院公布了房</td> 
    <td style="width: 112px">Total Pieces</td> 
    <td style="width: 200px">&nbsp;</td> 
    </tr> 
    </table> 
} 

이 뒤에 코드가 - -

샘플 HTML 코드입니다

FontFactory.Register("c:/windows/fonts/ARIALUNI.TTF"); 
StyleSheet style = new StyleSheet(); 
style.LoadTagStyle("body", "face", "Arial Unicode MS"); 
style.LoadTagStyle("body", "encoding", BaseFont.IDENTITY_H); 
using (Document document = new Document()) 
{ 
    PdfWriter.GetInstance(document, new FileStream(fileName, FileMode.Create)); 

    document.Open(); 
    foreach (IElement element in HTMLWorker.ParseToList(
     new StringReader(HTMLData.ToString()), style)) 
    { 
     document.Add(element); 
    } 
    document.Close(); 

} 

답변

1

당신의 HTML이 HTMLWorker의 당신이 둘러싸하고 있다는 사실에 위반되는 유효하지만 글꼴 이름을 HTML 내의 작은 따옴표로 묶으십시오. font-family:'Arial Unicode MS'에서 font-family:Arial Unicode MS으로 변경되었습니다. 더 나은 아직은, 만약 당신이 HTML을 제어한다면 <body> 태그가 다른 모든 것을 상속 받기 때문에 font-family 선언을 완전히 없앨 수 있습니다.

생성 된 HTML을 변경할 수없는 경우 실제로 선언 할 때 Arial의 이름을 바꾸거나 다시 별칭을 지정할 수 있습니다.

//Register one alias 
FontFactory.Register("C:\\Windows\\Fonts\\ARIALUNI.TTF", "Arial Unicode MS"); 
//Register another alias 
FontFactory.Register("C:\\Windows\\Fonts\\ARIALUNI.TTF", "'Arial Unicode MS'"); 

또한, HTMLWorkerXMLWorker 찬성되지 않습니다 것을 기억하시기 바랍니다.

+0

위대한 작품! 고맙습니다 ... XMLWorker를 사용하기 위해 코드를 어떻게 변경합니까? – Craig

+0

'XMLWorker'는 별도의 바이너리입니다. http://sourceforge.net/projects/itextsharp/files/xmlworker/에서 최신 버전을 다운로드 할 수 있습니다. 그러나 곧바로 업그레이드되는 것은 아닙니다. 다음은 몇 가지 게시물을 사용하여 예제를 보여줍니다. http://stackoverflow.com/a/21165654/231316 http://stackoverflow.com/a/16105368/231316 http://stackoverflow.com/a/15362705/231316 –

관련 문제