PDF→画像変換ライブラリ(Ghost Script Sharp)について説明していきます。
アグリモの製品では、ひかりFAX電話CTIと日報検索データベースで使用しています。
用途としては、顧客(物件)登録画面で、読み込んだPDFファイルを添付する際にJPGのサムネイル画像を作成し、画面に貼り付けています。
1.新規にソリューションを作成します。
2.パッケージマネージャーコンソールで、「Install-Package GhostScriptSharp」と入力してEnterキーを押下します。
3.プロジェクトの参照にDLLが追加されます。
4.以下は使用サンプルソースです。(ひかりFAX電話CTIから抜粋しています。)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
private void btn_pdf_insert_1_Click(object sender, EventArgs e) { try { if (this.pic_pdf_1.Image != null) { if (Logs_MessageBox.Show("既にPDFが追加されていますが、\r\n追加してもよろしいですか?", "確認", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != DialogResult.OK) { return; } } //オープンファイルダイアログ OpenFileDialog f = new OpenFileDialog(); f.FileName = ""; f.Filter = "PDFファイル|*.pdf|すべてのファイル|*.*"; f.Title = "PDFファイルを指定してください。"; f.CheckPathExists = true; f.RestoreDirectory = true; if (f.ShowDialog() != DialogResult.OK) { f.Dispose(); //元に戻す Cursor.Current = Cursors.Default; return; } string filePath = System.Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\AGRIMO.JP\\ひかりFAX電話CTI\\"; string file_name = filePath + "pdf_master_1" + System.IO.Path.GetExtension(f.FileName); //PDFをコピーする File.Copy(f.FileName, file_name, true); f.Dispose(); this.txt_pdf_file_name_1.Text = Path.GetFileName(file_name); pdf_path_1 = file_name; //カレントディレクトリを記憶 string curr = System.Environment.CurrentDirectory; //カレントディレクトリをデータフォルダへ変更 System.Environment.CurrentDirectory = @filePath; //ファイルコピー File.Copy(f.FileName, "pdf_master_1.pdf", true); //PDFの1枚目のイメージを抽出 GhostscriptWrapper.GeneratePageThumb("pdf_master_1.pdf", "pdf_master_1.jpg", 1, 100, 100); //PictureBoxにイメージを貼り付け this.pic_pdf_1.ImageLocation = file_name.Replace(".pdf", ".jpg"); //カレントディレクトリを元に戻す System.Environment.CurrentDirectory = curr; } catch (Exception ex) { Logs_MessageBox.Show(ex.Message, "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error); } } |