0

MS-Word でドキュメントを印刷しようとしています。TWordApplication または OleVariant のどちらでも問題ありません。当社のプリンターには印刷オプションがあります。ステープル機能付きの Xerox プリンターを使用しています。すべてを手動で行うと、もちろん問題なく動作します。コードから実行すると、うまくいかないようです。

Delphi自体には、私の知る限り、ステープルを直接設定する接続はありません。コードからではなく、MS-Word からではありません。プリンターで 2 種類の印刷ジョブをセットアップしました (詳細設定)。1 つは通常印刷用、もう 1 つは 1 ホチキス止め印刷用です。両方の設定について、エクスポートを行いました。次に、必要な場所に設定をインポートしようとしました。残念ながら、プリンター ドライバーは私が行っていることを気に入っていないようです。ステープルの設定をインポートしようとするたびに、ドライバーはレジストリからインポートを削除しているようで、デフォルトを使用します。何らかの方法で「DevMode」エントリを上書きしようとすると、レジストリのエントリが削除され、プリンターがデフォルト モードになります。

レジストリ ファイルをインポートしようとしましたが、失敗します。レジストリ ファイルから値をインポートして WriteBinaryData で書き込もうとしましたが、DevMode エントリが削除されます。作成したプロファイルの情報を保持するレジストリのどこかに別のレジストリ値からレジストリ値をコピーしようとしました。私がそれを試しても何も起こらないようです。

私の知る限り、私はすべてを試しましたが、うまくいかないようです。また、WriteBinaryData と ReadBinaryData で何か間違ったことをした可能性もあります。誰かがそのための実例を私に与えることができれば、私は非常に素晴らしいでしょう.

私は Delphi XE2 を使用しています。

ティア

4

3 に答える 3

0

構造体はプリンター ドライバーによって内部的に使用され、DEVMODE内部データ (ドライバー ヒープも含む) が含まれており、製造元から詳細な HOWTO シートがない限り、変更してはなりません。あなたが達成しようとしていることは、OLE を介してプリンターに到達するよりもハードウェアに近い視点を必要ます。(通常はそうではありません。)

于 2013-09-17T09:09:25.423 に答える
0

プリンタ ドライバの設定を使用してステイプルを有効にできますか? その場合は、プリンターを Windows に 2 回 (ホチキス付きとホチキスなし) インストールすることで問題を回避し、印刷時に必要なプリンターを選択します。Word には、そのためのプロパティが COM API にあります。私はこの方法を使用して、さまざまな用紙トレイを選択しました。

于 2013-09-17T12:28:35.620 に答える
0

Word 内で目的のマクロを作成し、このマクロをプログラムにコピーします。明らかに、構文をある程度変更する必要があります。また、Word(および Excel)のマクロは、それらのプログラム内で定義されているが Delphi 内では定義されていない定数を使用します。

于 2013-09-17T10:26:52.243 に答える