powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ломаем зубы об акробата.
9 сообщений из 9, страница 1 из 1
Ломаем зубы об акробата.
    #32231905
lobodava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, что заглянули! Заходите, чувствуйте себя как дома.

Очень хочется распространять аксессные отчёты как PDF файлы.
Установил Adobe Acrobat 5.0 Full Version, появились два новых принтера:
Acrobat PDFWriter и Acrobat Distiller. Идёшь в меню File>Print.. , выбираешь Acrobat Distiller и указываешь путь будущему PDF файлу. Супер.

Всё было бы просто, да только у меня репорт сложный, состоящий физически из двух репортов: основного (титульного) листа и листов продолжения. Если их по отдельности в Acrobat Distiller распечатывать то два файла и получится, а нужен один. Интерактивно в Adobe Acrobat файлы воедино слить легко, но объяснять всем пользователям как это делать устанешь. Нашёл в интернете справку по СОМ библиотеке для Adobe Acrobat и сваял процедурку которая сливает PDF файлы воедино. Опять супер.

Осталась одна задача, мне не подсильная. Чтобы пользователю совсем хорошо было, поместил в Toolbar репорта кнопочку по которой меняется принтер заданный по умолчанию на Acrobat Distiller, распечатываются два репорта в два PDF файла, сливаются два файла в один, открывается этот один PDF файл для просмотра в Adobe Acrobat и возвращаем принтер который был по умолчанию. Это как должно быть в идеале... На деле оказывается что в дополнительных свойствах принтера Acrobat Distiller есть несколько опций сводящих всю эту красоту на нет. Вот их перечень:

Вкладка: Adobe PDF Settings
Do not sent fonts to Distiller
View Result In Acrobat
Prompt for the Filename
Delete log files for successful jobs
Ask to Replace existing PDF file

Если "Prompt for the Filename" включена то пользователю предлагается выбрать куда сохранять файл и тут начинается что угодно только не то что было запланировано. Если "Ask to Replace existing PDF" file включена и есть файл с таким же названием то пользователь опять чешет репу:"Надо делать Replace или не надо?". Ну и так далее.

Внимание вопрос: Как управлять опциями Adobe PDF Settings из кода MS Access.

Или может я ваще не тем занимаюсь?!
...
Рейтинг: 0 / 0
Ломаем зубы об акробата.
    #32231923
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А зачем ими управлять из кода? (То есть я верю, что у Акробата есть API, который дает такую возможность, но зачем?) В Windows (там, где Printers) есть иконка принтера, в которой все опции заданы и сохранены. Если мы переносим default с одной иконки на другую (хоть программно, хоть как), то ведь эти опции вроде не должны сбиваться.
...
Рейтинг: 0 / 0
Ломаем зубы об акробата.
    #32231949
lobodava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Закладываться на незыблемость настроек по умолчанию, я думаю, не стоит.
Если пользователь может изменить настройки принтера, то это наверняка случится, хотя бы просто потому, что человек захочет настроить среду для выполнения каких-то других задач.
...
Рейтинг: 0 / 0
Ломаем зубы об акробата.
    #32231956
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Тогда это вопрос к (или по) Акробату. Вопрос о том, как выглядит его API. В форуме по Аксессу смогут добавить только то, что к API'ям обращаются при помощи Declare...
...
Рейтинг: 0 / 0
Ломаем зубы об акробата.
    #32231978
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
коллеги,
может, посоветовать сделать из двух репортов один как-нибудь?
...
Рейтинг: 0 / 0
Ломаем зубы об акробата.
    #32232099
lobodava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Санычу:
в том-то и дело что это не API функциями Акробата делается. Акробат работает с PDF документами, а что бы PDF получить используется драйвер "принтера Акробат" и настраивается он так же как и обычный принтер через свойство репорта PrtDevMode. Только свои дополнительные настройки каждый драйвер хранит после стандартных, описаных в структуре DevMode. Вот я и подумал, может кто знает как их вытащить.

To fedd:
Я пытался вставить два подчинённых репорта в один родительский, но что-то как-то у меня это плохо получилось - я не добился нужного контроля над структурой репорта.
Задача стояла не тривиальная, во всяком случае для меня: На первую страницу, на ряду с записями, в нижний колонтитул нужно было выносить все суммы с последующих станиц, много страниц - большой колонтитул, нет других страниц - колонтитил маленький. А так как высоту колонтитула можно изменить только при открытии репорта, то надо было уже к этому моменту знать на сколько страниц разложатся записи. Пришлось измерить с точность до пикселя высоту места остающегося под записи на титульном листе и листе продолжения, с помощью вспомогательного репорта измерить высоту всех записей, заполнив этими значениями массив, и, переберая значения этого массива и раскладывая их постранично, высчитать размер колонтитула. И только после этого открывать репорт.
Честно говоря на дальнейшие эксперименты по объединению двух починенных репортов в один у меня не хватило сил и при первых отрицательных результатах я бросил попытки улучшать то что уже работало. Может и зря.
Если у вас есть такой опыт, я был бы признателен за возможность узнать о нем по-больше.
...
Рейтинг: 0 / 0
Ломаем зубы об акробата.
    #32232111
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> Только свои дополнительные настройки каждый драйвер хранит после стандартных, описаных в структуре DevMode. Вот я и подумал, может кто знает как их вытащить.

Ну, значит я неверно ответил в деталях, но по существу все остается в силе: вопрос касается именно особенностей Акробата.
...
Рейтинг: 0 / 0
Ломаем зубы об акробата.
    #32232133
lobodava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за внимание. Пошёл искать как работать с драйвером.
...
Рейтинг: 0 / 0
Ломаем зубы об акробата.
    #32232484
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько мне известно, все эти настройки сохраняются в реестре в соответсвующей ветке. Как вариант - править ветки реестар в коде или создать файл реестра и его запускать каждый раз перед формированием отчёта в pdf.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ломаем зубы об акробата.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]