2012-04-22 1 views
1

jar 파일에 ttf 파일을 번들로 제공하고이를 텍스트 렌더링을위한 실제 글꼴로 사용하려고합니다.실제 글꼴 java?

  • 첫째, 하나의 글꼴, 말 :

    InputStream is=Essai.class.getResourceAsStream(resourcePath); 
    Font f=Font.createFont(fontFormat, is); 
    

    가이 코드에 대한 두 가지 질문이 있습니다

    내가 인터넷을 통해 본 적이 모든 샘플 코드

    은 다음과 같습니다 DejaVu는 스타일마다 4 가지 ttf 파일 (일반, 굵게, 기울임 꼴 및 굵게 기울임 꼴)을 보유하고 있습니다. 하나의 단일 ttf (4 중 하나)에서 글꼴을 만드는 것으로 충분합니까?
  • 둘째

    , 궁금 나를 계속 내가 볼 수있는 글꼴을 만든 후 스트림을 닫은 코드, 아무도 그것을 의도적 없었다? 어쩌면 생성 된 글꼴 (나중에 로컬 GraphicsEnvironment에 등록 될 것입니다)이 열려 있어야 스트림이 필요합니까?

    createFont() 메서드의 javadoc는 "이 메서드는 InputStream을 닫지 않습니다."라고 말합니다.

    두 번째 질문은 글꼴을 만든 후에 스트림을 닫아야합니까, 아니면 열어 두어야합니까?
+0

답변을 주셔서 감사합니다. 나는 편집에 동의하지 않는다. 목록의 두 번째 요소 아래에 두 번째 질문 태그가 있어야한다. 두 번째 질문이다. :-) –

답변

3
  1. 나는로드 하나 개의 변형이 모두로드 믿지 않는다. 그러나 그때 그것은 중요하지 않습니다. Java는 Font 변형을 굵게 + 기울임 꼴로 조합하여 만들 수 있습니다. 나는 처음에 Jar에 표준 Font만을 넣을 것입니다.
  2. 스트림을 닫습니다. 대부분의 예제는 모호성을 위해 모서리를 자릅니다 (일반적으로 나쁜 생각이지만).
+0

괜찮 았나? "하나의 변형을로드하는 것이 모두로드됩니다."라고 생각하지 않습니다. 사실입니다. 방금 테스트했습니다. java가 만든 변종이 ttf 파일에 정의 된 변종과 동일하게 보이는지, 그리고 변이가 아닌지를 알아 냈습니다. 해당 ttfs에서로드 된 변형은 훨씬 "섹시하게"보입니다! :피. 이제 문제는 그들이 GraphicsEnvironment에서 같은 이름으로 등록된다는 것입니다. 즉, 글꼴 생성자에서 그 중 하나만 제대로 사용할 수 있습니다. 그러나 나는 그것을 관리하는 방법을 찾을 수있는 방법. 답변을 주셔서 다시 한번 감사드립니다 :) 해결해 드리겠습니다. –