2015-01-27 4 views
0

크기와 너비가 다른 여러 pdf 파일이 있습니다. 이제이 파일의 첫 페이지에서 고정 크기의 미리보기 이미지를 만들고 싶습니다. 나는이이 명령을 사용하여 수행합니다GhostScript를 사용하여 PDF에서 이미지를 만들 때 이미지를 중앙에 배치하는 방법

gs -dNOPAUSE -sDEVICE=jpeg -dFirstPage=1 -dLastPage=1 -sOutputFile=d:\test\a.jpeg -dJPEGQ=100 -g509x750 -dUseCropBox=true -dPDFFitPage=true -q d:\test\a.pdf -c quit 

원본 파일은 같은 크기이어야 서로 다른 너비와 높이 만 축소판이기 때문에을의 오른쪽에 흰색 여백이있을 것 또는 최고의 축소 이미지. 하지만 같은 여백 (Windows 탐색기에 표시된 축소판 그림처럼) 썸네일 상단 및 하단 (또는 오른쪽 및 왼쪽)에 갖고 싶습니다.

GhostScript를 사용하여 수행 할 수있는 방법이 있습니까?

답변

0

예 (단 하나의 스위치가 아닌 -dPDFFitPage 사용).

당신이 중 하나 상단 또는 출력의 오른쪽에 흰색 여백을 가지게됩니다 PDFFitPage는 isomorphicallly 내용 (각 방향으로, 즉 같은)를 확장합니다.

콘텐츠를 중앙에 배치하려면 PDFFitPage의 기능을 복제하고 원점을 x 또는 y 방향으로 변환 한 다음 공간의 남은 방향으로 '초과'의 절반만큼 변환해야합니다. ,

//systemdict /PDFFitPage known { 
    PDFDEBUG { (Fiting PDF to imageable area of the page.) = flush } if 
    currentpagedevice /.HWMargins get aload pop 
    currentpagedevice /PageSize get aload pop 
    % Adjust PageSize and .HWMargins for the page portrait/landscape orientation 

가 최대한 멀리 볼 수 있음 :

당신은/pdf_PDF2PS_matrix 및 찾아, /ghostpdl/gs/Resource/Init/pdf_main.ps에서 스케일링을 수행하는 코드를 찾을 수 있습니다 현재의 구현은 이미 출력을 중심으로합니다 :

% stack: savedCTM <pdfpagedict> [Box] scale XImageable YImageable XBox YBox 
3 index 2 index 6 index mul sub 2 div 3 index 2 index 7 index mul sub 2 div 
PDFDEBUG { ( Centering translate by [) print 1 index =print (,) print dup =print (]) = flush } if 
translate pop pop pop pop 
+0

핏빛! 나는 버전 8.7.1을 사용하고 있었다. 이 문제는 현재 버전 (9.15)에서 수정되었습니다. 감사합니다. – mohsenof

관련 문제