|
|
|
Ломаем зубы об акробата.
|
|||
|---|---|---|---|
|
#18+
Спасибо, что заглянули! Заходите, чувствуйте себя как дома. Очень хочется распространять аксессные отчёты как 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. Или может я ваще не тем занимаюсь?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2003, 18:15 |
|
||
|
Ломаем зубы об акробата.
|
|||
|---|---|---|---|
|
#18+
А зачем ими управлять из кода? (То есть я верю, что у Акробата есть API, который дает такую возможность, но зачем?) В Windows (там, где Printers) есть иконка принтера, в которой все опции заданы и сохранены. Если мы переносим default с одной иконки на другую (хоть программно, хоть как), то ведь эти опции вроде не должны сбиваться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2003, 19:49 |
|
||
|
Ломаем зубы об акробата.
|
|||
|---|---|---|---|
|
#18+
Закладываться на незыблемость настроек по умолчанию, я думаю, не стоит. Если пользователь может изменить настройки принтера, то это наверняка случится, хотя бы просто потому, что человек захочет настроить среду для выполнения каких-то других задач. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2003, 21:46 |
|
||
|
Ломаем зубы об акробата.
|
|||
|---|---|---|---|
|
#18+
Тогда это вопрос к (или по) Акробату. Вопрос о том, как выглядит его API. В форуме по Аксессу смогут добавить только то, что к API'ям обращаются при помощи Declare... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2003, 22:05 |
|
||
|
Ломаем зубы об акробата.
|
|||
|---|---|---|---|
|
#18+
коллеги, может, посоветовать сделать из двух репортов один как-нибудь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2003, 23:11 |
|
||
|
Ломаем зубы об акробата.
|
|||
|---|---|---|---|
|
#18+
Владимир Санычу: в том-то и дело что это не API функциями Акробата делается. Акробат работает с PDF документами, а что бы PDF получить используется драйвер "принтера Акробат" и настраивается он так же как и обычный принтер через свойство репорта PrtDevMode. Только свои дополнительные настройки каждый драйвер хранит после стандартных, описаных в структуре DevMode. Вот я и подумал, может кто знает как их вытащить. To fedd: Я пытался вставить два подчинённых репорта в один родительский, но что-то как-то у меня это плохо получилось - я не добился нужного контроля над структурой репорта. Задача стояла не тривиальная, во всяком случае для меня: На первую страницу, на ряду с записями, в нижний колонтитул нужно было выносить все суммы с последующих станиц, много страниц - большой колонтитул, нет других страниц - колонтитил маленький. А так как высоту колонтитула можно изменить только при открытии репорта, то надо было уже к этому моменту знать на сколько страниц разложатся записи. Пришлось измерить с точность до пикселя высоту места остающегося под записи на титульном листе и листе продолжения, с помощью вспомогательного репорта измерить высоту всех записей, заполнив этими значениями массив, и, переберая значения этого массива и раскладывая их постранично, высчитать размер колонтитула. И только после этого открывать репорт. Честно говоря на дальнейшие эксперименты по объединению двух починенных репортов в один у меня не хватило сил и при первых отрицательных результатах я бросил попытки улучшать то что уже работало. Может и зря. Если у вас есть такой опыт, я был бы признателен за возможность узнать о нем по-больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2003, 12:58 |
|
||
|
Ломаем зубы об акробата.
|
|||
|---|---|---|---|
|
#18+
> Только свои дополнительные настройки каждый драйвер хранит после стандартных, описаных в структуре DevMode. Вот я и подумал, может кто знает как их вытащить. Ну, значит я неверно ответил в деталях, но по существу все остается в силе: вопрос касается именно особенностей Акробата. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2003, 13:44 |
|
||
|
Ломаем зубы об акробата.
|
|||
|---|---|---|---|
|
#18+
Спасибо за внимание. Пошёл искать как работать с драйвером. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2003, 14:47 |
|
||
|
Ломаем зубы об акробата.
|
|||
|---|---|---|---|
|
#18+
Насколько мне известно, все эти настройки сохраняются в реестре в соответсвующей ветке. Как вариант - править ветки реестар в коде или создать файл реестра и его запускать каждый раз перед формированием отчёта в pdf. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2003, 09:44 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32232484&tid=1679997]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
76ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
| others: | 240ms |
| total: | 425ms |

| 0 / 0 |
