PDFから画像を作ったり
PDF自体を作る場合はiTextSharpとかを使えば良いんですけど、PDFから画像を作りたいと思って(・∀・)
適当なライブラリを探してみたところ、商用ライブラリはいくつかあるみたいですけど。
とりあえずAcrobatを使った方法を試してみたり。
やりかたはこの辺から。
http://www.codeproject.com/dotnet/pdfthumbnail.asp
Acrobat.CAcroPDDoc doc = null; Acrobat.CAcroPDPage page = null; Acrobat.CAcroRect rect = null; try { doc = (Acrobat.CAcroPDDoc)new Acrobat.AcroPDDocClass(); if ( doc.Open( pdffile ) ) { page = (Acrobat.CAcroPDPage)doc.AcquirePage( 0 ); Acrobat.AcroPoint pt = (Acrobat.AcroPoint)page.GetSize(); rect = new Acrobat.AcroRectClass(); rect.Top = 0; rect.Left = 0; rect.right = pt.x; rect.bottom = pt.y; page.CopyToClipboard( rect, 0, 0, 100 ); IDataObject data = Clipboard.GetDataObject(); Bitmap bmp = (System.Drawing.Bitmap)data.GetData( DataFormats.Bitmap ); bmp.Save( imgfile, ImageFormat.Jpeg ); } } finally { if ( rect != null ) Marshal.ReleaseComObject( rect ); if ( page != null ) Marshal.ReleaseComObject( page ); if ( doc != null ) Marshal.ReleaseComObject( doc ); }
Clipboard経由というのがアレな感じですが(´Д`)
最初この処理をバックグラウンドスレッドでやっていて、Clipboardがうまく扱えないなぁ〜とか思ったりして。
ああ、STAスレッドにしないとダメね(´ω`)