4

.NET の標準の PrintDocument and Graphics (GDI) クラスを使用して PDF ファイルを生成する方法を探しています。私の知る限り、これを行う唯一の方法は、PDF プリンターに印刷することです。

問題は、PDF プリンター ドライバーが常にファイル名を要求することですが、コードからファイル名を制御する必要があります。PDFSharp や DynamicPDF などの PDF ライブラリを使用することはできません。これらはすべて、PDF ファイルを生成するための独自の API を提供するためです。

これは内部アプリケーションに必要なので、依存関係は問題になりません。

私の質問は簡単です: ファイル名を指定でき、ユーザーが何も要求されないようにプリンタードライバー (Adobe Acrobat、PDFCreator など) を制御する方法はありますか?

4

9 に答える 9

4

PrintDocument の System.Drawing コードを再利用して、webSupergoo から ABCpdf.NET で PDF を生成できます。詳細については、System.Drawing の例を参照してください。このコンポーネントはプリンタ ドライバを使用せず、PDF を直接作成するため、ファイル名を指定する必要はありません。

于 2010-05-10T09:19:09.603 に答える
2

Amyuni と呼ばれる製品がこれを行います (私はプロジェクトで使用しています) が、ライセンスが気に入らないので、問題なく使用できるかもしれません。

Amyuni.comを見る

ライアン

于 2009-07-10T13:55:34.187 に答える
1

Amyuni PDF Converterは必要なことを行います。COM インターフェイスまたは .net アセンブリを使用して完全に操作できる Microsoft 認定のプリンター ドライバーを提供し、標準の GDI (または Windows.Forms クラス) を使用して PDF ファイルを生成できます (おそらく、この回答へのコメントで述べたように、カスタム API である Amyuni PDF Creator で確認しました)。

于 2011-01-06T17:51:23.877 に答える
0

Dane-Prairie Systems http://www.win2pdf.com/は、GDI呼び出しから「ファイルに出力」文字列をキャプチャし、指定した場所にPDFを作成するようです。マニュアルからの引用は次のとおりです。

DOCINFO構造体のlpszOutputフィールドをファイルの完全修飾パス名に設定してから、DOCINFO構造体をWin32StartDoc関数に渡します。

ピーター

于 2010-12-07T19:38:06.707 に答える
0

使用しているプリンタードライバーが手動でこれをサポートしていない限り (私が知っているものは存在しません)、印刷操作中に情報 (ファイル名など) を渡すことができる独自のプリンタードライバーを作成する必要があります。 .

これの欠点は、プリンター ドライバーを実装する必要があるという事実と、それがアンマネージ コードでなければならないという事実です (.NET でドライバーを作成することはできません)。

于 2009-07-10T13:45:16.350 に答える
0

C1Pdf コンポーネントがこれを行います。GDI プラス (DrawString、DrawImage など) を模倣し、PDF を生成するメソッドがあります。プリンター ドライバーをインストールする必要はありません。詳細が必要な場合は、ドキュメントへのリンクを次に示します。

http://www.componentone.com/newimages/Products/Documentation/WinForms.PDF.pdf

于 2015-03-06T17:51:14.797 に答える
0

ドキュメント形式変換ツールを作成している会社はいくつかあります。それらのいくつかは、プリンタードライバーを使用して、ドキュメントを目的の形式に「印刷」します。Word 文書から PDF に変換できるツールを探してください。これらの 1 つには、必要な種類のドライバーが含まれている必要があり、ファイル名などを制御できる API を提供するものもあります。

于 2009-07-10T13:55:12.923 に答える
0

さらに調査を行いましたが、完全な解決策はまだ見つかりませんでしたが、PDF プリンタードライバーをインストールし、生成するファイルの名前を何らかの方法で制御できる製品がいくつかあります。

Bullzip と PDFCreator は無料です。

更新:非常に有望に見える別のものを見つけました:

于 2009-07-10T14:58:05.623 に答える
-1

これがあなたが検討する解決策かどうかはわかりませんが、 iTextSharpを使用して PDF フォームに入力し、ユーザーではなくコードで生成されたファイル名で保存しました。また、ゼロから完全な PDF を生成することもできますが、私はそこまで掘り下げていません。

于 2009-07-10T13:51:56.763 に答える