GhostScript를 사용하여 PDF의 파일 크기를 줄이려고합니다. 일반적으로 다음과 같이 작동합니다.
gswin32c -sDEVICE=pdfwrite -sOutputFile=out.pdf in.pdf
북마크, 주석 등을 제거한다고 생각합니다.
일부 PDF에서는 빈 PDF로 끝납니다. 다음과 같은 결과가 나타납니다.
GPL Ghostscript 9.04 (2011-08-05)
Copyright (C) 2011 Artifex Software, Inc. All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Error: /rangecheck in --run--
Operand stack:
15 0 15 --nostringval-- 15
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-
- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- fa
lse 1 %stopped_push 1926 1 3 %oparray_pop 1925 1 3 %oparray_
pop 1909 1 3 %oparray_pop --nostringval-- --nostringval-- --nostri
ngval-- --nostringval-- --nostringval-- --nostringval--
Dictionary stack:
--dict:1166/1684(ro)(G)-- --dict:1/20(G)-- --dict:82/200(L)-- --dict:82
/200(L)-- --dict:108/127(ro)(G)-- --dict:291/300(ro)(G)-- --dict:22/30(L)-
-
Current allocation mode is local
GPL Ghostscript 9.04: Unrecoverable error, exit code 1
오류 메시지는 특별히 도움이되지 않습니다. 이 문제를 해결하는 방법에 대한 제안 사항이 있습니까?
답변
pdfwrite 이외의 장치를 사용하여 시작하십시오. 인수없이 Ghostscript를 시작한 다음 (Windows 버전 gswin32 사용) 파일을 끌어다 놓을 수 있습니다. 결과가 표시되는 창이 열립니다.
그것이 작동한다면 아마도 pdfwrite에서 버그를 발견했을 것입니다. 그렇지 않으면 Ghostscript 버그이거나 PDF가 어떤 식 으로든 유효하지 않은 것입니다. Acrobat이 열리면 유효하지 않습니다. Acorbat은 많은 깨진 PDF 파일을 엽니 다 ….
오류 메시지 는 PostScript를 사용하는 사람들에게 도움이됩니다. 😉 그렇지 않은 사람들에게는 ‘무슨 일이 발생했습니다 ‘를 의미 하지만 PostScript를 이해하지 못하면 예상 할 수있는 가장 유용한 오류에 관한 것입니다. 이 경우 피연산자가 연산자의 허용 범위를 벗어 났음을 알려줍니다.
당신은 -dPDFDEBUG
PDF 파일의 어떤 객체가 문제를 일으켰는지 알려줄 것입니다. 그러나 PDF를 잘 모르면 아마 도움이되지 않을 것입니다.
가장 좋은 방법은 http://bugs.ghostscript.com 에서 버그 보고서를 여는 것입니다. 문제가되는 PDF 파일을 첨부하고 문제를 표시하는 명령 줄을 제공해야합니다. 디스플레이 장치 에 표시되는 경우 (예 : gswin32c.exe
파일을 끌어서 놓기위한 인수없이 시작할 때 열리는 창 ) pdfwrite가 아닌 해당 명령 줄을 제공하십시오. 가정은 그 장치가 다음이 쓰기에서의 문제으로, pdfwrite 경우 아마이 없습니다.
pdfwrite는 단순히 주석과 책갈피를 제거 할뿐만 아니라 PDF 파일을 그래픽 프리미티브로 완전히 해석 한 다음 해당 그래픽 프리미티브를 포함하는 새로운 PDF 파일을 만듭니다. 결과적으로 생성 된 PDF 파일의 내용이 원본의 내용과 유사하다는 보장은 없습니다. 모양이 일치해야하지만 객체는 다른 유형으로 변환 될 수 있습니다.
답변
KenS가 언급 한 것 외에도 XFA 주석 (Adobe LifeCycle으로 생성 된 PDF 양식) 은 Ghostscript 에서 지원되지 않으므로 이러한 항목 만 포함 된 파일은 gswin32c에서 처리 할 때 빈 파일로 표시 될 수 있습니다.
답변
사용 :
gswin64c -dQUIET -dBATCH -dNOPAUSE -dSAFER -dMaxSubsetPct = 100 -dPDFSETTINGS = / ebook -sDEVICE = pdfwrite -sOutputFile = outputfile.pdf inputfile.pdf
전자 책 대신 화면이나 프린터를 사용할 수 있습니다. 이미지의 해상도가 변경됩니다 (72 / 150 / 300dpi).
행운을 빕니다 😉