| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: COM/DCOM/ActiveX/ATL/CORBA > Программная установка формата листа в AutoCAD |
| Автор: Ptica_Oz 1.3.2007, 12:17 | ||
| Доброго времени суток. Обращаюсь к вам, как мне кажется, с не тривиальной проблемой. А если вам так не кажется, то развейте, пожалуйста, моё заблуждение. В целом задача состоит в следующем: есть чертеж неопределённого формата в пространстве модели. Надо написать прогу (чем я и занимаюсь) в которой только выбираешь принтер и отправляешь на печать. Программа выполняет следующее: сканирует пространство модели и определяет размеры чертежа, затем выставляет необходимые для печати параметры и отправляет на печать. Возникла загвоздка с одним параматром: Paper size, в котором указывается формат страницы. Несколько раз натыкалась на утверждение "AutoCAD берет информацию о доступных размерах листа от драйвера принтера". Научилась получать список форматов из драйвера (правда список полностью не совпадает с автокадовским, но я думаю это не проблема...). Теперь мне надо передать этот формат в Автокад таким образом чтобы в поле Paper size стояло это название. Также находила примеры кода (восновном на VB) с использованием функций CanonicalMediaName и CanonicalMediaNames (вторую ф-цию в С++ не нашла, может конечно плохо искала). Использование ф-ции CanonicalMediaName нужного эффекта не даёт. Не исключаю того, что и функции я не те пользую и список форматов. Вобщем вопрос заключается в том, как программно установить формат листа. Буду признательна за помощь. З.Ы. список форматов получаю функцией спула (winspool.h) DeviceCapabilities. в сети нашла програмку winprinfo с исходником, получение списка взяла от туда Несколько строк кода:
|
| Автор: Ptica_Oz 1.3.2007, 15:20 | ||
Функций CanonicalMediaName и CanonicalMediaNames нашла, и ещё одну (судя по VB-шным кодам нужную) GetLocaleMediaName (и куда я смотрела?
|
| Автор: Ptica_Oz 2.3.2007, 13:58 | ||
перевела!
|