2009-05-07 7 views
0

좋아요, 여기 내 문제는 다음과 같습니다.Java에서 FOP 이미지 크기 조정 문제

FOP를 사용하여 "예쁜"보고서 출력을 만듭니다. 사용자가 파일을 원한다면 pdf 옵션을 사용하고, 미리보기를 위해 AWT를 사용하고, 미리보기를 위해 -print 옵션을 사용합니다. 우리는 FOP 0.25.x를 사용하고 있습니다. 완전히 새로운 버전이 아니지만, 0.95 로의 업그레이드는 필연적으로 수행하고 싶지 않은 중요한 작업으로 보입니다.

어쨌든 ID 카드 (FOP -print 옵션을 통해 생성)를 ID 카드 프린터로 인쇄 할 때 카드의 이미지 (직원 사진)에 손상이있는 것으로 나타났습니다. 녹색과 적색 점들과 선들처럼. HP 컬러 레이저젯 중 하나에 똑같은 인쇄 요청을 보내면 인쇄가 잘된다는 것도 발견했습니다. 낯설게하려면 FOP를 사용하여 ID 카드의 PDF를 만든 다음 카드 프린터의 Acrobat Reader를 통해 인쇄하면 잘 인쇄됩니다.

결국 이미지 크기 조정과 관련이 있음을 발견했습니다. 우리는 600px의 높은 이미지를 120px 크기로 스케일링했습니다. 제가 이미지를 아래로 감추었을 때, 그것들을 반으로 줄이면, 부패가 눈에 띄게 떨어졌습니다. 마찬가지로, 이미지를 업 사이징 할 때 부패가 커졌습니다.

내 질문 : 아무도 여기에 무슨 일이 일어나고 있는지 아무 생각이 없습니까? 아니면 그런 일이 생겨 났을까요? 내가 왜 이런 일을 알고하지 않기 때문에

, 나는 근본 원인을 해결하는 방법을 몰라,하지만 난 어떤 다양한 해결 방법을 통해 일하고했습니다

1) 사용 FOP는 PDF 파일을 만들 수 자바를 통해 인쇄 할 수 있습니다. 이것은 분명한 대답처럼 보입니다. 그러나 일부 인터넷 검색은 자바를 통해 PDF를 인쇄하는 것이 쉽지 않은 것으로 나타났습니다. 나는 java.net에서 PDF Renderer 프로젝트를 보았지만 하나의 매우 특정한 애플리케이션에 대해서는 꽤 큰 것처럼 보인다.

2) 이미지를 FOP로 보내기 전에 크기를 조정하십시오. 이것은 또한 매우 단순 해 보였습니다. 그러나 우리의 다양한 사용자들은이 id 카드에 대한 스타일 시트를 설정할 수 있지만 "pt"를 사용하고 "in"크기를 정하는 것은 꽤 일반적인 것처럼 보입니다 ... 나는 어떤 좋은 방법을 알지 못합니다. 그것을 픽셀 크기 조정에 매핑합니다.

누군가가 근본 원인에 대한 통찰력을 가지고 있다면, 이러한 해결 방법을 작동시키는 방법 및/또는 다른 생각을하면 내 빚을지게 될 것입니다.

답변

0

내가 원래 질문에서 언급 한 두 번째 일을 끝냈습니다. FOP에주기 전에 크기를 조정하십시오. 프린트 할 dpi를 검색하여 픽셀 크기 조정을 위해 몇 가지 연산을 수행 할 수 있음을 발견했습니다. 내 모든 테스트에서 완벽하게 작동하는 것 같지만 실제 해결책이 아니라 적절한 해결 방법입니다.

0

대부분의 특정 설명 :
이미지가 손상 되었습니까? 그것은 버그입니다.

0.95를 사용하지 않는 이유는 무엇입니까? 조만간 업그레이드를해야하며, Apache 컨소시엄은 0.25x 버전에서 버그를 수정하지 않을 것입니다.

앞으로 발생할 수있는 모든 버그에 대한 대안을 찾기를 희망 할 수 없습니다.

+0

업그레이드하지 않는 이유는 새 버전의 소프트웨어에서는 완전히 다른 도구 (C# 기반, 어느 것이 기억이 안 나는지)를 사용하기 때문에 실제로 업그레이드 할 필요가 없습니다 ... 특히 0.25에서 0.95로 바뀌었기 때문입니다. – Morinar