itext 생 성 PDF 파일 오류"Font'STSong-Light'with'UniGB-UCS2-H'is not recognized."

최근 에 추출 표 구 조 를 만 드 는 도구 가 필요 합 니 다.powerdesigner 의 표 그림 과 유사 합 니 다.그 중 한 단 계 는 itext 라 는 제3자 jar 가방 을 사용 하여 pdf 파일 을 만 들 었 습 니 다.문제 에 부 딪 혀 기록 되 었 습 니 다.
 
질문 설명:
프로젝트 는 maven 구축 을 사용 합 니 다.pom.xml 에서 jar 패키지 에 대한 정 의 는 다음 과 같 습 니 다.

   com.lowagie
   itext
   2.1.7
  
  
   com.itextpdf
   itext-asian
   5.2.0
  

BaseFont bfChinesebfChinese=BaseFont.createFont("STSong-Light","UniGB-UCS2-H",BaseFont.NOT 실행EMBEDDED);타 임 스 오류:
"Font 'STSong-Light' with 'UniGB-UCS2-H' is not recognized."
 
해결 하 다.
1.먼저 itext 의 가방 버 전 을 교체 하려 고 시도 합 니 다.그 는 maven 중앙 라 이브 러 리 의 위 치 는/maven 2/com/lowagie/itext/이 고 최고 버 전 은 4.2.2 이지 만 시도 해 보 니 문제 가 여전 합 니 다.
2.itext-asian 의 가방 경 로 는 com.itextpdf 라 는 것 을 알 고 계속 찾 아 보 니/maven 2/com/itextpdf/itextpdf 에 itextpdf 의 각 버 전이 있 고 5.0.6 에서 5.5.6 까지 있 습 니 다.
3.일부 게시 물 을 검색 한 결과 itext 는 5.x 버 전부터 itextpdf 로 이름 을 바 꾸 었 고 위(1)와(2)에 해당 하 는 버 전 번호 에 부합 되 었 습 니 다.
4.문 제 는 확인 할 수 있 습 니 다.바로 위의 itext-asian 과 itext 버 전이 대응 하지 않 고 다음 으로 바 뀌 었 습 니 다.

    com.itextpdf
    itextpdf
    5.4.3

다시 실행,ok.
일부 글 에 서 는 itextasian 가방 이름 이 업데이트 되 지 않 아 도 이 문 제 를 일 으 킬 수 있다 고 언급 했 지만 제 가 사용 하 는 5.2.0 이 가방 은 압축 을 풀 고 가방 이름 이 정확 한 것 을 보 았 습 니 다.아마도 새로운 버 전이 바 뀌 었 을 것 입 니 다.이 점 은 깊이 연구 하지 않 았 습 니 다.
요약:
  CJKFont ,      
   InputStream is = getResourceStream(RESOURCE_PATH + "cjkfonts.properties"); 
   cjkFonts.load(is); 
   is.close(); 
   is = getResourceStream(RESOURCE_PATH + "cjkencodings.properties"); 
   cjkEncodings.load(is); 
   is.close(); 
  font encoding     String RESOURCE_PATH = "com/itextpdf/text/pdf/fonts/";      ,  itextasian.jar    com.lowagie.text.pdf.fonts,           ,        itextasian.jar,     itextasian.jar   ,       , OK,  . 

×××××××××××××××××××××××××××××××××××××××××××

  iTextAsian.jar       
1)  winrar         iTextAsian.jar  ,      
  iTextAsian
      --com
         --lowagie
           --text
             --pdf
               --fonts
                 --...(      )
2)    com      lowagie   itextpdf
3)      iTextAsian  ,     iTextAsian.jar  
      :
  jar cvf iTextAsian.jar com/itextpdf/text/pdf/fonts/*
     ,   iTextAsian.jar   classpath  

 
참고:
http://endual.iteye.com/blog/1623327
http://blog.csdn.net/wang12/article/details/5661106
http://bbs.csdn.net/topics/390283201

좋은 웹페이지 즐겨찾기