Adobe PDF,как указать имя файла?

Обсуждение извечных проблем кларионовских (и не только) отчетов

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Nibirjanin
Посетитель
Сообщения: 25
Зарегистрирован: 06 Апрель 2012, 20:10

Adobe PDF,как указать имя файла?

Сообщение Nibirjanin »

Здравствуйте.
Печатаю отчёт на принтер "Adobe PDF", не могу сообразить как указать имя файла который будет создаваться "Adobe PDF"
По умолчанию ClaRUN предлагает имя JOB_CWDEFAULT.PDF. А мне нужно чтобы писало в фоновом режиме в файл с указанным именем.

Printer{PropPrint:PrintToName} не предлагать :) Если указать имя файла, то пишет он туда не совсем PDF
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7322
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Adobe PDF,как указать имя файла?

Сообщение Игорь Столяров »

Nibirjanin писал(а): 21 Июль 2020, 18:46 Если указать имя файла, то пишет он туда не совсем PDF
Потому, что в данном случае идёт перенаправление в файл дампа печати для принтера (скорее всего в формате EMF).
Здесь нужно включить ДО создания отчёта перенаправление записи в файл:

Код: Выделить всё

              Printer{PropPrint:PrintToFile} = True
              Printer{PropPrint:PrintToName} = Имя файла.pdf
И при печати созданного отчёта Вы получите полноценный PDF файл.
В принципе, можно записывать отчёт в PDF и из окна предпросмотра отчёта, но уже не много по другому ...
Также рекомендую сохранять и восстанавливать настройки параметров PRINTER после печати - т.к. они глобальные.
За теми кто отстал - не возвращаться. (С) Кодекс
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Adobe PDF,как указать имя файла?

Сообщение kreator »

Игорь Столяров писал(а): 21 Июль 2020, 20:50 В принципе, можно записывать отчёт в PDF и из окна предпросмотра отчёта, но уже не много по другому ...
И я знаю как.
Nibirjanin, вообще всё не так просто, как написал Игорь Столяров. Просто, когда уже пройдёшь этот путь.
Nibirjanin писал(а): 21 Июль 2020, 18:46 Printer{PropPrint:PrintToName} не предлагать Если указать имя файла, то пишет он туда не совсем PDF
А что он туда пишет? Файл .ps (Postscript)?
We are hard at work… for you. :)
Nibirjanin
Посетитель
Сообщения: 25
Зарегистрирован: 06 Апрель 2012, 20:10

Adobe PDF,как указать имя файла?

Сообщение Nibirjanin »

kreator писал(а): 21 Июль 2020, 22:43 А что он туда пишет? Файл .ps (Postscript)?
Думаю, как раз его и пишет. Файл начинается так

Код: Выделить всё

%!PS-Adobe-3.0
%%Title: JOB_CWDEFAULT
%%Creator: PScript5.dll Version 5.2.2
%%CreationDate: 7/21/2020 21:50:6
%%For: <C2E0EBE5F0E8E9>
%%BoundingBox: (atend)
%%Pages: (atend)
%%Orientation: Portrait
%%PageOrder: Special
%%DocumentNeededResources: (atend)
%%DocumentSuppliedResources: (atend)
%%DocumentData: Clean7Bit
%%TargetDevice: (Adobe PDF) (3018.101) 0
%%LanguageLevel: 3
%%EndComments
Всё, что мне нужно, это чтобы создавался PDF с "моим" именем файла, а не JOB_CWDEFAULT, как предлагается по умолчанию
Nibirjanin
Посетитель
Сообщения: 25
Зарегистрирован: 06 Апрель 2012, 20:10

Adobe PDF,как указать имя файла?

Сообщение Nibirjanin »

А если я, используя Printer{PropPrint:PrintToName}, буду печатать в Microsoft XPS Document Writer то пишет нормальный XPS-файл
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Adobe PDF,как указать имя файла?

Сообщение kreator »

Вам прямо упёрся этот принтер "Adobe PDF"?
Наши траблы с PDF вылились в допиливание стандартных классов - viewtopic.php?f=8&t=4512.
Можете попробовать. Там размер большой как раз из-за конвертера ps->pdf. Не только "Adobe PDF" сохраняет в Postscript, другие PDF-принтеры тоже так делают. Самый беспроблемный - это майкрософтовский (сейчас это, видимо, редкость :mrgreen: ).
Ещё разок. Что включает в себя допиливание стандартных классов? При экспорте отчёта в PDF смотрим наличие Майкрософтовского PDF-принтера. Если есть, то печатаем через него. Это актуально для Win10, и это самый беспроблемный вариант. Если Майкрософтовского PDF-принтера нет, то ищем любой другой. Печатаем через него. Если полученный файл PostScript, то конвертируем его в PDF внешним конвертером GhostScript. Если в системе вообще нет никакого, то экспорт в PDF идёт стандартным путём (нарываемся либо на кракозябры либо на gpf после экспорта пяти-шести страниц с опцией "Use Scan Copy Mode"). Можно ещё посмотреть видео в теме "Интерфейсы". Там у меня как раз работа стандартного превьювера (немного допиленного) и экспорт из его экрана в PDF несколько десятков страниц с графикой.
We are hard at work… for you. :)
Nibirjanin
Посетитель
Сообщения: 25
Зарегистрирован: 06 Апрель 2012, 20:10

