2012-10-19 5 views
0

pdf 템플릿에서 PDF를 만드는 기능이 있습니다. 템플릿에는 6 줄의 텍스트가 들어 있습니다.iText 포함 글꼴 오류가 발생했습니다.

5 줄의 글꼴은 'Myriad Pro'글꼴이어야합니다. 이것은 잘 작동합니다. 다른 한 줄 ("name")은 'TheSerif'글꼴이어야합니다. 우리는 합법적 인 공급 업체를 통해이 글꼴을 구입했습니다. 이 선은 작동하지 않는 것 같습니다. 이 함수는 오류를 발생시키지 않지만 출력 PDF에서 해당 행을 읽을 수 없습니다.

둘 다 동일한 절차를 사용하므로 두 번째 글꼴이 작동하지 않는 이유를 알 수 없습니다.

BaseFont Myriad = null; 
    BaseFont TheSerif = null; 

    Myriad = BaseFont.CreateFont("D:\\Drukwerk\\MYRIADPRO-REGULAR.OTF", BaseFont.WINANSI, BaseFont.EMBEDDED); 
    TheSerif = BaseFont.CreateFont("D:\\Drukwerk\\TSer6C__.pfm", BaseFont.WINANSI, BaseFont.EMBEDDED); 

    pdfFormFields.SetFieldProperty("name", "textfont",TheSerif , null); 
    pdfFormFields.SetFieldProperty("Function", "textfont",Myriad, null); 
    pdfFormFields.SetFieldProperty("telephone", "textfont",Myriad, null); 
    pdfFormFields.SetFieldProperty("mobile", "textfont",Myriad, null); 
    pdfFormFields.SetFieldProperty("fax", "textfont",Myriad, null);  
    pdfFormFields.SetFieldProperty("emailadres", "textfont",Myriad, null); 

편집

: 나는이 기능은 매개 변수로 PFB와 AFM 파일을 취 다음

TheSerif = BaseFont.CreateFont("D:\\Drukwerk\\TSer6C__.pfm", 
           BaseFont.WINANSI, 
           BaseFont.EMBEDDED, 
           true, 
           FileToByteArray("D:\\Drukwerk\\TSer6C__.afm"), 
           FileToByteArray("D:\\Drukwerk\\TSer6C__.pfb")); 

에 글꼴 생성을 변경. '유효한 .pfm 파일이 아닙니다'

답변

2

PFM 파일은 포스트 스크립트 글꼴의 글꼴 메트릭 파일 (프린터 글꼴 메트릭)입니다. 이 파일에는 문자 그리기 명령이 없습니다.

PFM 파일은 일반적으로 글리프 도면이 포함 된 PFB 또는 PFA 파일과 함께 사용됩니다.이 파일은 사용해야하는 파일입니다.

+1

필자는 itext에 익숙하지 않지만이 overload BaseFont CreateFont (String name, String encoding, bool embedded, bool cached, byte [] ttfAfm, byte [] pfb, bool noThrow)를 사용해야한다. pfm. pfb 파일 데이터를 바이트 배열로 지정해야합니다. –

+0

감사합니다.이 함수를 사용해 보겠습니다. pfb 및 ttfAfm을 바이트 배열로 전달하는 방법을 알고 있습니까? – Hazaart

+0

바이트 배열을 가져 오는 함수를 찾았습니다. 내 질문을 업데이트했습니다. – Hazaart