Кто-нибудь делал печать на принтер пдфки, без предустановленного адоба и из стрима?
Подскажите пожалуйста в какую сторону копать? Облазил многое не нашел нормально работающего кода.
Здравствуйте, -n1l-, Вы писали:
N>Кто-нибудь делал печать на принтер пдфки, без предустановленного адоба и из стрима? N>Подскажите пожалуйста в какую сторону копать? Облазил многое не нашел нормально работающего кода.
Нет, и делать это строго не рекомендуется. Установить бесплатный Acrobat Reader не составит труда (даже втихую, даже портабельный). А вот ошибки форматирования самописной реализации могут всплыть в самый неподходящий момент.
Но если желание выстрелить себе в ногу неистребимо — дерзай: http://habrahabr.ru/post/112707/
Здравствуйте, -n1l-, Вы писали:
N>Кто-нибудь делал печать на принтер пдфки, без предустановленного адоба и из стрима? N>Подскажите пожалуйста в какую сторону копать? Облазил многое не нашел нормально работающего кода.
Здравствуйте, Albeoris, Вы писали:
A>С учётом того что ты ограничен в первую очередь скоростью принтера, печать из потока не имеет практической ценности — создай временный файл и удали его после печати.
Скорость работы принтера не имеет к делу никакого отношения. Печать в Windows приложениии — это создание метафайла, который в дальнейшем будет подхвачен процессом спулинга и напечатан.
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Скорость работы принтера не имеет к делу никакого отношения. Печать в Windows приложениии — это создание метафайла, который в дальнейшем будет подхвачен процессом спулинга и напечатан.
Здравствуйте, Albeoris, Вы писали:
A>Нет, и делать это строго не рекомендуется. Установить бесплатный Acrobat Reader не составит труда (даже втихую, даже портабельный). А вот ошибки форматирования самописной реализации могут всплыть в самый неподходящий момент. A>Но если желание выстрелить себе в ногу неистребимо — дерзай: http://habrahabr.ru/post/112707/
A>Ну, а после установки акробата это делается достаточно просто: http://stackoverflow.com/questions/6103705/how-can-i-send-a-file-document-to-the-printer-and-have-it-print A>С учётом того что ты ограничен в первую очередь скоростью принтера, печать из потока не имеет практической ценности — создай временный файл и удали его после печати.
Здравствуйте, Alexandr Sulimov, Вы писали:
AS>Sumatra PDF
AS>Аргументы командной строки AS>-print-to-default имя_файла.pdf распечатать PDF-файл на принтере по умолчанию AS>-print-to имя_принтера имя_файла.pdf распечатать PDF-файл на указанном принтере
А как это в c# приложении использовать, я не пойму?
Здравствуйте, -n1l-, Вы писали:
N>Здравствуйте, Alexandr Sulimov, Вы писали:
AS>>Sumatra PDF
AS>>Аргументы командной строки AS>>-print-to-default имя_файла.pdf распечатать PDF-файл на принтере по умолчанию AS>>-print-to имя_принтера имя_файла.pdf распечатать PDF-файл на указанном принтере
N>А как это в c# приложении использовать, я не пойму?
var loc = "";
ProcessStartInfo pi = new ProcessStartInfo();
pi.WorkingDirectory = loc;
pi.FileName = loc + "SumatraPDF.exe";
pi.Arguments = "-print-to \"" + printer + "\" " + loc + Filename;
pi.UseShellExecute = false;
Process p = new Process();
p.StartInfo = pi;
p.Start();
System.Threading.Thread.Sleep(2000);
File.Delete(loc + mp.Filename);
if (!p.HasExited)
{
p.Kill();
return"Error! Process killed, may be hanged";
}
Здравствуйте, -n1l-, Вы писали:
N>Вы как посоветуете?
В отношении Adobe ничего сказать не могу, не делал.
Саму печать — лучше или отдельного потока. Формирование этого метафайла не самая быстрая операция, и на время ее заморозите UI.