Adobe PDF,как указать имя файла?

Сообщение Nibirjanin »

kreator писал(а): 22 Июль 2020, 11:09 Вам прямо упёрся этот принтер "Adobe PDF"?
Ну, не то, чтобы упёрся. Но хотелось бы это делать стандартно. Любая программа которая выводит что-то на печать на Adobe PDF(да и на любой другой принтер, который создаёт файл) указывает своё имя файла. Всё что мне нужно, это чтобы в окне выбора файла выводилось указанное мною имя файла, а не предлагаемый Кларионом JOB_CWDEFAULT. Наверняка это делается стандартным способом
Изображение
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Adobe PDF,как указать имя файла?

Сообщение kreator »

Я думал Вы хотите, чтобы "Adobe PDF" вообще не спрашивал о названии и расположении файла. А так тогда в отчёте свойство "JobName" измените на нужное.
We are hard at work… for you. :)
Nibirjanin
Посетитель
Сообщения: 25
Зарегистрирован: 06 Апрель 2012, 20:10

Adobe PDF,как указать имя файла?

Сообщение Nibirjanin »

kreator писал(а): 22 Июль 2020, 13:54 Я думал Вы хотите, чтобы "Adobe PDF" вообще не спрашивал о названии и расположении файла.
Именно это мне и нужно.
А так тогда в отчёте свойство "JobName" измените на нужное.
Спасибо! Я весь покрылся пунцовой краской стыда. :oops:
Теперь вопрос решился просто.
Указываю JOBNAME, в настройках Adobe PDF указываю "не спрашивать имя файла" и "не открывать файл для просмотра"
Собственно и всё. Всё работает в фоновом режиме, ни о чём не спрашивает и пишет нормальный PDF.
Ещё раз - большое спасибо!
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Adobe PDF,как указать имя файла?

Сообщение kreator »

Nibirjanin писал(а): 22 Июль 2020, 14:45 в настройках Adobe PDF указываю "не спрашивать имя файла" и "не открывать файл для просмотра"
И путь к файлу в jobname придётся писать? Или "Adobe PDF" кладёт всё в определённый каталог?
We are hard at work… for you. :)
Nibirjanin
Посетитель
Сообщения: 25
Зарегистрирован: 06 Апрель 2012, 20:10

Adobe PDF,как указать имя файла?

Сообщение Nibirjanin »

kreator писал(а): 22 Июль 2020, 17:20
Nibirjanin писал(а): 22 Июль 2020, 14:45 в настройках Adobe PDF указываю "не спрашивать имя файла" и "не открывать файл для просмотра"
И путь к файлу в jobname придётся писать? Или "Adobe PDF" кладёт всё в определённый каталог?
В настройках Adobe PDF можно указать каталог куда писать, и пишет только туда, игнорируя путь к файлу указанный в jobname . Если я ничего не напутал, конечно
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Adobe PDF,как указать имя файла?

Сообщение kreator »

А если не будет указания? Может будет писать с учётом пути?
В общем, костыль. Понятно. С другим PDF-принтером наверняка придётся ещё как-то выкручиваться. Таким способом может не получиться.
We are hard at work… for you. :)
Аватара пользователя
vic7tar
Ветеран
Сообщения: 365
Зарегистрирован: 09 Февраль 2017, 20:12

Adobe PDF,как указать имя файла?

Сообщение vic7tar »

Nibirjanin писал(а): 22 Июль 2020, 17:58 В настройках Adobe PDF можно указать каталог куда писать, ...
Путь к этому каталогу прописан в реестре, у меня, например, сидит в
HKEY_USERS\S-1-5-21-4076159774-2704040536-2733586253-1001\Software\Adobe\Acrobat Distiller\DC\AdobePDFOutputFolder
Там и можно поменять параметр, не заходя в настройки печати Adobe PDF.
C10, Win10x64
Nibirjanin
Посетитель
Сообщения: 25
Зарегистрирован: 06 Апрель 2012, 20:10

Adobe PDF,как указать имя файла?

Сообщение Nibirjanin »

kreator писал(а): 22 Июль 2020, 21:50 А если не будет указания? Может будет писать с учётом пути?
В общем, костыль. Понятно. С другим PDF-принтером наверняка придётся ещё как-то выкручиваться. Таким способом может не получиться.
Adobe PDF не позволяет не указывать путь. Возможно, как написал vic7tar, подправить в регистре, но это уже перебор, мне кажется.
Для меня такое решение вполне приемлемо. Программа будет стоять на одном компе, и конфигурировать его буду я, или почти я.
Вот такую красоту печатать будет
ИзображениеИзображение
Nibirjanin
Посетитель
Сообщения: 25
Зарегистрирован: 06 Апрель 2012, 20:10

Adobe PDF,как указать имя файла?

Сообщение Nibirjanin »

Кстати, пока думал как сделать вывод в файл, наткнулся на библиотеку Quick PDF Library. Пока не пробовал, денег хотят за неё (есть полнофункциональный trial на месяц), а меня пока и Adobe PDF устраивает.
Ответить