Как установить параметры печати

Автор Борис_С, 05.12.18, 10:24:08

« предыдущая - следующая »

0 Пользователей и 1 гость просматривают эту тему.

Борис_С

Мне нужно задать размеры и ориентацию страницы печати.
Попробовал использовать интерфейс IPrintJob_PrinterSettings,

kompas := KompasObject(CreateOleObject('Kompas.Application.5'));
kompas7 := Kompas.ksGetApplication7 as IApplication;print := kompas7.PrintJob;
print := kompas7.PrintJob;
if print <> nil then
begin
     printSettings := print As IPrintJob_PrinterSettings;
     if Not printSettings.InitPrinterSettings(NamePrinter, False, 0, 841, 594, DMBIN_AUTO) then
       Application.MessageBox('Ошибка настройки параметров принтера.', 'ERROR', MB_OK OR MB_ICONERROR);
end;


Этот код не меняет ни размер бумаги, ни ориентацию страницы,
когда я захожу напрямую в Печать из меню Файл / Печать
Может кто подскажет, в чем я не прав. Спасибо.

Sabahs

Можно попробовать свойство поменять, но в результате не уверен.
PrinterType - Тип настраиваемого принтера.

Борис_С

PrinterType может принимать 2 значения:
ksPTPrintPreviewPrinter  0  Принтер для печати через предварительный просмотр
ksPTSpecialPrinter 1  Принтер для специальной печати
Я попробовал и тот и другой вариант. Результат один и тот же.
Размер и ориентация страницы бумаги не меняются.


DesignЯR

Тут скорее всего, недоработка самой команды. Потому что если после её применения зайти в "Предварительный просмотр", то ничего не изменится, пока не зайти в "Настройки печати", где уже будет  выбранный принтер и формат, после чего нужно нажать на кнопку "ОК", тогда изменения вступят в силу.
У меня в C#  на панели свойств IPropertySpinEdit отображается без стрелочек, ждем пока исправят.
Может в Делфи команда и работает. Попробуйте проверить правильность имени принтера, поддерживает ли выбранный принтер пользовательский формат (если задаете формат размерами) - для Adobe PDF задавать только через PaperSize. Да и формат размеров посмотрите в файле *.pdс - созданного с помощью "Сохранить конфигурацию принтера/плоттера", открыв его блокнотом.
Например, файл "Adobe PDF (A2) (h).pdс" :
<?xml version="1.0" encoding="utf-16"?>
<PDС><Device name="Adobe PDF" driver="winspool" output="Documents\*.pdf"/><Paper source="15" orientation="2" size="66" width="420000" height="594000">A2</Paper></PDС>