[解決済み] ImageMagickセキュリティポリシー「PDF」による変換のブロック
質問
Imagemagickのセキュリティポリシーが、pdfからpngへの変換を許可していないようです。他の拡張子の変換はうまくいっているようですが、pdfからの変換はできません。imagemagickをインストールしてから、何も設定を変えていないのですが...。OSが重要であれば、私はArch Linuxを使用しています。
user@machine $ convert -density 300 -depth 8 -quality 90 input.pdf output.png
convert: attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/408.
convert: no images defined `output.png' @ error/convert.c/ConvertImageCommand/3288.
解決方法は?
Ghostscriptが修正された後もImageMagickの変更が維持されたのは、アプリケーション(特にウェブアプリケーション)はしばしば任意のユーザ提供のファイルをImageMagickに送り、フォーマット制限を必ずしも適切に実施せず、また、(PDFが使用している)PostScriptはサンドボックスで動作するチューリング完全なプログラミング言語なので、サンドボックスに別の穴を開ける可能性は常にあるためです。
ImageMagick がプログラムの実行を必要とするファイルの処理を拒否するように設定し、そのかわりに 意図的に は、Postscriptレンダリングを許可したいのです。
それを実現するのは、次のようなGhostscriptのコマンドだ。
gs -dSAFER -r600 -sDEVICE=pngalpha -o foo.png myfile.pdf
そう、これはImageMagicが呼び出すGhostScriptコマンドのバリエーションなんだ。(ImageMagickの
delegates.xml
.
-o
の略記です。
-dBATCH -dNOPAUSE -sOutputFile=
)
重要なのは、ImageMagick がロックされたままであること、 中間プログラムを不必要に呼び出さないこと、そしてレンダリングパラメータをよりコントロールしやすくなることです。(例.
-r600
はレンダリングするDPIであり
-sDEVICE=pngalpha
を使用すると、希望のフォーマットに直接レンダリングすることができます)
関連
-
ゼロからLinuxのisoイメージを作る方法(グラフィックチュートリアル)
-
LinuxでSteamをダウンロードしインストールする方法
-
deepin linuxからmacosx仮想マシンに直接ファイルをドラッグ&ドロップする方法は?
-
GCCのバージョンによる浮動小数点演算の例外発生
-
リクエスト・エンティティが大きすぎる問題の解決策
-
[解決済み] ImageMagickを使用してPDFをPNGに変換する
-
[解決済み] エクスポートされた環境変数を削除する方法を教えてください。
-
[解決済み] PDFファイルの適切なMIMEメディアタイプ
-
[解決済み] HTMLにPDFを埋め込むおすすめの方法とは?
-
[解決済み] Linuxのディレクトリ内のファイルを再帰的にカウントする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Linux sarコマンドによるシステム性能の詳細解析事例
-
deepin20のサブネットマスクはどこですか?deepinのサブネットマスクを表示するためのヒント
-
deepin20にフォントを追加する方法は?deepin20にフォントをインストールする方法は?
-
deepin20のソフトをアンインストールする方法を教えてください。deepinのアプリケーションをアンインストールする2つの方法
-
ディープインシステムの画面解像度を設定する方法は?ディープインシステムの解像度を設定する方法
-
floor'への未定義の参照/`&'への未定義の参照
-
Apache の一般的な設定エラー
-
[解決済み] WindowsからLinuxへのscpにputtyを使用する
-
[解決済み] Linuxで特定のテキストを含むすべてのファイルを検索するにはどうすればよいですか?
-
[解決済み] Linux/Unixで$PATHを永久に設定する方法 [終了しました].