2017-11-27 17 views
1

다른 PDF 문서에 포함하기 위해 SVG 파일을 PDF으로 변환하려고합니다. 바코드 변환기를 사용하여 SVG의 바이트를 전달하고 PDF의 데이터를 다시 가져옵니다.Apache Batik SVG에서 PDF로 - 출력 PDF가 잘못되었습니다. 크기

width="602.8" height="763.8" 

SVG에서 생성 된 출력 PDF 파일 그러나 작은 :

내 주요 PDF 문서를 모두 트랜스 코더에 전달 된 SVG 파일의 크기를 가지고있다. 이 때문에 주 문서에 포함 된 SVG PDF는 기본 PDF의 사용 가능한 공간을 모두 차지하지 않으므로 크기가 더 작기 때문에 기대할 수 있습니다. 출력 PDF가 주 문서/입력 SVG의 동일한 크기를 갖도록하려면 어떻게해야합니까?

+0

pdf는 72dpi로 렌더링되지만 pdf 형식은 벡터입니다. 그래서 크기를 조정할 수 있습니다. 품질은 동일 할 것이다. –

답변

1

그래서 좀 더 연구를 한 후 해결책을 찾았습니다. 우리는 PDFBox를 PDF 조작 도구로 사용하고 있습니다.이 도구는 기본적으로 문서에 대해 72의 DPI를 사용합니다.

반면에 바틱은 SVG를 PDF 파일로 트랜스 코딩 할 때 96의 DPI를 사용합니다. 그러면 출력 파일이 주 PDFBox 생성 문서보다 약간 작게됩니다. Batik을 기본적으로 PDFBox를 지원하는 DPI로 전환하려면 픽셀을 96dpi에서 72dpi로 mm 변환으로 변경해야합니다. 다음과 같이

우리는 우리의 PDFTranscoder에 트랜스 코딩 힌트를 추가 할 수 있습니다

transcoder.addTranscodingHint(PDFTranscoder.KEY_PIXEL_UNIT_TO_MILLIMETER, 
(25.4f/72f)); 

(25.4f/72F)가 72dpi 같다. 이것은 96dpi (25.4f/96f)의 기본 dpi를 대체합니다