掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
GhostScriptのgsdll32.dllの使い方について (ID:48451)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
auさん、ご指摘ありがとうございます。 >回答の中に書いてあるgsapi.pasと回答からリンク張ってある先のgsapi.pasは同じじゃないですよ おっしゃる通りでした。 他の形式はこれから試してみますが、以下、bmpで試したところ問題なくPDFがbmpに変換されました。 //procedure pdf2bmp(input : String; output: String); procedure pdf2bmp(input : AnsiString; output: AnsiString); var code:integer; instance: Pointer; argv: array of PAnsiChar; // argv:PPAnsiChar; begin code := gsapi_new_instance(instance, nil); if code < 0 then raise Exception.Create('Impossible to open an instance of ghostscript. Error code: '+IntToStr(code)); try SetLength(argv, 8); argv[0] := PAnsiChar('gsdll32TEST'); argv[1] := PAnsiChar('-dSAFER'); argv[2] := PAnsiChar('-dBATCH'); argv[3] := PAnsiChar('-dNOPAUSE'); argv[4] := PAnsiChar('-sDEVICE=bmp16m'); argv[5] := PAnsiChar('-r400'); // argv[6] := PAnsiChar('-sOutputFile=test.bmp'); //-->Stringでok argv[6] := PAnsiChar('-sOutputFile='+output); //-->AnsiStringならok // argv[7] := PAnsiChar('test.pdf'); //-->Stringでok argv[7] := PAnsiChar(input); //-->AnsiStringならok code := gsapi_init_with_args(instance, Length(argv), @argv[0]); if code < 0 then raise Exception.Create('ERROR: init_args: '+IntToStr(code)); try // ... finally gsapi_exit(instance); end; finally gsapi_delete_instance(instance); end; end; procedure TForm1.Button1Click(Sender: TObject); var //PdfPath:String; PdfPath:AnsiString; begin PdfPath:= 'C:\tmp\'; pdf2bmp(PdfPath+'test.pdf',PdfPath+'test.bmp'); end; 意味が分かってないのに、あちこちからコピペして試しているうちに、なおさら訳が分からなくなっていました。 ポインタの概念はわかりませんが、DLLを初めて利用しとても有難いものだと思いました。 おかげさまで利用のためのヒントをいただいた気がします。 通りすがりさん、au さん、本当にありがとうございました。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.