Можно использовать ShellExecute и не заморачиваться с выбором конкретного приложения
X++:
#WinAPI
WinApi::shellExecute("имя файла",
'',
"Директория, где лежит файл",
#ShellExePrint);
Достоинства
- Простота
- Не нужно знать конкретное приложение, которое может печатать файлы
Недостатки
- Отсутствие управляемости
- Приложение для печати должно быть зарегистрировано в системном реестре и иметь в нем команду для печати (опция PRINT для ShellExecute)
- Если есть несколько приложений для печати файла данного типа, то выбрано будет то, которое зарегистрировано последним.
По сути, в таком синтаксисе - это поиск приложения по работе с файлом по настроенным ассоциациям с расширением файла. Вещь своеобразная. Но можно использовать как команду на печать по умолчанию, когда явно не сказано с каким приложением работает данный тип файла