1

これが私が使用するコードです(印刷関連の部分のみ):

ボタン 1 の onclick ハンドラ メソッド:

printDialog1 = new PrintDialog();
printDialog1.AllowPrintToFile = true;
printDialog1.PrintToFile = false;
if (printDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
    PrintDocument pd = new PrintDocument();
    pd.DefaultPageSettings.PaperSize = new PaperSize("A4", 826, 1169);
    pd.PrinterSettings.PrintToFile = true;
    pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);
    pd.Print();
}

そして私の pd_PrintPage メソッド:

Bitmap bitmapCanvas = new Bitmap(1000, 1000);
Graphics g = Graphics.FromImage(bitmapCanvas);
g.Clear(Color.White);
...
some g.Draw...() stuff

...
e.Graphics.DrawImage(bitmapCanvas, A(2), A(2));
//where e is the PrintPageEventArgs defined in the method signature

私の問題の最初の部分は、これが選択したプリンター (印刷ダイアログで選択した) に印刷されないことです。プリンターがデフォルトのプリンターである場合にのみ、そのプリンターに印刷します。Windows 7では動作し、デフォルトのプリンターを認識するため、ボタンをクリックした後に表示される印刷ダイアログのコンボボックスでデフォルトでデフォルトのプリンターが選択されます。

私の主な問題は、これが Windows XP ではまったく動作しないことです (残念ながら、私はそれしか使用できません)。そして、私はその理由にちょっと興味があります。だから、私がめちゃくちゃにしたのか、それとも Windows XP ではサポートされていないのかわかりません。

コードを完成または修正するには、何を使用すればよいですか?

どんな助けでも大歓迎です。どうもありがとうございました! ミトゥラット・バティ

4

1 に答える 1

0

これを試して、

printDialog1 = new PrintDialog();
printDialog1.AllowPrintToFile = true;
printDialog1.PrintToFile = false;
if (printDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
    printDialog1.Document.DefaultPageSettings.PaperSize = new PaperSize("A4", 826, 1169);
    printDialog1.Document.PrinterSettings.PrintToFile = true;
    printDialog1.Document.PrintPage += new PrintPageEventHandler(pd_PrintPage);
    printDialog1.Document.Print();
}
于 2013-06-04T20:55:15.127 に答える