2016-09-06 8 views
1

Crystal Reportsから感熱紙に領収書を印刷する必要があります。私はプレビューから印刷された場合にうまく動作する印刷レイアウトを作成しました。コードから印刷しようとすると、プリンタは空の用紙をロールアウトします。プリンターが正しく取り付けられている(POS58)。これをコードから正しく印刷するにはどうすればよいですか?感熱紙に印刷

ReportDocument rptDoc = new ReportDocument(); 
rptDoc.Load(Directory.GetCurrentDirectory() + @"\Reports\receipt.rpt"); 
rptDoc.SetParameterValue("pOrderID",OrderID); 
rptDoc.PrintOptions.PrinterName = "POS58"; 
rptDoc.PrintToPrinter(1,false,0,0); 

enter image description here

enter image description here

+0

こんにちは、 いいですか? – Zoltan

答えて

0

私はあなたの質問にコメントすることはできませんので、私はここでお聞きするつもりです:あなたは、レポート上の任意のデータを持っています表示するには?あなたのコードにデータソースの割り当てがないので、印刷するデータを用意する必要があります。

レポートのPrintOptionを使用してコード内にpaperSizeを設定しようとしましたか?私はこれを一度やった。私はレシートプリンタに印刷していましたが、私の用紙はA4に設定されていたので、実際のレポートデータはレシート用紙の外側に印刷されていました。 A4用紙を使用して文書をプリンタに送信するか、紙を無駄にしないで印刷する方法を確認するために、oneNoteに送信してください。

+0

こんにちはSulieman、 最終的に誰かが手伝ってくれてありがとうございました。私が言及したように、私はCrystal Reportsを使用しています。 CRデザイナーではデータテーブルをまとめ、コードからは単に "OrderID"というパラメータを与えます。 CRデザイナーでプレビューボタンを押すと、印刷レイアウトが表示されます。印刷ボタンを押すと、プリンタはうまく動作していて、予想通りに領収書を印刷します。上のスクリーンショットはCRの設定です。デザイナーでCRレポートを右クリックします。用紙サイズが正しいことがわかります。コードからも設定する必要はありますか?私はこの用紙サイズを.NETで見つけられません – Zoltan

+0

こんにちはSuleiman、私はBullzipプリンタにレシートを印刷し、A4サイズの用紙の中央に領収書を見ました。私は再びプリンタの設定を再生し始め、奇跡が起こった。現時点では問題なく印刷されています。あなたは私を信じることができます、私はこれを何回も試みました。残念ながら、私はどの設定が助けになったのか分かりません。私はそれがプリンタードライバーの設定で何かだと思う私のコードは同じです。提案ありがとう。申し訳ありませんが私はあなたにポイントを与えることはできません、私の評判は十分ではありません。 – Zoltan

+0

領収書プリンタがデフォルトのプリンタである場合は、最後にこのチェックを行います。レシートプリンタではなく、デフォルトのプリンタから用紙設定が取得されている可能性があります。領収書の印刷をたくさん行う場合は、[POS .Net](https://www.microsoft.com/en-us/download/details.aspx?id=42081)をチェックしてください。 .Net印刷を使用してプリンタに直接印刷してみてください。 –

関連する問題