티스토리 뷰

PHP에서 PDF 만들기에 대한 생각.

이문제로 거의 2주일이라는 시간을 허비했다.
젠장.-.-; 시간이 너무 아깝기도 하고 새로운 경험을 하여서 괜찮다고 생각도 하고...
여튼 일단 내가 실제 구현한방법은 순수 php로만 구현을 하지 못했다.
이유가 좀 많지만  다른 누군가가 이런 일을 맏아서 하게 되면 참고가 될까 해서
몇자 적어볼까한다.
순수 php로만 pdf 및 리포팅을 구현 못하게 된이유가
세밀한 디자인폼과, 한글이 문제가 되었다.

일단 세밀한 디자인이 되는가 싶으면(당근 노가다성이다.) 한글이 안되고
한글이 된다 싶으면 세밀한 디자인이 안되고.... 결국 여기저기 다 찾아봐도
시간만가고 얻는 소득은 없고 해서 2주를 버렸다.

내가 했던 플랫폼을 간단히 적으면

iis 서버, php5, Ms Sql 2000 서버
일단 이렇게 구현을 하였고 현재 iis 서버에서 php와 .net 을 모두 구동하여 쓰고 있으며
DB는 mysql은 배제하고(왜.? 이유는 이것도 사정이 많다.) 기존 ms sql 2000 을 사용하였다.
또한 php 로 pdf 를 만들때 사용해본 모듈들은 내 블로그에도 찾아보면 있겠지만
fpdf, ROS, Dompdf, pdflib 등을 써봤으면 그외에도 이름이 생각이 안나지만 다른 몇개의 모듈을
더 찾아서 해봤다.(이름이 기억이 안나는데 그건 php GD 라이브러리를 사용하여 페이지
자체를 이미지화 시켜서 PDF 로 날리는 방법을 사용했던 기억이다.)
1. fpdf 는 한글 지원 및 샘플 보기가 그나마 상당히 쉬웠다.
   어느분께서 직접 번역하고 샘플을 한글로 만들어서 상당히 샘플만들어서 돌려보는데는 쉬었다.
   하지만 대략 조금 복잡한 테이블 그리고 테이블 안으로 자료들이 많이 들어가는것에는
   모두 노가다성 계산을 해줘야 하며 잘 안되는 부분들이 많았다. 따라서 패스~
2. ROS 는 외국의 일반 개발자가 공개해 놓은 모듈인데 쓰기는 fpdf 나 pdflib 보다는 쉬웠다.
   하지만 결정적으로 한글지원 안된다는 단점을 안고 있었는데.. 이부분을 해결할려고 2틀이나
   허비를 했지만 별 소득이 없었다. cjk 문자권은 좀 힘들지 않을까 한다
   혹시나 누가 하려고 한다면 간단 한글 폰트 가지고 afm 파일을 만드는 방법은 알려줄수 있다.
   afm 파일은 adobe 사에서 나온 캐릭터 스트럭처 규약이라고 보면 될거같고 문서들은
   adobe 홈페이지에서 구할수 있다. 또한 보다보면 문자들에 관한 상당한 정보를 접할수 있는
   기회가 될수도 있겠다.
3. pdflib 이것은 결정적으로 라이트 버전인가 이고 그이후 버전들은 상용으로 알고 있다.
   맨처음 예전에는 라이트버전이나 상용이나 같은기능을 하는것으로 알고 있었는데
   아니였나보당.-.- 그래서 간단한 문서만 테스트해보고 패수~
4. dompdf 와 기타 모듈들은 좀 재미삼아서 테스트를 해봤다고 말할수 있겠다.
   웹페이지에서 테스트 할수있는것들이 있는데 상당히 재미있다고 느낄수 있다.
   html 테그를 해석해서 pdf 형태로 변환을 하는것이기에 상당히 매리트를 느꼇는데
   결국 한글때문에 패스~

결국 순수 php 로 레포팅을 만드는것은 포기하고 (시간만 주어지고 재미삼아 널널하게
여유를 가지고 해보면 되지 않을까 생각을 한다, 하지만 현실은...)
다른 방법을 이용하게 되었는데 최종적으로 크리스탈 리포트를 사용하는 방법과
또하나는 sql server reporting 을 이용하는 방법으로 압축이 되었는데 기존 php 로만 가지고
pdf 를 만드는 과정에서 너무 진이 빠져서 귀찮니즘으로 인해 안할까도 했지만 소주한잔 들이키고
2틀만에 테스트를 끝냈다.
php 를 가지고 크리스탈리포트를 쓰는사람이 과연 우리나라에 있을까? 라고도 생각을 해봤는데
그건 잘모르겠고 외국 싸이트 뒤져보니 분명 나같은사람이 꼭 있었다. ㅋㅋ(왠지 모를 동종감?)
일단 사용방법은 php 를 통해서 COM 객체를 사용하여 쓰는 방법인데 왠걸 크리스탈 돈내야 된다는걸 잠시 잊고 있었다. 예전에 한 3년전에 asp.net 으로 프로젝트하면서 리포팅도 한적이 있었는데
그때는 .net 에 기본 포함되어있는 크리스탈 리포트 컨트롤 가지고 했었고 무료였는데 이건아니였다. -.-; 대략 난감.... 결국 테스트만 해보고 패쑤~
나머지 하나 sql  리포팅... 역시 이것또한 무료는 아니다. 하지만 우리는
sbs 서버를 구입해서 사용하고 있고 sql 리포팅도 제공이 되어 사용가능으로 확정!!
결국 이걸로 만들게 되었는데.... sql 리포팅에 대해 따로 설명은 하지 않겠다.
어짜피 도찐 개찐이라고 해야 될까? 크리스탈이나, 오즈 툴이나, sql 리포팅이나 사용방법은
도찐 개찐이기에... 결국 sql server reporting 을 이용해서 보고서 레포팅을 만들고
php와 연개를 해서 화면에 뿌려주고 막바로 pdf 로 날리는데 성공했다.
다행인것이 아주? 깔끔하게 잘 나와 주었다.
결국 2주간 연속 삽질의 고난끝에...T_T

'프로그래밍 > PHP' 카테고리의 다른 글

php 좀 더 나은 퍼포먼스를 위하여  (0) 2008.06.22
php 기본참고사항  (0) 2008.06.22
이미지 워터마크 구현 함수  (0) 2008.06.22
게시판 DB 구성 방법중 1개  (0) 2008.06.22
php-다중 연결 소켓 통신(1)  (0) 2008.06.22
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크