PDFSIZEOPTは、視覚的な品質を低下させたり、インタラクティブな機能(ハイパーリンクなど)を削除することなく、大きなPDFファイルを小さなファイルに変換するためのプログラムです。より具体的には、PDFSIZEOPTは、TexおよびLaTexドキュメントから作成されたPDFに焦点を当てた、無料のクロスプラットフォームコマンドラインアプリケーション(Linux、Windows、MacOS、およびUNIX用)およびPDFファイルのサイズを最適化するベストプラクティスのコレクションです。 pdfsizeoptはPythonで書かれているため、少し遅いですが、重い作業の一部をより速く(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プロセッサとAmple Siliconを備えたARMプロセッサの両方がサポートされています)。そのようなシステムがある場合は、 MacOSのセクションインストール手順と使用法に直接ジャンプします(Dockerを使用していません)。 5分もかかりません。
あるいは(遅いため推奨されていませんが)、次のシステムでDocker内でpdfsizeoptを実行することが可能です:Linux AMD64、MacOS 64ビットIntel X86(AMD64、X86_64)、MacOS 64ビットアーム(Apple Silicon、EG M1またはM2チップ)。その後、 LinuxとMacOSのDockerを使用して、セクションのインストール手順と使用状況に直接ジャンプします。その最後のステップには5分もかかりません。
Linux、Windows、またはMacOS(Intelプロセッサを搭載したコンピューターで)以外のオペレーティングシステムを使用している場合、PDFSIZEOPTを試す最も簡単な方法は、Linux、Windows、またはMacOSで友人のコンピューターを借りるか、クラウドでLinux VMをレンタルすることです。他の種類のシステムでpdfsizeoptを実行するのが難しい理由は、pdfsizeoptには必要な依存関係があるためです。一部の依存バージョン(Python 2.4-2.7、GhostScript 9.05)であるため、正しいバージョンの適切なバージョンをコンパイルする必要があります。最初に依存関係は、経験豊富なハッカーにとっても数時間かかり、イライラする試行錯誤がかかる場合があります。
PDFSizeoptを他のシステムに移植すること(そして簡単にインストールできるようにする)は技術的には可能ですが、PDFSIZEOPTの著者は、そのようなポートを作成および維持する自由な時間を持っていません。参考までに、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を最適化することができます。そのために、コマンドラインでパス名(ディレクトリ名を含む)を指定します。
上記のコマンドは、すべての依存関係(PythonやGhostscriptを含む)もダウンロードすることに注意してください。パッケージマネージャーにいくつかの依存関係をインストールすることは可能ですが、これらの手順は代替とより複雑であると考えられているため、ここではカバーされません。
PDFSIZEOPTは、x86およびAMD64 Linuxシステムで完全に機能することに注意してください。 PDFSIZEOPTは、静的にリンクされたX86実行可能ファイルのみを使用しており、システム上の外部コマンド(PDFSIZEOPT.SINGLE、PDFSIZEOPT_LIBEXEC/*を除く)を使用していないため、LIBC、Linux Distributionなどに制限はありません。 PDFSIZEOPTは、Linuxエミュレーションレイヤーを有効にしたX86 FreeBSDシステムでも完全に機能します。
〜/pdfsizeopt/pdfsizeoptの入力を避けるために、「$ home/pdfsizeopt」をパス(おそらく〜/.bashrc)に追加し、新しい端末ウィンドウを開き、コマンドpdfsizeoptは任意のディレクトリから動作します。
また、pdfsizeoptを〜/pdfsizeopt以外のディレクトリに配置することもできます。
さらに、いくつかの追加の画像インピーティマイザーをインストールできます(以下の画像オプティマザーセクションの詳細を参照):
$ 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-04-18/pdfsizeopt_win32exec-v9.zipをダウンロードして、その内容をフォルダーC: pdfsizeoptなどに抽出します。ファイルc: pdfsizeopt pdfsizeopt.exeが存在します。
https://raw.githubusercontent.com/pts/pdfsizeopt/master/pdfsizeopt.singleをダウンロードして、c: pdfsizeoptに保存します。
PDFを最適化するには、次のコマンドを実行します。
C:pdfsizeoptpdfsizeopt input.pdf output.pdf
ブラックコマンドプロンプトウィンドウであるコマンドラインでは、[スタート]メニュー / run / cmd.exeで起動するか、[スタート]メニューでコマンドプロンプトを見つけることができます。
(タブを押して、入力中にファイル名の完了を取得します。)
入力ファイル名をフルパス名として入力する必要があるため、短い名前(c: pdfsなど)のディレクトリを作成し、最初に入力pdfをコピーすることをお勧めします。
入力PDFに多くの画像または大きな画像がある場合、PDFSIZEOPTは非常に遅くなる可能性があります。このように、最も遅い画像最適化方法であるpngoutを無効にすることで、スピードアップできます。
C:pdfsizeoptpdfsizeopt --use-pngout=no input.pdf output.pdf
C: pdfsizeopt pdfsizeoptの入力を避けるために、C: pdfsizeoptをシステムパスに追加し、新しいコマンドプロンプトウィンドウを開き、コマンドpdfsizeopt
任意のディレクトリから動作します。
環境に応じて、アクセントされた文字を備えたファイル名は、PDFSIZEOPTのWindowsバージョンでは機能しない場合があります。安全に再生するには、入力ファイルと出力ファイルが文字、数字、アンダースコア(_)、Dash( - )、Dot(。)、およびPlus(+)の名前を持っていることを確認してください。バックスラッシュ()とスラッシュ(/)はどちらもディレクトリセパレーターとして問題ありません。
ファイル名とパス名のスペースは機能するはずですが、名前の周りに二重引用符( ")を置く必要があります。
いくつかの句読点文字(二重引用( ")、質問マーク(?)、Asterisk( )など)と非印刷不可能な文字(Newlineなど)を持つファイル名は、Windowsで動作しません。これは、Windowsがこれらの文字をサポートしていないためです。 x00 .. x1f " :<>?| x7f] filenames intall filenmesで、 /およびをディレクトリセパレーターとして使用します。
PDFSIZEOPTをC: pdfsizeopt以外のディレクトリに配置することもできますが、Whitespaceがある場合、またはフォルダー名のいずれかにアクセント付き文字がある場合は機能しません。
PDFSIZEOPTはワインで完全に機能することに注意してください(Ubuntu LucidでWine-1.2、Ubuntu TrustyでWine-1.6.2でテストされています)が、ネイティブに実行するよりも少し遅い(LinuxまたはUnixプログラムとして)。
これらの命令は、Linux AMD64、MACOS 64ビットIntel X86(AMD64、X86_64)、MacOS 64ビットアーム(Apple Silicon、Eg M1またはM2 Chip)で動作します。 LinuxまたはMacOSのバージョンは重要ではありません(Macos Leopard 10.5などの古いシステムも機能します)、Dockerがインストールおよび動作している限り。
Docker Image PTSPTS/PDFSIZEOPTのプログラムは、Linux I386(32ビットIntel X86)用にコンパイルされており、これらのバイナリはAppleシリコンであっても上記のすべてのプラットフォームで機能します。 (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デスクトップ(https://docs.docker.com/desktop/の2つのオプションがあります。インストール/linux-install/)。それらのいずれかが機能します。
MacOSにDockerをインストールするには、Dockerデスクトップ(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
、そしてあなたはそれをもう一度取得したくない、次に--platform linux/amd64
を追加してください-it
:
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を最適化することができます。そのために、コマンドラインでパス名(ディレクトリ名を含む)を指定します。
長いコマンドの入力を避けるために、実行してください
(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ビットIntel X86( X86_64、AMD64)プロセッサ。プログラムは64ビットIntel X86プロセッサ用にコンパイルされており、MacOSのRosetta 2エミュレーションを使用して、64ビットアームプロセッサでも機能します。これらの命令はテストされ、MacOS Ventura 13.3で動作することが知られており、どちらも64ビットIntel X86(X86_64、AMD64)プロセッサとApple Silicon(ARMプロセッサ)で動作します。
Mac OS X Leopard 10.5を実行している古いMacがある場合は、代わりに古いMacOのセクションのインストール手順と使用法に従ってください。
これらの指示はまだテストされていません。進行状況の更新については、#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
... and Open(表示)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を最適化することができます。そのために、コマンドラインでパス名(ディレクトリ名を含む)を指定します。
上記のコマンドは、ほとんどの依存関係(GhostScriptを含むが、Pythonを除く)をダウンロードすることに注意してください。すべてが上記の指示に従って、箱から出して動作するはずです。問題が発生している場合は、https://github.com/pts/pdfsizeopt/issuesで問題を報告してください。
〜/pdfsizeopt/pdfsizeoptの入力を避けるために、「$ home/pdfsizeopt」をパス(おそらく〜/.bashrc)に追加し、新しい端末ウィンドウを開き、コマンドpdfsizeoptは任意のディレクトリから動作します。
また、pdfsizeoptを〜/pdfsizeopt以外のディレクトリに配置することもできます。
これらの命令は、Mac OS X Leopard 10.5(Macos Mojave 10.14)を実行している古いMacで動作し、32ビットまたは64ビットのIntel X86プロセッサを持っている必要があります。プログラムは、32ビットIntel X86(I386)プロセッサ用にコンパイルされています(また、MacOS X Snow Leopard 10.6を必要とするPNGOUTツールを除き、MACOS Mojave 10.14以前の64ビットIntelプロセッサでも動作します) 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
... and Open(表示)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ビットIntel X86プロセッサを備えたMACがある場合、PDFSIZEOPTにバンドルされたPNGOUTは機能しません(64ビットプロセッサが必要なため)。 pngoutの代替案については、セクション画像オプティマイザーを参照してください。
pdfsizeoptは、出力ディレクトリに多くの一時ファイル(psotmp。*)を作成しますが、それ自体もクリーンアップします。
現在のディレクトリの外側のPDFを最適化することができます。そのために、コマンドラインでパス名(ディレクトリ名を含む)を指定します。
上記のコマンドは、ほとんどの依存関係(GhostScriptを含むが、Pythonを除く)をダウンロードすることに注意してください。すべてが上記の指示に従って、箱から出して動作するはずです。問題が発生している場合は、https://github.com/pts/pdfsizeopt/issuesで問題を報告してください。
〜/pdfsizeopt/pdfsizeoptの入力を避けるために、「$ home/pdfsizeopt」をパス(おそらく〜/.bashrc)に追加し、新しい端末ウィンドウを開き、コマンドpdfsizeoptは任意のディレクトリから動作します。
また、pdfsizeoptを〜/pdfsizeopt以外のディレクトリに配置することもできます。
インストーラーはありません。ダウンロードしてインストールするには、コマンドラインでいくつかのコマンドを実行する必要があります。 PDFSIZEOPTはコマンドラインのみのアプリケーションであり、GUIはありません。
PDFSIZEOPTは、Linuxエミュレーションレイヤーを有効にしたX86 FreeBSDシステムで完全に動作します。したがって、FreeBSDシステムでLinuxエミュレーション層を有効にしてから、 Linuxでのインストール指示と使用状況に従ってください。
変更すると、一般的なUNIXでのインストール手順と使用法に従うことができますが、多くの依存関係を個別にインストールする必要があり、おそらくそれらの一部をソースからコンパイルする必要があるため、より多くの作業が必要です(そして、不便でエラーが発生しやすいです)。
PDFSIZEOPTにはPython 2.4--2.7とGhostScript 9.05が必要であり、どちらも非常に古いため、最新のシステムにインストールするのが難しいため、これを行うことは2023年にますます困難になっています。
インストーラーはありません。ダウンロードしてインストールするには、コマンドライン(ブラックコマンドプロンプトウィンドウ)でいくつかのコマンドを実行する必要があります。 PDFSIZEOPTはコマンドラインのみのアプリケーションであり、GUIはありません。
pdfizeoptはPythonスクリプトです。 Python 2.4、2.5、2.6、および2.7で動作します(ただし、Python 3.xでは動作しません)。最初にPythonをインストールしてください。
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には多くの依存関係があります。完全な機能には、それらすべてが必要です。できるだけ多くインストールし、それらをパスに置きます。
依存関係:
sam2p
からインストールして、 imgdataopt
を使用できるようにします。パス。インストールできない場合は、pdfsizeoptを使用してください。一部のLinux分布にはSAM2Pバイナリがありますが、古すぎる傾向があります。あるいは、SAM2P> = 0.49.3 + PNG22PNMもIMGDataOPTの代わりに機能しますが、IMGDataOPTはインストールが簡単です。インストール後、pdfsizeoptを次のように使用します。
$ ./pdfsizeopt input.pdf output.pdf
PDFSIZEOPTを含むディレクトリをパスに追加できるため、コマンドpdfsizeopt
任意のディレクトリから動作します。
PDFSIZEOPTは、次の外部ツールを使用して、埋め込まれたPDFファイルの画像を小さくすることができます。
画像オプティマイザーを有効または無効にするには、このように有効にするすべての画像オプティマイザーを指定します。これにより、デフォルトのpngoutも無効になります。
また、このように、別々の追加の-Use-image-optimier =フラグを指定することにより、カスタムイメージオプティマイザーコマンドパターンを指定することもできます。
--use-image-optimizer="optipng %(sourcefnq)s -o6 -fix -force %(optipng_gray_flags)s-out %(targetfnq)s"
コマンドパターンで常に%(TargetFNQ)を指定する必要があります。
-do-debug-image-optimizers =はい指定して、現在の実行にどの画像オプティマイザー(およびその完全なコマンドライン)が有効になっているかを確認します。
スタートアップでは、PDFSIZEOPTは、要求された画像オプティマザーが(プログラムファイルとして)利用可能であることを確認し、それらのいくつかが欠落している場合に失敗します。欠落しているものを無視するには、-do-require-image-optimizers = no。
画像オプティマザーをインストールしてパスに追加するのは、ユーザーの責任です。上記のWindowsとLinuxのインストール手順に従うと、デフォルトの画像オプティマイザー(SAM2P、JBIG2、PNGOUT)がインストールされます。 Linuxの場合、追加の画像オプティマイザー(Zopflipng、Optipng、Advpng、およびECT)については、上記のインストール手順もあります。
-do-unify-fonts = noおよび-do-regenerate-all-fonts = no。
それでも失敗した場合は、-do-optimize-fonts = no。
どちらの場合でも、https://github.com/pts/pdfsizeopt/issuesに報告してください
-do-optimize-images = no。
https://github.com/pts/pdfsizeopt/issuesに報告してください
specify-use-pngout = no。これにより、画像の最も遅い最適化ステップであるPngoutが無効になります。
https://github.com/pts/pdfsizeopt/issuesに報告して、入力PDFファイルとpdfsizeoptのコンソール出力を添付してください。あなたのレポートは大歓迎です。
pdfsizeoptがexcatupedの例外を除いて終了する場合、現在のディレクトリに一時的なファイル(psotmp。*)が残る可能性があります。これらのファイルを削除できます。
PDFSIZEOPTは、破損したPDFファイル(つまり、PDF標準に準拠していないもの)を処理する際に回復力がないことに注意してください。したがって、pdfsizeoptが失敗した場合、理由はpdfsizeoptまたは破損したpdf入力ファイルのバグである可能性があります。それにもかかわらず、問題を報告してください(上記参照)。
https://github.com/pts/pdfsizeopt/issuesに報告して、入力PDFファイルと出力PDFファイル(.pso.pdf)とpdfsizeoptのコンソール出力を添付してください。あなたのレポートは大歓迎です。
これは、ファイル名またはフルパス名にASCII文字(AZおよびAZ)、桁(0-9)、アンダースコア(_)、ASCII DASH( - )、Plus(+)、Dot(。 )、backslash()またはslash(/)。通常、これらのキャラクターは機能しません。
スペースとタブ:これは簡単に修正できます。ファイル名を二重引用符( ")で包むだけです。通常の方法です。
double Quotes( "):これは発生できません、Windows上のファイル名には二重引用符が含まれていることは許可されていません。引用符( ")、すべての二重引用符(")を "に置き換え、(前の置換と並行して)シーケンスバックスラッシュ()と二重引用符(")を、バックスラッシュを複製して二重引用符を置き換えることで置き換えます( ") 「)これは複雑に聞こえますが、これは他のプログラムでもあります。https://stackoverflow.com/a/4094897/97248を参照してください。
Newlinesおよびその他の非空間の空白:これは機能しません。Windowsコマンドプロンプト(CMD.EXE)は、これらの文字がコマンドライン引数で許可されていません。また、Windowsはファイル名でそれらを許可しません。
アクセントされた文字(áやőなど)。これらの文字は動作しません(または、CommandLineで指定されたPDFファイル名、またはPDFSIZEOPTのフルパス名で指定されたPDFファイル名で機能しません(または、一部の文字ページに応じて、一部の文字のみが機能します)(したがって、PDFSIZEOPTをC:にインストールしないでください。 bőr、それは機能しません)。
アクセントされた文字(アクティブコードページの外側)は、PDFSIZEOPT(C:bőr pdfsizeopt.exeなど)のフルパス名で動作しません。これは、Pythonが外部プログラム(OS.System、OS.Popen、OS.Spawnl、およびSubProcess.Call)を名前に呼ぶことができないためです。
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コードは-args-u+を認識する必要があります。ファイル名を見つけるときは、Unicodeに変換する必要があります(u+12abを除くASCIIを維持することで)。 。このようなオープン(...)は、WindowsのPython 2.6で動作します。
ファイル名を表示する場合、PDFSIZEOPT Pythonコードは、U+12ABが逃げてASCIIを表示する必要があります。したがって、Win32Consoleモジュールは必要ありません。したがって、ファイル名は、コマンドプロンプトウィンドウで、レグリブルではあるが誤って(コピーが存在しない)表示されます。
ファイル名はすべてASCIIであり、ASCIIにはPDFSIZEOPT自体への道が必要であるため、ヘルパープログラムのコマンドライン(GS、SAM2Pなど)で逃げる必要はありません。これはすべてASCIIです。
pdfsizeopt.singleのパス名のアクセントされた文字をこのように機能させることができます(pdfsizeoptの将来の改善作業として):
最初に上記のファイル名でアクセントされた文字を実行します。
PDFSIZEOPT.EXEは、WGETCCWDを使用して現在のディレクトリを取得する必要があります。
pdfsizeopt.exeは、wchdirを使用してpdfsizeopt.singleのディレクトリに変更する必要があります。
pdfsizeopt.exeは、ディレクトリPDFSIZEOPT_WIN32EXECおよびPDFSIZEOPT_WIN32EXEC/PDFSIZEOPT_GSWINをパスにプレーチングする必要があります。
pdfsizeopt.exeは、このようにpdfsizeopt.singleを実行する必要があります。
pdfsizeopt_python.exe pdfsizeopt.single --args-u+ --cwd=... ...
、ここで、-cwd =の値は、wgetcwdの結果の脱出(u+12ab)バージョンです。
pdfsizeopt pythonコードは、相対的な場合は-cwd = ...の入力ファイル名に値を準備する必要があります。
pdfsizeopt pythonコードは、-cwd = ...が存在する場合、パスを変更すべきではありません。 (この環境可変伝播はPython 2.6で機能しますか?試してみましょう!)
一時的なファイル名はすべてASCIIであり、PDFSIZEOPTへのパス自体がASCIIに必要であるため、それはすべてASCIIであるため、外部プログラムのコマンドライン(GS、SAM2Pなど)で逃げる必要がないことはまだ事実です。一時ディレクトリ(TEMP変数)のパス名が逃げる必要がある場合は、逃げる必要があります。
このエラーは、Windows XPシステムで発生しています。ソリューション:msvcr90.dllをダウンロードし(またはシステムのどこかで見つけます)、pdfsizeopt_win32exec(python26.dllの隣)にコピーします。 msvcr90.dllの任意のバージョンは機能します:
このエラーは、PDFSIZEOPT_WIN32EXECディレクトリからファイルMicrosoft.vc90.crt.Manifestが欠落していたときに、Windows XPシステムで発生しました。ソリューション:PDFSIEOPTを再インストールしたディレクトリPDFSIZEOPT_WIN32EXEC最新バージョンのファイルがあります。
https://github.com/pts/pdfsizeoptのインストール手順に従って、pdfsizeoptをインストールしてください。そうすることで、PDFSIZEOPTはGhostScript 9.05を使用し、それにバンドルされ、機能します。