Печать rtf
От: Roman Selivanov Украина  
Дата: 05.03.03 10:01
Оценка:
Hi ALL!
Нужно сделать прогу в аргументе командой строки которой передается имя файла для печати. Подскажите как можно это реализовать. У самого мысли примерно следующие: запустить Ворд и через dde ему переслать команду печати. Да вот беда не знаю как это сделать (только начинаю осваивать Си).
Заранее благодарен

05.03.03 14:53: Перенесено модератором из 'C/C++' — ПК
Re: Печать rtf
От: Кодт Россия  
Дата: 05.03.03 10:09
Оценка:
Здравствуйте, Roman Selivanov, Вы писали:

RS>Нужно сделать прогу в аргументе командой строки которой передается имя файла для печати. Подскажите как можно это реализовать. У самого мысли примерно следующие: запустить Ворд и через dde ему переслать команду печати. Да вот беда не знаю как это сделать (только начинаю осваивать Си).

ShellExecute(NULL, "print", "myfile.doc", NULL, NULL, SW_SHOWNORMAL);

За подробностями — в MSDN.
Перекуём баги на фичи!
Re: Печать rtf
От: Рома Мик Россия http://romamik.com
Дата: 05.03.03 22:39
Оценка:
Здравствуйте, Roman Selivanov, Вы писали:
RS>Нужно сделать прогу в аргументе командой строки которой передается имя файла для печати. Подскажите как можно это реализовать.
Если печать именно RTF, то делается это так:
Создается Rich Edit. Можно невидимый (на невидимом окне).
В него загружается нужный RTF.
Создается DC принтера.
Распечатывается.

Подробности в MSDN. См. PageSetupDlg, Rich Edit Controls, EM_STREAMIN, EM_FORMATRANGE.

Когда я печатал rtf встречался с такими проблемами:
Точное число символов в Rich Edit определяется через EM_GETTEXTLENGTHEX с флагом GTL_PRECISE.
Перед тем как выдавать пользователю диалог выбора принтера, нужно вызвать ту же функцию ( PageSetupDlg ) с таким флагом, чтобы записать в структуру значения для принтера по умолчанию.

RS>У самого мысли примерно следующие: запустить Ворд и через dde ему переслать команду печати. Да вот беда не знаю как это сделать

А точно ли будет ворд, там где будет работать ваша программа? ( у меня вот его обычно нет. ) А если будет, то сможете ли вы, например, выбрать на каком принтере печатать?
... << RSDN@Home 1.0 beta 6a >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.