0

ActiveReports形式のレポートを会社のRightFaxサーバーに送信し、FAX番号、送信者、受信者などのいくつかのFAXフィールドを事前設定しようとしています。RightFaxドキュメントには、これらの値を設定するためにドキュメントに埋め込みコードが含まれている必要があると記載されています<TOFAXNUM:12345556789><TONAME:Recipient><FROMNAME:Sender>。このテキストを含むTextBoxまたはLabelをActiveReportsに作成します。ただし、RightFaxがドキュメントを受信し、RightFaxクライアントUIを起動するときには、値は設定されません。埋め込まれたコードはFAX画像に残ります。RightFaxプリンタードライバーをHPLaserJet4に設定しています。VisualStudio2010Professionalを使用してC#で開発しています。

Webでの提案の1つは、埋め込みコードがCourierまたは別の「プリンターフォント」で設定されていることを確認することです。ただし、Visual Studioには「Courier」または「TimesRoman」はなく、これらの標準フォントのMSTrueTypeバージョンである「CourierNew」および「TimesNewRoman」のみがあります。

ファックスを送信するこの方法は、同じRightFaxサーバーを使用する別のマシンで、ActiveReportsを使用しない古いソフトウェアで機能します。

ActiveReportsとRightFaxのインターフェースを共有できる経験をいただければ幸いです。

ありがとう、

グレッグ・ロブデル

4

2 に答える 2

0

印刷プロセス全体を制御し、Windows API を使用してエスケープ シーケンスを送信することで、タスクを達成できます。ActiveReports 6 または ActiveReports 7 のセクションベースのレポートを使用していると仮定します。

さらに詳細に:

  • 独自の PrintDocument を作成し、PrintPage ハンドラーを定義する
  • PrintPage ハンドラーで、Escape winapi 呼び出しを使用してプリンターにエスケープ シーケンスを送信します ( CodeProject の例を参照)
  • Page.Draw() を呼び出して、ページ自体をレンダリングします。
于 2013-01-15T06:00:04.060 に答える
0

True Type フォントを使用している限り、プリンタはそのフォントを認識し、その中のテキストを「読み取る」ことができます。古いビットマップ フォントのみが、プリンターで読み取れない可能性があるフォントです。通常、「Courier New」や「Times New Roman」などの Windows で一般的に使用される TT フォントは、既にプリンターに組み込まれているため、ダウンロードすることさえできません。

ただし、RightFax にはエスケープ コードに関するドキュメントがいくつかあるので、ActiveReports でエスケープ コードを使用してみてください。また、ActiveReports6 の SystemPrinter オブジェクトを使用して、特別な API を使用せずにエスケープ コードをプリンターに直接送信する例を次に示しますそのコードを使用して、そこにあるエスケープ コードを RightFax が理解できるコードに置き換えてみてください。

最後に、ActiveReports は基本的に、プリンターからグラフィックを取得して描画することで印刷します。テキスト ボックスは、適切なテキスト コマンドで描画される実際のテキストです (つまり、テキストはビットマップとしてレンダリングされません)。これは最新の Windows での通常の印刷方法であるため、どのプリンタでもテキストは通常​​のテキストとして表示されます。独自の単純な印刷コードを .NET で作成し、それを RightFax ドライバーに送信することによって、まったく同じ結果が得られるはずです。そこで動作する場合は、ActiveReports でも動作します。

それが機能せず、上記のエスケープ コード トリックも機能しない場合は、RightFax に連絡して、.NET アプリケーションからドライバーに出力する方法についての洞察を求めることが、次の論理的なステップになると思います。

お役に立てれば!

于 2013-01-23T21:49:29.167 に答える