Как распечатать файлы, хранящиеся на вашем локальном жестком диске в C #? - PullRequest
0 голосов
/ 16 декабря 2010

У меня есть функция, созданная в C # (WinForms), которая сохраняет файл как изображение GIF в локальной директории.Как я могу получить к нему доступ и отправить его на печать на один из моих сетевых принтеров?

У меня есть этот код здесь прямо сейчас:

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

    }

}

Любая помощь?

Ответы [ 3 ]

1 голос
/ 16 декабря 2010

Альтернативным способом было бы программно создать PDF-документ, который вы затем распечатываете через CommandLine

.

Взгляните на библиотеку iText .

После того как вы создали свои файлы, вы можете распечатать их через командную строку (для этого вы можете использовать класс Command, находящийся в пространстве имен System.Diagnostics)

Если вы делаете все это из пакета, то вы также захотите получить уведомление (возможно, программно), если что-то пойдет не так с очередью печати, в которую вы печатаете. Я считаю, что для этого есть класс.

Для получения дополнительной информации по этому вопросу, попробуйте здесь .

0 голосов
/ 18 декабря 2010

Проверьте принтер у вас есть.Некоторые устройства теперь могут печатать gif, jpeg, tiff и т. Д. Без необходимости преобразования в потоки данных PCL или PostScript (или другой язык печати).В этом случае вы можете просто отправить файл по протоколу LPR, напрямую через порт 9100 или напрямую через очередь печати Windows (http://support.microsoft.com/kb/322091)

0 голосов
/ 16 декабря 2010

У меня есть куча картинок '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();

        }

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...