2017-03-28 1 views
0

나의 주 목적은 pdf에 중국어 글꼴을 표시하는 것입니다.itextsharp의 글꼴 인코딩 변경

내가 수정해야하는 코드는 문제가 FontEncodings.CP1252 및/또는 FontNames.TIMES_ROMAN에서 것 ​​같다

BackgroundColor = FontHelper.GetPdfColor(0, 0, 255), 
FontColor = FontHelper.GetPdfColor(0, 255, 0), 
FontStyle = FontStyle.NORMAL, 
FontEncoding = FontEncodings.CP1252, 
FontName = FontNames.TIMES_ROMAN 

이며, 내가 생각하는 모든 관련 게시물을 읽을,하지만 난 찾을 수 없습니다 간단한 해결책.

나는 작업 할 코드가 충분하지 않으므로 수정할 가능성이 적습니다. 일부 FontSelector 또는 일부 다른 솔루션에 대한 해결책을 보았습니다. 코드와 실제로 다른 점이 있습니다. 코드를 내 코드에 통합하는 것이 다릅니다. 거의 해결책은 오래되었고 잠재적으로 최신이 아닙니다.

글꼴을 수정하는 간단한 방법이 있습니까?

+0

위의 코드에서 더 많은 코드를 게시하십시오! 글꼴을 만들고 사용하는 방법은 대답과 관련이 있습니다. TTF 파일이나 뭐 다른 글꼴로 사용 하시겠습니까? – COeDev

답변

0

이것은 생각할 수있는 최소한의 실행 가능한 코드 샘플이며 텍스트 조각의 글꼴을 변경하는 방법을 보여줍니다.

static void Main(string[] args) 
{ 

    // setup 
    PdfWriter writer = new PdfWriter(@"C:\Users\Joris Schellekens\Downloads\output.pdf"); 
    PdfDocument pdfDocument = new PdfDocument(writer); 
    Document doc = new Document(pdfDocument); 

    // font 
    PdfFont font = PdfFontFactory.CreateFont(@"C:\Windows\Fonts\comicbd.ttf"); 

    // paragraph 
    Paragraph para = new Paragraph("Lorem Ipsum Dolor Sit Amet"); 
    para.SetFont(font); 

    // add 
    doc.Add(para); 

    // close 
    doc.Flush(); 
    doc.Close(); 
} 
0

마지막으로 내가 찾은 simpliest 방법 중 하나는

string ARIALUNI_TFF = @".\SimSun.ttf" ; 
bf=BaseFont.CreateFont(ARIALUNI_TFF,BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); 

요리스 응답의 약간의 적응이다.