2007년 11월 7일 수요일

iText를 이용하여 원 문자를 PDF에 출력하기

원 문자를 PDF에 출력하기

원형 문자를 PDF에 출력하는데는 여러가지 방법이 있을 수 있습니다.
가장 무식하면서도 간단한 방법은 숫자를 쓰고 숫자 밖에 원을 그리는 것입니다.
하지만 이런 방식으로 하면 미관상 문제가 있고 처리상에서도 약간한 번거로움이 있습니다.

그래서 소개합니다. 이 모든것을 아주 쉽게 처리해주는 폰트 - CombiNumerals Pro 4.0...
하지만 Pro버젼은 라이센스가 있고 별도로 구입해야 하므로 CombiNumerals 폰트를 예제에서 사용하도록 하겠습니다.

CombiNumerals 는 http://www.fontsite.com/Pages/FFDownloads.html 에서 얻을수가있습니다. 사이트 접속이 않될때를 대비하여 첨부파일로 폰트를 올립니다.

CombiNumerals 폰트를 이용하여 원문자를 출력하는것은 아주 쉽습니다.
만약 단일 원숫자를 표시하고싶을때면 폰트를 CombiNumerals 로 바꾸고 숫자만 출력하면 됩니다.
두자리 원숫자를 표시하려면 별도로 작업을 해주셔야 하는데 두가지 키의 조합이라고 보시면 됩니다. 일단 첫 자리 수 즉 십이자리수는 기입한 수의 첫번째 숫자를 사용하고 일이자리수는 기입한 숫자의 두번째 자리 숫자를 Shirt 키를 누른채 기입하면 됩니다.
예를 들면 88을 기입하고 싶으면 실제 8*를 기입하면 됩니다.
이를 쉽게 사용하기 위하여 아래와 같은 맵을 만듭니다.

String [] charMap1 = { ")","!","@","#","$","%","^","&","*","(" };

세자리 이상되는 숫자는 별도로 처리를 해주어야 하는데 CombiNumerals pro에서만 지원하기 때문에 여기서 실제 결과를 보여줄수는 없네요. 하지만 그 처리 방법을 간단히 살펴 본다면 첫번째 자리 및 마지막 자리는 위에서 설명을 드린 두자리 수 처리 방식과 동일하면 가운데 숫자 즉 첫자리수, 마지막자리수를 제외한 기타 자리수는 zxcvbnm,./ 문자로 매핑하여 사용하시면 됩니다.
이를 쉽게 사용하기 위하여 아래와 같은 맵을 만듭니다.

String [] charMap2 = { "/","z","x","c","v","b","n","m",",","." };

실제 숫자만 입력받아서 원문자를 Chunk에 담아 리턴시켜주는 함수를 구현하였는데 아래에 첨부를 합니다. 소스가 쉬우니깐 별도로 분석을 해드리지는 않겠습니다.

소스열기

아래는 실제 위에 첨부한 메소드를 이용하여 원모양 숫자를 출력한 결과입니다.

사용자 삽입 이미지





2007/11/07 - [자바 어플리케이션/기타 프레임웍들] - iText로 Table을 만들기

댓글 없음:

댓글 쓰기