Можно ли перепечатать файл спула?

Есть ли способ перепечатать файл спула?

Я не могу найти ни одного примера или статьи, чтобы сказать, есть ли способ или нет.

редактировать: когда я говорю "перепечатать", я имею в виду тот же принтер

2 ответа

Да, ты можешь. Прочитайте полный файл SPL в байтовом массиве и посмотрите на эту статью:

http://support.microsoft.com/kb/322090/en-us

Он показывает, как отправить необработанные данные на принтер. Используйте это для отправки вашего байтового массива на принтер. Остерегайтесь: файл SPL может фактически содержать различные типы данных, такие как EMF, PCL, ESC-P и т. Д. Вы должны убедиться, что формат файла SPL, который у вас есть, соответствует вашему конкретному принтеру.

Для EMF я бы рассмотрел использование класса PrintDocument и класса Metafile. Обработчик события PrintDocument OnPrintPage предоставляет объект Graphics, который позволит вам отображать файлы EMF следующим образом:

    void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
    {
        Metafile metafile = new Metafile("SampleMetafile.emf");
        e.Graphics.DrawImage(metafile, 10, 10);
    }

Что касается простого текста, вы можете просто нарисовать его на объекте Graphics в печатном документе, но вам нужно будет принять во внимание перенос текста и строк, это может не стоить усилий. Я также подозреваю, что почти на всех устройствах, если вы отправите простой текст через порт 9100 на принтер, он будет печататься достаточно хорошо.

Другие вопросы по тегам