如何在C#中打印存储在本地硬盘上的文件?

时间:2010-12-16 18:43:04

标签: c# winforms printing

我有一个用C#(WinForms)创建的函数,它将文件保存为本地目录中的gif图像。如何访问它并将其发送到我的网络打印机打印?

我现在有这个代码:

internal void PrintLabels(string printerInfo, List<string> shippingLabels)
{
    //this is where I print to printer...
    foreach (string labelPath in shippingLabels)
    {

    }

}

任何帮助?

3 个答案:

答案 0 :(得分:1)

另一种方法是以编程方式创建pdf文档,然后通过CommandLine批量打印

查看iText库。

创建文件后,可以通过命令行打印它们(可以使用System.Diagnostics命名空间中的Command类)

如果您是从批处理中完成所有这些操作,那么如果您要打印的打印队列出现问题,您还需要通知(可能是以编程方式)。我相信有一个课程。

有关此主题的更多信息,请尝试here

答案 1 :(得分:0)

我有一堆'gif'图像。您的所有链接都是针对.txt文件的。这是我的代码:

 public void PrintShippingLabels()
    {

        //mock of what the reset of the program will produce up to this step
        List<string> shippingLabels = new List<string>();
        for (var i = 0; i < 10; i++)
        {
            var trackingNumber = "1ZR02XXXXXXXXXXXXX" + i + ".gif";
            shippingLabels.Add(trackingNumber);
            CreateSampleShippingLabel(trackingNumber);
        }

        Assert.AreEqual(10, shippingLabels.Count);

        IceTechUPSClient.Instance.PrintLabels("", shippingLabels);

    }

  public void PrintLabels(List<string> shippingLabels)
    {
        //this is where I print to printer...
        PrintDocument pd = new PrintDocument();
        foreach (string labelPath in shippingLabels)
        {  
            pd.Print();

        }

    }

答案 2 :(得分:0)

检查您的打印机。一些设备现在能够本地打印gif,jpeg,tiff等,而无需转换为PCL或PostScript数据流(或其他打印语言)。如果是这种情况,您可以直接通过LPR协议发送文件,直接通过端口9100或直接通过Windows打印队列(http://support.microsoft.com/kb/322091