Вы немного не правильно меня поняли … Это делалось давно, но прекрасно работает и сейчас ...
Идея простая как пробка - получить обычный REPORT в PDF файл. Самый хороший вариант - программа работает
под Windows 10 и пользователь не отключил штатный 'Microsoft Print to PDF' (и такое бывает тоже), иначе пробуем
переключится на какой-нибудь из установленных PDF принтеров, в т.ч. и упомянутый Вами в суе 'Adobe PDF Printer'.
Здесь хорошо использовать свойство, что можно переключится только на существующее в системе имя принтера.
Я просто не стал грузить пример лишними подробностями, но переключение на принтер выглядит примерно так.
Код: Выделить всё
Printer{PropPrint:Device} = 'Microsoft Print to PDF'
If Clip(Upper(Printer{PropPrint:Device})) = Upper('Microsoft Print to PDF') then Loc:xOK = True.
If Loc:xOK = False
Printer{PropPrint:Device} = 'Adobe PDF Printer'
If Clip(Upper(Printer{PropPrint:Device})) = Upper('Adobe PDF Printer') then Loc:xOK = True.
end
If Loc:xOK = False
Printer{PropPrint:Device} = 'PDF Printer'
If Clip(Upper(Printer{PropPrint:Device})) = Upper('PDF Printer') then Loc:xOK = True.
end
…...
If Loc:xOK = False
Message('Установите PDF принтер или переименуйте его в 'PDF Printer')
end
Of 2 OrOf 3 ! XPS / OXPS
Printer{PropPrint:Device} = 'Microsoft XPS Document Writer'
...
Хотя конечно, можно найти какой-нибудь самопальный драйвер PDF принтера, который не выполняет всех команд.