2017-11-18 4 views
2

내 안드로이드 응용 프로그램에서 pdf을 생성하기 위해 i- 텍스트를 사용하고 있습니다. 그러나 그것은 영어 글꼴을 위해 잘 작동했습니다. 내 로컬, 방글라에 대해 pdf을 생성하려고 할 때 몇 가지 문제점이있었습니다. 어떤 블로그에서 몇 가지 팁을 얻고 난 후에 내가 가지고 방식으로 구현 기재하는 :안드로이드의 방글라 텍스트에 itext를 사용하는 Pdf 생성

String fontName = "Nikosh.ttf"; 
    InputStream is = context.getAssets().open(fontName); 
    int size = is.available(); 
    byte[] buffer = new byte[size]; 
    int a = is.read(buffer); 
    BaseFont customFont = BaseFont.createFont(fontName, BaseFont.IDENTITY_H, BaseFont.EMBEDDED, true, buffer, buffer); 
    Font banglaFont = new Font(customFont, 12); 

이제 출력은 다음과 같습니다

이는 벵골어 글꼴

를 사용 벵골어 텍스트의 출력

image

그러나 출력 텍스트가 손상되었습니다. 원래이 하나처럼 보이는 반면 :

원본

image2

안드로이드에서 유니 코드에 대한 이러한 유형의 문제를 해결하는 방법에 대한 어떤 도움 벵골어

에서 높게 평가 될 것이다. N.B. 나는 i-text 5.5.x를 사용하고있다.

+0

iText 5 이하를 사용 중입니다. iText 5가 Bangla 텍스트를 지원하지 않기 때문에 출력이 끊기는 것이 정상입니다. 인도어를 지원하려면 iText 7로 업그레이드하고 [pdfCalligraph add-on] (https://itextpdf.com/itext7/pdfcalligraph)을 사용해야합니다. 자세한 정보는 [pdfCalligraph 백서] (https://developers.itextpdf.com/sites/default/files/attachments/Whitepaper_pdfCalligraph_2017.pdf)를 참조하십시오. iText 7은 iText 5와 동일한 라이센스를 가지고 있지만, pdfCalligraph는 악용을 피하기 위해 폐쇄 소스로 유지되었습니다. –

답변

0

표시하는 글꼴도 사용한다.

BaseFont base = BaseFont.createFont("c:/windows/fonts/arial.ttf", BaseFont.WINANSI); 
Font font = new Font(base, 11f, Font.BOLD); 
관련 문제