掲示板お問い合わせランダムジャンプ



この広告は30日以上更新がないブログに表示されております。 新しい記事を書くことで広告を消すことができます。

Top Index

2014年08月10日
Magick.NETでPDFのサムネイル画像を作る
VB.NET+VB2010+.NET4


PDFのサムネイル画像を作ろうといろいろネットを探してみて、
Magick.NET(codeplex)というライブラリがあることを見つけました。
サンプルコードもあるし、まぁ楽勝だろうと思っていたら「環境構築」で嵌ってしまいましたので、
メモ書きしておきます。

環境構築


1. NuGetでインストールする
「x86、x64、AnyCPUでDLLが分かれている」点に気を付けます。
x86版はパッケージマネージャーコンソールより以下のコマンドでインストールできます。
PM>Install-Package Magick.NET-Q16-x86

ちなみに、x86で動作検証はしましたが、
他のプラットフォームではコンパイルは通りましたが実行時に
Magick: FailedToExecuteCommand `"C:/Program Files (x86)/gs/gs9.09/bin/gswin32c.exe" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pngalpha" -dTextAlphaBits=4 -dGraphicsAlphaBits=4 "-r16x16" "-sOutputFile=C:/Users/UserName/AppData/Local/Temp/magick-10428jgQam6_Hiva9%d" "-fC:/Users/UserName/AppData/Local/Temp/magick-10428jLlGehhkTY_9" "-fC:/Users/UserName/AppData/Local/Temp/magick-10428itLZ98wCFBBI"
とエラーが出て読み込みに失敗しました。
解決できず。


2. Microsoft Visual C++ 再頒布可能パッケージをインストールする
これも「x86とx64でインストールするものが分かれている」ので注意。
「2」のDLLとプラットフォームに合わせて適切なものをインストールしてください。

入手先はこちら
Visual Studio 2012 更新プログラム 4 の Visual C++ 再頒布可能パッケージ
http://www.microsoft.com/ja-JP/download/details.aspx?id=30679
※VS2012と書いてありますが、開発環境のことではありませんので、こちらで問題ないです。

3. Ghostscriptのインストール
広告にまみれたsourceforgeより頑張って入手してください。
http://sourceforge.net/projects/ghostscript/
Ghostscriptのライセンス形態はAGPLv3
http://sourceforge.jp/projects/sfnet_ghostscript/

4. Ghostscriptのパス設定
Ghostscriptはインストーラが付いていますが、パス設定は手動です。
環境変数Pathに
C:\Program Files (x86)\gs\gs9.09\bin
こんな感じのパスを足してください。


トラブルシューティング


うろ覚えです。

・System.BadImageFormatException が発生する
System.BadImageFormatException はハンドルされませんでした。
Message=ファイルまたはアセンブリ 'Magick.NET-x86, Version=6.0.0.0, Culture=neutral, PublicKeyToken=2004825badfa91ec'、またはその依存関係の 1 つが読み込めませんでした。間違ったフォーマットのプログラムを読み込もうとしました。

プロジェクトのプラットフォーム(x86、x64)とMagick.NETのプラットフォーム(x86、x64)があっていません。
揃えましょう。

・Magick: FailedToExecuteCommand が発生する
Ghostscriptがインストールされていない。
または、Ghostscriptへのパスが設定されていない。
または、プロジェクトのプラットフォーム(x86、x64)とMagick.NETのプラットフォーム(x86、x64)があっていない。

・System.IO.FileNotFoundException が発生する
System.IO.FileNotFoundException はハンドルされませんでした。
HResult=-2147024770
Message=ファイルまたはアセンブリ 'Magick.NET-x86.dll'、またはその依存関係の 1 つが読み込めませんでした。指定されたモジュールが見つかりません。
たぶん「Microsoft Visual C++ 再頒布可能パッケージ」がインストールされていない。
再頒布可能パッケージもx86とx64があるので注意。
両方ともインストールすると問題があるのかないのかは不明ですが、両方ともインストールはできる。

・System.IO.FileLoadException が発生する
System.IO.FileLoadException はハンドルされませんでした。
HResult=-2146232799
Message=混合モード アセンブリはバージョン 'v2.0.50727' のランタイムに対して作成されており、追加の構成情報がないと 4.0 ランタイムでは読み込めません。

普通はでないですが、構成マネージャ-でプラットフォームいじくってるとでる。
プロジェクトのプラットフォーム(x86、x64)とMagick.NETのプラットフォーム(x86、x64)は揃えましょう。


サンプルコード



[ 投稿者:mk3008 at 15:59 | VB.NET | コメント(0) | トラックバック(0) ]

この記事へのコメント

この記事へのトラックバック

この記事へのトラックバックURL
http://shinshu.fm/MHz/88.44/a02480/0000447402.trackback

この記事の固定URL
http://shinshu.fm/MHz/88.44/archives/0000447402.html

記事へのコメント
 
簡単演算認証: 6 x 5 + 5 =
計算の答えを半角英数字で入力して下さい。
名前: [必須]
URL/Email:
タイトル:
コメント:
※記事・コメントなどの削除要請はこちら