ファイルにラスター要素が含まれているかどうかを確認する方法はありますか? .pdf、.eps、および .ai 形式でこれを行うことに興味があります。
ファイルがベクターのみの場合は .svg に変換し、ラスター要素が含まれている場合は .png ファイルに変換する必要があります。
私は PHP で作業していますが、任意のコマンド ライン ツールも利用できます。たとえば、Inkscape を使用して実際の変換を行うことを検討しています。
ファイルにラスター要素が含まれているかどうかを確認する方法はありますか? .pdf、.eps、および .ai 形式でこれを行うことに興味があります。
ファイルがベクターのみの場合は .svg に変換し、ラスター要素が含まれている場合は .png ファイルに変換する必要があります。
私は PHP で作業していますが、任意のコマンド ライン ツールも利用できます。たとえば、Inkscape を使用して実際の変換を行うことを検討しています。
このコマンドを pdf ファイルに対して実行し、ファイルにラスターが存在するかどうかを確認できます。
grep -c -i "/image" thisfile.pdf
Linux ユーザーの場合は、Poppler ユーティリティを使用して、PDF 内のラスター要素のリストを取得できます。
pdfimages -list filename.pdf
この情報をコンソールからプログラムで解析するのは比較的簡単です。たとえば、Python では subprocess モジュールを使用できます。
out = subprocess.check_output('pdfimages -list filename.pdf', shell=True)
EPS/AI ファイルで DeviceRGB を検索できます
いいえ、ありません。
以下は、要求されたプロパティが計算できないことを証明する eps の理論的なコンピューター サイエンスの証明です。
PostScript(ps) と Encapsulated PostScript(eps) は、完全なプログラミング言語をチューリングしています。理論計算機科学では、チューリング完全言語で書かれたプログラムの特定の特性は計算できないという証明が存在します。このようなプロパティは、たとえば、特定のプログラムが終了するかどうかです。したがって、終了するかどうかわからない PostScript プログラムが存在することがわかります。このプログラムを使用すると、そこからすべてのラスター オブジェクトを削除し、プログラムが終了した場合にのみドキュメントに印刷されるラスター オブジェクトを 1 つだけ挿入します。これは、終了につながる可能性のあるすべてのプログラム部分の最後のステップとして、このラスター印刷ステップを挿入することによって行われます (すべての終了コマンド (そのようなコマンドが存在する場合) の直前およびメインの最後)。これで、ラスター オブジェクトの印刷が含まれているかどうかがわからない PostScript プログラムができました。印刷が含まれているかどうかがわかれば、それが終了するかどうかもわかり、このプロパティを計算できないことがすでにわかっているため、実際にはわかりません。した