在您的计算机 C# 中打印特定文件

Print Specific File in your Computer C#

我正在使用 WinForms。我有一个这种形式的按钮。单击按钮时,我希望程序每次单击它时都打印一个特定的文件。

我的问题是:我的代码不打印我计算机中的特定文件。它打印出一个空白文档。

示例:单击按钮 始终打印文档 "C:\image.jpg"。

    private void btn_Print_Click (object sender, EventArgs e)
    {
        printDialog1.AllowSomePages = true;
        printDialog1.AllowSelection = true;
        printDocument1.PrinterSettings.PrintToFile = true;

        if (printDialog1.ShowDialog() == DialogResult.OK)
        {
            printDialog1.PrinterSettings.PrintFileName = @"C:\image"; 
            printDocument1.Print();
        }
    }

            private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
    {

    }

以下代码有效。您可能需要根据需要进行调整,但这将是您的起点。

参考:https://social.msdn.microsoft.com/Forums/windows/en-US/f83aff78-44c1-465c-86b4-9e4e5a2d97e2/how-to-print-files-stored-at-your-local-hard-drive-in-c?forum=winforms

确保你有:

using System.Drawing;
using System.Drawing.Printing;

这里是:

    private void button1_Click(object sender, EventArgs e)
    {
      using (PrintDocument pd = new PrintDocument())
      {
        if (printDialog1.ShowDialog() == DialogResult.OK)
        {
            string filePath = @"C:\image.JPG";
            pd.OriginAtMargins = true;
            pd.PrintPage += pd_PrintPage;
            pd.DocumentName = filePath;
            pd.Print();
            pd.PrintPage -= pd_PrintPage;
        }
      }
    }

    public void pd_PrintPage(object sender, PrintPageEventArgs e)
    {
        string labelPath = ((PrintDocument)sender).DocumentName;
        e.Graphics.DrawImage(new Bitmap(labelPath), 0, 0);
    }