PDFSizeOpt는 대규모 PDF 파일을 시각적 품질을 줄이거 나 대화식 기능 (예 : 하이퍼 링크)을 제거하지 않고 작은 PDF 파일로 변환하는 프로그램입니다. 보다 구체적으로, PDFSizeOpt는 Tex 및 Latex 문서에서 생성 된 PDF에 중점을 둔 PDF 파일의 크기를 최적화하기위한 무료 크로스 플랫폼 명령 줄 애플리케이션 (Linux, Windows, MacOS 및 UNIX) 및 모범 사례 모음입니다. PDFSizeOpt는 파이썬으로 작성되었으므로 약간 느리지 만, 더 빠른 작업 (C, C ++ 및 Java) 의존성에 대한 일부 무거운 작업을 오프로드합니다.
PDFSizeOpt는 PDF와 작동하지 않습니까? 문제를 여기에보고하십시오 : https://github.com/pts/pdfsizeopt/issues
pdfsizeopt : https://flattr.com/submit/auto?user_id=pts&url=https://github.com/pts/pdfsizeopt의 저자에게 기부를 보내십시오
PDFizeOpt를 처음 시도한 경우 다음과 같은 지침을 따르십시오. (이 섹션은 2023-02-15에 업데이트되었습니다.)
X86 프로세서가있는 최신 Linux 및 Windows 시스템에서 PDFSizeOpt를 쉽게 설치하고 실행할 수 있습니다. 이러한 시스템이있는 경우 다음 섹션 중 하나 ( Linux의 설치 지침 및 사용법 또는 설치 지침 및 Windows의 사용 )로 직접 이동하십시오. 5 분도 채 걸리지 않습니다.
Mac에 PDFSizeOpt를 설치하고 실행하기 쉽습니다 (Intel X86 프로세서 및 Apple Silicon이있는 ARM 프로세서 모두 지원됩니다). 그러한 시스템이있는 경우, Docker를 사용하지 않음 (Docker를 사용 하지 않음 ) 에서 섹션 설치 지침 및 사용법 으로 직접 이동하십시오. 5 분도 채 걸리지 않습니다.
또는 다음 시스템에서 Docker 내에서 PDFSizeOpt를 실행할 수 있습니다. Linux AMD64, MACOS 64 비트 인텔 X86 (AMD64, X86_64), MACOS 64 비트 암 (Apple Silicon, EG M1 또는 M2 칩). 그런 다음 Linux 및 MacOS의 Docker와 함께 섹션 설치 지침 및 사용법 으로 직접 이동하십시오. 마지막 단계는 5 분도 채 걸리지 않습니다.
Linux, Windows 또는 MacOS (인텔 프로세서가있는 컴퓨터) 이외의 운영 체제를 사용하는 경우 PDFSizeOpt를 시도하는 가장 쉬운 방법은 Linux, Windows 또는 MacOS로 친구의 컴퓨터를 빌리거나 클라우드에서 Linux VM을 빌리는 것입니다. 다른 종류의 시스템에서 pdfsizeopt를 실행하기가 어려운 이유는 pdfsizeopt가 필요한 종속성을 가지고 있기 때문에 일부는 이전 버전 (예 : Python 2.4-2.7, Ghostscript 9.05)이므로 올바른 버전을 컴파일해야합니다. 경험이 풍부한 해커에게도 몇 시간이 걸리고 많은 실망스러운 시행 착오가 소요될 수 있습니다.
PDFSizeOpt를 다른 시스템에 포트하고 설치하기 쉽도록 기술적으로 가능하지만 PDFSizeOpt의 저자는 그러한 포트를 작성하고 유지 관리 할 자유 시간이 없습니다. FYI로서 Apple Silicon 포팅에 대한 #154를 참조하십시오.
설치 프로그램이 없으므로 다운로드 및 설치하려면 명령 줄에서 일부 명령을 실행해야합니다. pdfsizeopt는 명령 줄 전용 응용 프로그램이며 GUI가 없습니다.
Linux 시스템 (아키텍처 i386 또는 AMD64 포함)에 pdfsizeopt를 설치하려면 터미널 창을 열고이 명령을 실행하십시오 (주요 $
없이).
$ mkdir ~/pdfsizeopt
$ cd ~/pdfsizeopt
$ wget -O pdfsizeopt_libexec_linux.tar.gz https://github.com/pts/pdfsizeopt/releases/download/2023-04-18/pdfsizeopt_libexec_linux-v9.tar.gz
$ tar xzvf pdfsizeopt_libexec_linux.tar.gz
$ rm -f pdfsizeopt_libexec_linux.tar.gz
$ wget -O pdfsizeopt.single https://raw.githubusercontent.com/pts/pdfsizeopt/master/pdfsizeopt.single
$ chmod +x pdfsizeopt.single
$ ln -s pdfsizeopt.single pdfsizeopt
PDF를 최적화하려면 다음 명령을 실행하십시오.
~/pdfsizeopt/pdfsizeopt input.pdf output.pdf
입력 PDF에 많은 이미지 나 큰 이미지가 있으면 PDFSizeOpt는 매우 느릴 수 있습니다. 가장 느린 이미지 최적화 방법 인 PNGout을 비활성화하여 속도를 높일 수 있습니다.
~/pdfsizeopt/pdfsizeopt --use-pngout=no input.pdf output.pdf
pdfsizeopt는 출력 디렉토리에 많은 임시 파일 (PSOTMP.*)을 생성하지만 그 자체로는 정리합니다.
현재 디렉토리 외부에서 PDF를 최적화 할 수 있습니다. 이렇게하려면 명령 줄에 PathName (디렉토리 이름 포함)을 지정하십시오.
위의 명령은 모든 종속성 (Python 및 Ghostscript 포함)을 다운로드합니다. 패키지 관리자와 함께 일부 의존성을 설치할 수는 있지만 이러한 단계는 대안으로 간주되고 더 복잡해 지므로 여기에서 다루지 않습니다.
PDFSizeOpt는 X86 및 AMD64 Linux 시스템에서 완벽하게 작동합니다. PDFSizeOpt는 정적으로 연결된 X86 실행 파이브 만 사용하기 때문에 LIBC, Linux 배포 등에 제한이 없으며 시스템에서 외부 명령 (PDFSizeOpt.Single 및 PDFSIZEOPT_LIBEXEC/*)을 사용하지 않기 때문입니다. PDFSizeOpt는 Linux 에뮬레이션 레이어가 활성화 된 X86 FreeBSD 시스템에서도 완벽하게 작동합니다.
~/pdfsizeopt/pdfsizeopt를 입력하지 않으려면 경로에 "$ home/pdfsizeopt"를 추가하십시오 (아마도 ~/.bashrc에서) 새 터미널 창을 열면 pdfsizeopt 명령이 모든 디렉토리에서 작동합니다.
원하는대로 pdfsizeopt를 ~/pdfsizeopt 이외의 디렉토리에 넣을 수도 있습니다.
또한 추가 이미지 imptimizers를 설치할 수 있습니다 (아래 이미지 최적화 섹션 참조).
$ cd ~/pdfsizeopt
$ wget -O pdfsizeopt_libexec_extraimgopt_linux-v3.tar.gz https://github.com/pts/pdfsizeopt/releases/download/2017-01-24/pdfsizeopt_libexec_extraimgopt_linux-v3.tar.gz
$ tar xzvf pdfsizeopt_libexec_extraimgopt_linux-v3.tar.gz
$ rm -f pdfsizeopt_libexec_extraimgopt_linux-v3.tar.gz
설치 프로그램이 없으므로 다운로드 및 설치하려면 명령 줄 (검은 색 명령 프롬프트 창)에서 일부 명령을 실행해야합니다. pdfsizeopt는 명령 줄 전용 응용 프로그램이며 GUI가 없습니다.
폴더 c : pdfsizeopt를 만들고, https://github.com/pts/pdfsizeopt/releases/download/2023-04-18/pdfsizeopt_win32exec-v9.zip을 다운로드하고 폴더 C : pdfsizeopt, 폴더에 내용을 추출하십시오. C : pdfsizeopt pdfsizeopt.exe 파일이 있습니다.
https://raw.githubusercontent.com/pts/pdfsizeopt/mas
PDF를 최적화하려면 다음 명령을 실행하십시오.
C:pdfsizeoptpdfsizeopt input.pdf output.pdf
검은 색 명령 프롬프트 창인 명령 줄에서 시작 메뉴 / run / cmd.exe로 시작하거나 시작 메뉴에서 명령 프롬프트를 찾을 수 있습니다.
(타이핑 중에 파일 이름 완성을 얻으려면 탭을 누릅니다.)
입력 파일 이름을 전체 PathName으로 입력해야하므로 짧은 이름 (예 : C : PDFS)의 디렉토리를 작성하고 입력 PDF를 먼저 복사하는 것이 좋습니다.
입력 PDF에 많은 이미지 나 큰 이미지가 있으면 PDFSizeOpt는 매우 느릴 수 있습니다. 가장 느린 이미지 최적화 방법 인 PNGout을 비활성화하여 속도를 높일 수 있습니다.
C:pdfsizeoptpdfsizeopt --use-pngout=no input.pdf output.pdf
c : pdfsizeopt pdfsizeopt 입력을 피하려면 시스템 경로에 c : pdfsizeopt를 추가하고 새 명령 프롬프트 창을 열면 pdfsizeopt
명령이 모든 디렉토리에서 작동합니다.
환경에 따라 Accented 캐릭터가있는 파일 이름은 PDFSizeOpt의 Windows 버전에서 작동하지 않을 수 있습니다. 안전하게 재생하려면 입력 및 출력 파일에 문자, 숫자, 밑줄 (_), Dash (-), Dot (.) 및 Plus (+)가있는 이름이 있는지 확인하십시오. 백 슬래시 ()와 슬래시 (/)는 둘 다 디렉토리 분리기로 괜찮습니다.
파일 이름과 PathName의 공간은 작동하지만 이름 주위에 이중 인용문 ( ")을 넣어야합니다.
구두점 문자 (예 : Double Quote ( "), 질문 마크 (?) 및 Asterisk ( ) 및 인쇄 할 수없는 문자 (예 : Newline)가있는 파일 이름은 Windows에서 작동하지 않습니다. Windows는 이러한 문자를 지원하지 않기 때문입니다 ([[[ x00 .. x1f " : <>? | x7f] 파일 이름으로 / 및 는 디렉토리 분리기로 사용합니다.
또한 pdfsizeopt를 c : pdfsizeopt 이외의 디렉토리에 넣을 수도 있지만 폴더 이름에 공백이 있거나 악센트가있는 경우 작동하지 않습니다.
PDFSizeopt는 와인에서 완벽하게 작동합니다 (Ubuntu Lucid에서 Wine-1.2로 테스트하고 Ubuntu Trusty의 Wine-1.6.2로 테스트). 기본적으로 실행하는 것보다 약간 느립니다 (Linux 또는 UNIX 프로그램).
이 지침은 다음 시스템에서 작동합니다. Linux AMD64, MACOS 64 비트 인텔 X86 (AMD64, X86_64), MACOS 64 비트 암 (Apple Silicon, EG M1 또는 M2 Chip). Docker가 설치되고 작동하는 한 Linux 또는 MacOS 버전은 중요하지 않습니다 (MacOS Leopard 10.5와 같은 오래된 시스템도 작동합니다).
Docker Image PTSPTS/PDFSizeOpt의 프로그램은 Linux i386 (32 비트 인텔 X86) 용으로 편집되었으며, 이들 바이너리는 Apple Silicon과 함께 위에서 언급 한 모든 플랫폼에서 작동합니다. (2023-02-21에서 테스트.)
설치 프로그램이 없으므로 다운로드 및 설치하려면 명령 줄에서 일부 명령을 실행해야합니다. pdfsizeopt는 명령 줄 전용 응용 프로그램이며 GUI가 없습니다.
먼저이 명령을 실행하고 마지막에 OK를 확인하여 Docker를 올바르게 설치했는지 확인하십시오.
docker version && echo OK
괜찮지 않으면`docker '명령을 찾을 수 없었기 때문에 Docker는 컴퓨터에 설치되지 않습니다. 설치 지침 (2023-02-22) :
Linux에 Docker를 설치하려면 Docker Engine (https://docs.docker.com/engine/install/, 서버 섹션 내) 또는 Docker Desktop (https://docs.docker.com/desktop/ 설치/Linux-Install/). 그들 중 누구라도 작동 할 것입니다.
MacOS에 Docker를 설치하려면 Docker Desktop (https://docs.docker.com/desktop/install/mac-install/)을 설치하십시오.
그런 다음 (MacOS에서) 다음 명령을 실행하여 docker
명령을 경로에 추가하십시오 (오타를 피하기 위해 복사하여, 입력하지 마십시오) :
(echo; echo 'export PATH="/Applications/Docker.app/Contents/Resources/bin:$PATH"') >>~/.profile
그런 다음 (MACOS에서) 터미널 앱을 닫고 다시 열어서 (~/.profile로 변경되도록).
설치 후 위의 docker version
명령을 다시 시도하십시오.
pdfsizeopt의 이전 Docker 이미지를 제거하십시오.
docker image rm ptspts/pdfsizeopt
pdfsizeopt의 모든 종속성을 연습하는 테스트 최적화 실행을 수행하십시오.
curl -L -o deptest.pdf https://github.com/pts/pdfsizeopt/raw/master/deptest/deptest.pdf
docker run -v "$PWD:/workdir" -u "$(id -u):$(id -g)" --rm -it ptspts/pdfsizeopt pdfsizeopt deptest.pdf
(무해한) 경고 메시지와 같은 경우
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
, 다시 가져오고 싶지 않은 다음 -it
다음에 --platform linux/amd64
추가하십시오.
docker run -v "$PWD:/workdir" -u "$(id -u):$(id -g)" --rm -it --platform linux/amd64 ptspts/pdfsizeopt pdfsizeopt deptest.pdf
PDF를 최적화하려면이 명령을 실행하십시오.
docker run -v "$PWD:/workdir" -u "$(id -u):$(id -g)" --rm -it ptspts/pdfsizeopt pdfsizeopt input.pdf output.pdf
입력 PDF에 많은 이미지 나 큰 이미지가 있으면 PDFSizeOpt는 매우 느릴 수 있습니다. 가장 느린 이미지 최적화 방법 인 PNGout을 비활성화하여 속도를 높일 수 있습니다.
docker run -v "$PWD:/workdir" -u "$(id -u):$(id -g)" --rm -it ptspts/pdfsizeopt pdfsizeopt --use-pngout=no input.pdf output.pdf
pdfsizeopt는 출력 디렉토리에 많은 임시 파일 (PSOTMP.*)을 생성하지만 그 자체로는 정리합니다.
현재 디렉토리 외부에서 PDF를 최적화 할 수 있습니다. 이렇게하려면 명령 줄에 PathName (디렉토리 이름 포함)을 지정하십시오.
긴 명령을 입력하지 않으려면 실행하십시오
(echo '#! /bin/sh'; echo 'exec docker run -v "$PWD:/workdir" -u "$(id -u):$(id -g)" --rm -it ptspts/pdfsizeopt pdfsizeopt "$@"') >pdfsizeopt && chmod 755 pdfsizeopt
그런 다음 PDFSizeOpt 스크립트를 경로에 복사 한 다음 새 터미널 창을 열면 이제이 명령이 PDF를 최적화하기 위해 작동합니다.
pdfsizeopt input.pdf output.pdf
ptspts/pdfsizeopt docker 이미지는 거의 거의 업데이트되지 않습니다. 보다 최신 버전의 pdfsizeopt를 사용하려면이 명령을 실행하여 다운로드하십시오.
curl -L -o pdfsizeopt.single https://raw.githubusercontent.com/pts/pdfsizeopt/master/pdfsizeopt.single
chmod +x pdfsizeopt.single
그런 다음이 명령을 실행하여 PDF를 최적화하십시오.
docker run -v "$PWD:/workdir" -u "$(id -u):$(id -g)" --rm -it ptspts/pdfsizeopt ./pdfsizeopt.single --use-pngout=no input.pdf output.pdf
Linux에 추가 이미지 최적화기가 포함되어 있으려면 위 명령에서 ptspts/pdfsizeopt 대신 ptspts/pdfsizeopt-with-extraimgopt를 사용하십시오. 예:
docker run -v "$PWD:/workdir" -u "$(id -u):$(id -g)" --rm -it ptspts/pdfsizeopt-with-extraimgopt pdfsizeopt --use-image-optimizer=sam2p,jbig2,pngout,zopflipng,optipng,advpng,ECT input.pdf output.pdf
이 지침은 MACOS Catalina 10.15 (및 오래된 MacOS Snow Leopard 10.6)를 사용하여 MAC에서 작동합니다. MacOS Ventura 13 (및 최신), 64 비트 암 프로세서 (Apple Silicon) 또는 64 비트 인텔 X86 (64 비트 인텔 X86). X86_64, AMD64) 프로세서. 이 프로그램은 64 비트 인텔 X86 프로세서를 위해 편집되었으며 MACOS의 Rosetta 2 에뮬레이션을 사용하여 64 비트 암 프로세서에서도 작동합니다. 이 지침은 64 비트 인텔 X86 (X86_64, AMD64) 프로세서 및 Apple Silicon (ARM 프로세서)을 갖춘 MacOS Ventura 13.3에서 테스트하고 작동하는 것으로 알려져 있습니다.
Mac OS X Leopard 10.5를 실행하는 이전 Mac이있는 경우 -Macos Mojave 10.14를 사용하는 경우 구형 MACOS의 구역 설치 지침 및 사용법을 따르십시오.
이 지침은 아직 테스트되지 않았습니다. 진행 업데이트는 #154를 참조하십시오.
설치 프로그램이 없으므로 다운로드 및 설치하려면 명령 줄에서 일부 명령을 실행해야합니다. pdfsizeopt는 명령 줄 전용 응용 프로그램이며 GUI가 없습니다.
MacOS 시스템에 pdfsizeopt를 설치하려면 터미널 창을 열고 다음 명령을 실행합니다 (주요 $
없이).
$ mkdir ~/pdfsizeopt
$ cd ~/pdfsizeopt
$ curl -L -o pdfsizeopt_libexec_darwin.tar.gz https://github.com/pts/pdfsizeopt/releases/download/2023-04-18/pdfsizeopt_libexec_darwinc64-v9.tar.gz
$ tar xzvf pdfsizeopt_libexec_darwin.tar.gz
$ rm -f pdfsizeopt_libexec_darwin.tar.gz
$ curl -L -o pdfsizeopt.single https://raw.githubusercontent.com/pts/pdfsizeopt/master/pdfsizeopt.single
$ chmod +x pdfsizeopt.single
$ ln -s pdfsizeopt.single pdfsizeopt
pdfsizeopt의 모든 종속성을 연습하는 테스트 최적화 실행을 수행하십시오.
$ curl -L -o deptest.pdf https://github.com/pts/pdfsizeopt/raw/master/deptest/deptest.pdf
$ ~/pdfsizeopt/pdfsizeopt deptest.pdf
... 그리고 열린 (보기) deptest.pdf 및 해당 최적화 된 deptest.pso.pdf.
PDF를 최적화하려면 다음 명령을 실행하십시오.
~/pdfsizeopt/pdfsizeopt input.pdf output.pdf
입력 PDF에 많은 이미지 나 큰 이미지가 있으면 PDFSizeOpt는 매우 느릴 수 있습니다. 가장 느린 이미지 최적화 방법 인 PNGout을 비활성화하여 속도를 높일 수 있습니다.
~/pdfsizeopt/pdfsizeopt --use-pngout=no input.pdf output.pdf
또한 32 비트 Mac이있는 경우 PDFSizeOpt와 함께 번들로 연결된 PNGOUT는 작동하지 않으므로 (64 비트 Mac이 필요하기 때문). PNGout의 대안은 섹션 이미지 최적화기를 참조하십시오.
pdfsizeopt는 출력 디렉토리에 많은 임시 파일 (PSOTMP.*)을 생성하지만 그 자체로는 정리합니다.
현재 디렉토리 외부에서 PDF를 최적화 할 수 있습니다. 이렇게하려면 명령 줄에 PathName (디렉토리 이름 포함)을 지정하십시오.
위의 명령은 대부분의 종속성 (고스트 스크립트 포함이지만 Python 제외)을 다운로드합니다. 모든 것이 상자 밖에서 위에서 지시대로 작동해야합니다. 문제가 발생하면 https://github.com/pts/pdfsizeopt/issues에서 문제를보고하십시오.
~/pdfsizeopt/pdfsizeopt를 입력하지 않으려면 경로에 "$ home/pdfsizeopt"를 추가하십시오 (아마도 ~/.bashrc에서) 새 터미널 창을 열면 pdfsizeopt 명령이 모든 디렉토리에서 작동합니다.
원하는대로 pdfsizeopt를 ~/pdfsizeopt 이외의 디렉토리에 넣을 수도 있습니다.
이 지침은 Mac OS X Leopard 10.5를 실행하는 이전 Mac에서 작동해야하며 MacOS Mojave 10.14와 32 비트 또는 64 비트 인텔 X86 프로세서가 있습니다. 이 프로그램은 최소한 Mac OS X Snow Leopard 10.6 및 PNGOUT 도구를 제외하고는 32 비트 인텔 X86 (i386) 프로세서 (및 MacOS Mojave 10.14 이하의 64 비트 인텔 프로세서에서도 작동)를 위해 편집됩니다. 64 비트 인텔 프로세서.
설치 프로그램이 없으므로 다운로드 및 설치하려면 명령 줄에서 일부 명령을 실행해야합니다. pdfsizeopt는 명령 줄 전용 응용 프로그램이며 GUI가 없습니다.
이전 MACOS 시스템에 pdfsizeopt를 설치하려면 터미널 창을 열고 다음 명령을 실행합니다 (주요 $
없이).
$ mkdir ~/pdfsizeopt
$ cd ~/pdfsizeopt
$ curl -L -o pdfsizeopt_libexec_darwin.tar.gz https://github.com/pts/pdfsizeopt/releases/download/2023-04-18/pdfsizeopt_libexec_darwin-v9.tar.gz
$ tar xzvf pdfsizeopt_libexec_darwin.tar.gz
$ rm -f pdfsizeopt_libexec_darwin.tar.gz
$ curl -L -o pdfsizeopt.single https://raw.githubusercontent.com/pts/pdfsizeopt/master/pdfsizeopt.single
$ chmod +x pdfsizeopt.single
$ ln -s pdfsizeopt.single pdfsizeopt
pdfsizeopt의 모든 종속성을 연습하는 테스트 최적화 실행을 수행하십시오.
$ curl -L -o deptest.pdf https://github.com/pts/pdfsizeopt/raw/master/deptest/deptest.pdf
$ ~/pdfsizeopt/pdfsizeopt deptest.pdf
... 그리고 열린 (보기) deptest.pdf 및 해당 최적화 된 deptest.pso.pdf.
PDF를 최적화하려면 다음 명령을 실행하십시오.
~/pdfsizeopt/pdfsizeopt input.pdf output.pdf
입력 PDF에 많은 이미지 나 큰 이미지가 있으면 PDFSizeOpt는 매우 느릴 수 있습니다. 가장 느린 이미지 최적화 방법 인 PNGout을 비활성화하여 속도를 높일 수 있습니다.
~/pdfsizeopt/pdfsizeopt --use-pngout=no input.pdf output.pdf
또한 32 비트 인텔 X86 프로세서가있는 Mac이있는 경우 PDFSizeOpt와 함께 번들로 연결된 PNGOUT는 작동하지 않으므로 (64 비트 프로세서가 필요하기 때문에) 강제 -pngout = no. PNGout의 대안은 섹션 이미지 최적화기를 참조하십시오.
pdfsizeopt는 출력 디렉토리에 많은 임시 파일 (PSOTMP.*)을 생성하지만 그 자체로는 정리합니다.
현재 디렉토리 외부에서 PDF를 최적화 할 수 있습니다. 이렇게하려면 명령 줄에 PathName (디렉토리 이름 포함)을 지정하십시오.
위의 명령은 대부분의 종속성 (고스트 스크립트 포함이지만 Python 제외)을 다운로드합니다. 모든 것이 상자 밖에서 위에서 지시대로 작동해야합니다. 문제가 발생하면 https://github.com/pts/pdfsizeopt/issues에서 문제를보고하십시오.
~/pdfsizeopt/pdfsizeopt를 입력하지 않으려면 경로에 "$ home/pdfsizeopt"를 추가하십시오 (아마도 ~/.bashrc에서) 새 터미널 창을 열면 pdfsizeopt 명령이 모든 디렉토리에서 작동합니다.
원하는대로 pdfsizeopt를 ~/pdfsizeopt 이외의 디렉토리에 넣을 수도 있습니다.
설치 프로그램이 없으므로 다운로드 및 설치하려면 명령 줄에서 일부 명령을 실행해야합니다. pdfsizeopt는 명령 줄 전용 응용 프로그램이며 GUI가 없습니다.
PDFSizeOpt는 Linux 에뮬레이션 레이어가 활성화 된 X86 FreeBSD 시스템에서 완벽하게 작동합니다. 따라서 FreeBSD 시스템에서 Linux Emulation 레이어를 활성화 한 다음 Linux에서 설치 지침 및 사용법을 따르십시오.
우수하게, 일반 UNIX의 설치 지침 및 사용법을 따라갈 수 있지만, 많은 종속성을 별도로 설치해야하므로 소스에서 일부를 컴파일해야하기 때문에 더 많은 작업이 필요합니다 (불편하고 오류가 발생하기 쉽습니다).
PDFSizeOpt에는 Python 2.4--2.7 및 GhostScript 9.05가 매우 오래되어 현대 시스템에 설치하기가 어렵 기 때문에 2023 년에는이 작업을 수행하는 것이 점점 어려워지고 있습니다.
설치 프로그램이 없으므로 다운로드 및 설치하려면 명령 줄 (검은 색 명령 프롬프트 창)에서 일부 명령을 실행해야합니다. pdfsizeopt는 명령 줄 전용 응용 프로그램이며 GUI가 없습니다.
pdfizeopt는 파이썬 스크립트입니다. Python 2.4, 2.5, 2.6 및 2.7에서 작동하지만 Python 3.x에서는 작동하지 않습니다). 따라서 먼저 파이썬을 설치하십시오.
pdfsizeopt라는 새 디렉토리를 만들고이 링크를 다운로드하십시오 : https://raw.githubusercontent.com/pts/pdfsizeopt/master/pdfsizeopt.single
PDFSizeOpt로 이름을 바꾸고 다음 명령을 실행하여 실행할 수 있습니다 (주요 $
없이).
$ cd pdfsizeopt
$ mv pdfsizeopt.single pdfsizeopt
$ chmod +x pdfsizeopt
Python 실행 파일이/usr/bin/python이 아닌 경우, 그에 따라 pdfsizeopt 스크립트에서 첫 번째 줄 ( #!
로 시작)을 편집하십시오.
시도해보십시오 :
$ ./pdfsizeopt --version
info: This is pdfsizeopt ZIP rUNKNOWN size=105366.
pdfsizeopt에는 많은 종속성이 있습니다. 전체 기능을 위해서는 모두가 필요합니다. 가능한 한 많이 설치하고 경로에 넣으십시오.
종속성 :
imgdataopt
프로그램 파일을 sam2p
(eg/usr/local/bin/sam2p)로 복사하십시오. 길. 설치할 수없는 경우 pdfsizeopt-do-optimize-Images = no를 사용하십시오. 일부 Linux 분포에는 SAM2P 바이너리가 있지만 너무 오래된 경향이 있습니다. 또는 SAM2P> = 0.49.3 + PNG22PNM도 IMGDATAOPT 대신 작동하지만 IMGDATAOPT 설치가 더 쉽습니다.설치 후 pdfsizeopt를 사용하십시오.
$ ./pdfsizeopt input.pdf output.pdf
PDFSizeOpt가 포함 된 디렉토리를 경로에 추가 할 수 있으므로 pdfsizeopt
명령은 모든 디렉토리에서 작동합니다.
pdfsizeopt는 다음 외부 도구를 사용하여 임베디드 PDF 파일의 이미지를 더 작게 만들 수 있습니다.
이미지 최적화기를 활성화하거나 비활성화하려면 다음과 같이 활성화하려는 모든 이미지 최적화기를 지정하십시오. --use-image-optimizer = optipng, jbig2. 또한 기본 PNGout도 비활성화됩니다.
또한 별도의 추가 -Suse-Image-Optimier = 플래그를 지정하여 사용자 정의 이미지 Optimizer 명령 패턴을 지정할 수도 있습니다.
--use-image-optimizer="optipng %(sourcefnq)s -o6 -fix -force %(optipng_gray_flags)s-out %(targetfnq)s"
항상 명령 패턴에서 %(targetfnq)를 지정해야합니다.
-debug-image-optomeizers = yes를 지정하여 현재 실행에 대한 이미지 최적화 (및 전체 명령 줄)를 확인하십시오.
시작시 PDFSizeOpt는 요청 된 이미지 최적화기를 사용할 수 있는지 확인하고 (프로그램 파일로) 일부 누락 된 경우 실패합니다. 누락 된 것들을 무시하려면-do-require-image-optomizers = no를 지정하십시오.
이미지 최적화기를 설치하고 경로에 추가하는 것은 (사용자의) 책임입니다. 위의 Windows 및 Linux의 설치 지침을 따르면 기본 이미지 최적화기 (SAM2P, JBIG2 및 PNGOUT)가 설치됩니다. Linux의 경우 추가 이미지 최적화기 (Zopflipng, Optipng, Advpng 및 Ect)를위한 설치 지침도 있습니다.
-do-Unify-fonts = no 및-dogrenate-all-fonts = no를 지정하십시오.
여전히 실패한 경우-do-optipize-fonts = no를 지정하십시오.
두 경우 모두 https://github.com/pts/pdfsizeopt/issues 에보 고하십시오
-do-optipize-images = no를 지정하십시오.
https://github.com/pts/pdfsizeopt/issues 에보 고하십시오
-use-pngout = no를 지정하십시오. 이것은 이미지의 가장 느린 최적화 단계 인 pngout을 비활성화합니다.
https://github.com/pts/pdfsizeopt/issues에보고하여 입력 PDF 파일과 PDFSizeOpt의 콘솔 출력을 첨부하십시오. 귀하의 보고서는 대단히 감사합니다.
pdfsizeopt가 예외가없는 예외를 종료하면 현재 디렉토리에 일부 임시 파일 (PSOTMP.*)이 남을 수 있습니다. 이 파일을 제거 할 수 있습니다.
PDFSizeOPT는 손상된 PDF 파일을 처리하는 데 탄력적이지 않습니다 (즉, PDF 표준을 준수하지 않는 파일). 따라서 pdfsizeopt가 실패하면 그 이유는 pdfsizeopt의 버그 또는 손상된 PDF 입력 파일 일 수 있습니다. 그럼에도 불구하고 문제를보고하십시오 (위 참조).
https://github.com/pts/pdfsizeopt/issues에보고하여 입력 PDF 파일과 출력 PDF 파일 (.pso.pdf) 및 PDFSizeOpt의 콘솔 출력을 첨부하십시오. 귀하의 보고서는 대단히 감사합니다.
파일 이름 또는 전체 PathName에 ASCII 문자 (AZ 및 AZ), 숫자 (0-9), 밑줄 (_), ASCII DASH (-),+(+), DOT (. ), backslash () 또는 슬래시 (/). 일반적 으로이 캐릭터는 작동하지 않습니다.
공백 및 탭 : 수정하기 쉽습니다. 파일 이름을 이중 인용문 ( ")으로 래핑합니다.
이중 인용문 ( ") : 이것은 일어날 수 없습니다. 인용문 ( "), 모든 이중 인용문 (")을 "로 바꾸고 (이전 교체와 병렬) 백 슬래시를 복제하고 이중 인용구를 대체하여 즉시 시퀀스 백 슬래시 ()와 이중 인용 (")을 대체합니다 ( ").
Newlines 및 기타 비 공간 공백 공백 : 작동하지 않습니다. Windows 명령 프롬프트 (CMD.Exe)는 이러한 문자가 명령 줄 인수에서 허용하지 않습니다. 또한 Windows는 파일 이름으로 허용하지 않습니다.
악센트 캐릭터 (예 : á 및 ő). 이 문자는 CommandLine에 지정된 PDF 파일 이름 또는 PDFSizeOpt의 전체 경로 이름에 작동하지 않습니다 (또는 활성 코드 페이지에 따라 일부 문자에 대해서만 작동 할 수 있습니다. 따라서 PDFSizeOpt에 C : 에 PDFSizeOpt를 설치하지 마십시오. bőr, 작동하지 않을 것입니다).
Accented Char Python은 외부 프로그램 (OS.System, OS.Popen, OS.Spawnl 및 Subprocess.Call)을 이름으로 악센트로 호출 할 수 없기 때문입니다. 단일 바이트 API를 사용하기 때문입니다.
ASCII 인쇄용이 아닌 모든 것 (33에서 126 사이의 코드, 포함) : 위에서 다루지 않으면 작동하지 않을 수 있습니다. 악센트 캐릭터에 대한 설명을 참조하십시오.
일부 파일 이름이 여전히 작동하지 않으면 해결 방법은 다음과 같습니다.
PDF 파일 이름의 악센트 캐릭터는 다음과 같은 방식으로 작동 할 수 있습니다 (PDFSizeOpt의 향후 개선 작업으로) :
pdfsizeopt.exe는 단일 바이트 API (getCommandlinea) 대신 16 비트 API (getCommandLinew)를 호출하여 인수를 얻습니다.
pdfsizeopt.exe는 논증에서 비 ASCII 문자를 피해야합니다 (예 : u+12ab)
pdfsizeopt.exe는 pdfsizeopt.single을 실행해야합니다.
.../pdfsizeopt_win32exec/pdfsizeopt_python.exe .../pdfsizeopt.single-args-u+ ...
pdfsizeopt python code는 -args-u+를 인식해야하며, 파일 이름을 찾을 때는 유니 코드로 변환해야합니다 (U+12ab를 제외한 ASCII를 유지함으로써). . 이러한 열린 (...)는 창에서 Python 2.6에서 작동합니다.
파일 이름을 표시 할 때 PDFSizeOpt Python 코드는 여전히 U+12AB 이스케이프와 함께 ASCII를 표시해야합니다. 따라서 Win32Console 모듈이 필요하지 않습니다. 따라서 FilEnames는 명령 프롬프트 창에 Leglible이지만 잘못된 (복사하지 않음)로 표시됩니다.
파일 이름은 자율적 인 임시 FIL 이름이며, 모든 ASCII이고 PDFSizeOPT 자체로가는 경로는 ASCII에 필요하기 때문에 모든 ASCII이기 때문에 모든 ASCII이기 때문에 모두 ASCII이기 때문에 모든 ASCII이기 때문에 도출 기능이 필요하지 않습니다.
pdfsizeopt.single의 경로 이름에있는 악센트 캐릭터는 이런 식으로 작업 할 수 있습니다 (PDFSizeOpt의 향후 개선 작업으로) :
위의 파일 이름에서 악센트 캐릭터를 먼저 수행하십시오.
pdfsizeopt.exe는 현재 디렉토리를 얻으려면 wgetcwd를 사용해야합니다.
pdfsizeopt.exe는 wchdir를 사용하여 pdfsizeopt.single의 디렉토리로 변경해야합니다.
pdfsizeopt.exe는 wputenv를 사용하여 PDFSIZEOPT_WIN32EXEC 및 PDFSIZEOPT_WIN32EXEC/PDFSIZEOPT_GSWIN을 경로로 선정해야합니다.
pdfsizeopt.exe는 pdfsizeopt.single을 실행해야합니다.
pdfsizeopt_python.exe pdfsizeopt.single --args-u+ --cwd=... ...
여기서 -cwd =의 값은 WGETCWD 결과의 탈출 된 (U+12AB) 버전입니다.
pdfsizeopt python code는 -cwd = ...의 값을 상대적인 경우 입력 파일 이름에 선출해야합니다.
pdfsizeopt python 코드는 --cwd = ...이있는 경우 경로를 수정해서는 안됩니다. (이 환경 변수 전파는 Python 2.6에서 작동합니까?? 시도해 봅시다!)
임시 파일 이름이 모두 ASCII이고 PDFSizeOpt 자체로가는 경로가 ASCII에 필요하기 때문에 모든 ASCII이기 때문에 외부 프로그램 (예 : GS, SAM2P)의 명령 행에는 탈출이 필요하지 않다는 것은 여전히 사실입니다. 임시 디렉토리 (임시 변수)의 경로 이름이 탈출이 필요한 경우 탈출이 필요합니다.
이 오류는 Windows XP 시스템에서 발생했습니다. 솔루션 : MSVCR90.DLL을 다운로드하거나 이미 시스템 어딘가에서 찾아서 PDFSIZEOPT_WIN32EXEC (Python26.dll 옆)에 복사하십시오. MSVCR90.DLL의 모든 버전은 작동합니다.
이 오류는 pdfsizeopt_win32exec 디렉토리에서 microsoft.vc90.crt.manifest 파일이 누락 될 때 Windows XP 시스템에서 발생했습니다. 솔루션 : 최신 버전의 디렉토리 PDFSIEOPT, 디렉토리 PDFSIEOPT PDFSIEOPT를 다시 설치하십시오. 최신 버전에는 해당 파일이 있습니다.
https://github.com/pts/pdfsizeopt의 설치 지침에 따라 pdfsizeopt를 설치하십시오. 그렇게함으로써 PDFSizeOpt는 고스트 스크립트 9.05를 사용하여 번들로 사용하면 작동합니다.