5

PDF ドキュメントのプリフライト チェックを自動化する必要があります。プリフライトは次のもので構成されます。

  1. 既存のドキュメント内の画像の解像度を検出し、300dpi でない場合はそれらを 300dpi に変更します。
  2. 画像の色空間を検出し、CMYK でない場合は、カラー プロファイルを使用して CMYK に変換します。
  3. 既存の PDF ドキュメントにフォントが埋め込まれているかどうかを検出し、フォントを置き換えることでこの問題を修正します。(またはフォントのアウトラインを描く — この部分についてはよくわかりません)。

PoDoFo やその他のオープン ソース プロジェクトを使用してこれを実行できるかどうか疑問に思っています。または、2,000 ドルから 6,000 ドルの適切なソフトウェアを注文する必要がある場合。私のホスティング環境は Linux 上にあり、PHP、Perl、Python、Ruby、Java をサポートしています。

何か案は?

4

3 に答える 3

5

あなたの要件を満たす既製のオープン ソース ソフトウェアを知りません。

独自のシェル スクリプト (または他のプログラム) を作成することで解決できるのは、その一部だけです。

  1. 画像の解像度を検出します。

    pdfimages -list some.pdfPDFに含まれる画像のリストとその寸法を出力するために実行します...一見。しかし、それについて明らかではないこと: これらの寸法は生の画像 (PDF に埋め込まれている) のものです。これは 720x720 ピクセルになります。ただし、ページの 10x10 インチの正方形にレンダリングすると、この画像はページ上で 72 DPI になります。1x1 インチの正方形にレンダリングすると、720 DPI になります。PDF 内の両方のタイプの「レンダリング」は、埋め込まれた同じ生の画像から作成できます。どちらが適用されるかを決定するのは、現在の「グラフィック状態」のコンテキストです。そのため、ページに表示される画像の実際の DPI を判断するには、追加の PDF 解析が必要です...

    いずれにせよ、Ghostscript に画像を 300 dpi に再サンプリングし、これに「しきい値」を使用するように指示できます。(Ghostscript はイメージを「アップサンプリング」することは決してなく、しきい値をオーバーシュートするこれらのダウンサンプリングのみを行います。アップサンプリングはほとんど意味がありません。ファイル サイズが大きくなるだけで、品質の向上という点では見返りがありません。)

  2. ICC プロファイルを使用して色を色空間 CMYK に変換します。

    Ghostscriptの最新バージョンではそれが可能です。ICC のサポートについて説明している最新の Ghostscriptのドキュメントも参照してください。

  3. 埋め込まれていないフォントを埋め込みます。

    実行 (および結果の評価)pdffonts some.pdfすると、埋め込まれていないフォントが表示されます。

    Ghostscript は、埋め込まれていないフォントを埋め込むことができます。

したがって、ほとんどの要件をカバーする Ghostscript コマンドは次のとおりです。

gs                                     \
  -o cmyk.pdf                          \
  -sDEVICE=pdfwrite                    \
  -sColorConversionStrategy=CMYK       \
  -sProcessColorModel=DeviceCMYK       \
  -sOutputICCProfile=/path/to/your.icc \
  -sColorImageDownsampleThreshold=2    \
  -sColorImageDownsampleType=Bicubic   \
  -sColorImageResolution=300           \
  -sGrayImageDownsampleThreshold=2     \
  -sGrayImageDownsampleType=Bicubic    \
  -sGrayImageResolution=300            \
  -sMonoImageDownsampleThreshold=2     \
  -sMonoImageDownsampleType=Bicubic    \
  -sMonoImageResolution=1200           \
  -dSubsetFonts=true                   \
  -dEmbedAllFonts=true                 \
  -sCannotEmbedFontPolicy=Error        \
  -c ".setpdfwrite<</NeverEmbed[ ]>> setdistillerparams" \
  -f some.pdf

このコマンドは、必要な解像度の 2 倍よりも高い解像度を持つすべての画像をダウンサンプリングします ( *ImageDownSampleThreshold=2)。また、これらすべての設定を任意の入力ファイルに適用します (特別なプロパティの「チェック」の結果に基づいて選択的な「フィックスアップ」を適用する特別な PDF プリフライト ソフトウェアを除く)。

最後に、クローズド ソースの商用プリフライト ソフトウェアに頼らなければならない場合、2,000 ドルから 6,000 ドルを費やさなければならないと考える理由がわかりません。(この分野で私のお気に入りは、非常に強力なcallas pdfToolbox6 (Linux 上で CLI として実行されるバージョンもあります) です。その基本バージョンは 500 € です。)

于 2012-09-30T14:40:22.853 に答える
3

私のバックグラウンドは印刷にあるので、私の回答を読むときはこのことを覚えておいてください. あなたが提案する項目はやや単純に見えますが、その核心に入ると、これらの操作には印刷業界の知識がたくさんあります.

箇条書きに対する簡単なフィードバックを次に示します。

  1. 低解像度の画像を 300 dpi にアップサンプリングすると、(再補間によって) 画質が低下し、ファイル サイズが大きくなるため、望ましくありません。

  2. 色変換には注意が必要です。黒のみに変換したい RGB の特定のビルドがあるかもしれません。または、すでに cmyk であり、間違ったプロファイルでタグ付けされたファイルを誰かが提供した場合はどうなりますか。

  3. フォント検出 - フォントを置き換えるのは非常に複雑です。作成者とまったく同じフォントを持っていない場合、テキストのリフローの問題が発生する可能性があります。そのフォントを所有するには、ライセンス料を支払う必要があります。また、埋め込まれていないフォントをアウトラインに変換することもできません。

プリフライト用の商用パッケージを検討することをお勧めします。これらの開発者は、プログラムの開発に何年も費やしてきた、印刷分野の専門家です。挑戦的な部分は、あなたの価格帯でUNIXベースのものを見つけることです. ほとんどは、Windows または Mac 用に設計されています。Callas には Linux cl バージョンがありますが、記載されている価格ではありません。サーバー版が必要です。

どのタイプのボリュームを実行する予定ですか?

于 2012-10-01T20:49:18.753 に答える