Не хотите распечатать с помощью Adobe Acrobat 5.0 PDFWriter, Windows 10, VB6 и Crystal Reports? - PullRequest
0 голосов
/ 16 мая 2018

Я надеюсь получить помощь в решении проблемы с работой, которую я недавно «унаследовал» ... Компания, в которой я работаю, предоставила свои услуги, чтобы помочь им перенести приложение своей информационной системы с компьютеров с Windows XP на компьютеры с Windows 10.Основные компоненты программы были разработаны в Visual Basic 6, Crystal Reports 8 и Adobe Acrobat 5. Я уже знаю, что 99% людей ответили так: «Вам нужно обновить» или «Почему вы это используете ?!».Для этих людей ответ заключается просто в том, что моя непосредственная потребность - использовать то, что мне дали, и в конечном итоге я планирую перенести все на более новые версии этих основных компонентов.

Я уже внес некоторые коррективы в коди обнаружил некоторые другие обновленные драйверы для других зависимостей, и пока в ходе первоначального тестирования кажется, что приложение работает должным образом.

К сожалению, вчера я столкнулся с серьезной ошибкой, когда приложение пытается распечатать наПринтер «Adobe PDFWriter», который, по-видимому, не установлен в Windows 10, хотя я установил Adobe Acrobat 5.0 в качестве администратора, с опцией «Включить файлы PDFWriter», установленной во время установки.

  • Я не могу найти принтер в списке принтеров.
  • Я не могу найти какие-либо конкретные порты или драйверы для Adobe при попытке добавить принтер вручную.
  • Основной файл PDFWriter dll,«pdfddui.dll» и поддерживающие dll («pdfdd.dll», «pdfkd.dll») не существуют под «W»Расположение indows \ System32 \ spool \ drivers ", где они находятся на работающих компьютерах с Windows XP.
  • Основные библиотеки DLL и вспомогательные библиотеки, упомянутые выше, существуют в разделе" Windows \ System32 \ spool \ drivers \ x64 "."
  • При поиске в реестре основных dll или поддерживающих dll ничего не найдено, что указывает на то, что dll не удалось успешно зарегистрироваться.
  • При попытке вручную зарегистрировать dll с помощью" \Windows \ SysWoW64 \ regsvr32.exe "не удается.
  • При попытке вручную зарегистрировать библиотеки DLL с помощью" \ Windows \ System32 \ regsvr32.exe "не удается.

Код, которыйвыполняет следующее:

  • Динамически создает отчет Crystal из запроса SQL на основе параметров из формы.
  • Используется функция Crystal Reports "SelectPrinter", чтобы указатьPrinter.DriverName, Printer.DeviceName, Printer.Port
  • Он использует функцию CrystalOffts «PrintOut», чтобы указать, не запрашивать ли у пользователя ввод,e "Тихая печать".

Конечный результат, что мне нужно для репликации и что мне нужно, чтобы сообщества помогли, заключается в том, что Crystal Reports:

  • Печатает файл в формате PDF БЕСШУМНО без каких-либо действий пользователя.
  • Печатает файл с определенным именем файла.
  • Печатает файл в определенном месте.

Я попытался использовать встроенную в Microsoft печать в PDF, и это работает, НО он предлагает пользователю сохранить файл, он также имеет неправильное имя и местоположение по умолчанию, и я не вижу способачтобы программно изменить это с VB6.

Я бы предположил, что более новые версии Adobe Acrobat НЕ совместимы с Visual Basic 6, кроме того, лицензии на Adobe Acrobat довольно дорогие, когда ЕДИНСТВЕННАЯ функциональность, которая мне нужна, - это возможностьпрограммно печатать в PDF.

Любые полезные комментарии, предложения, решения будут очень цениться!

1 Ответ

0 голосов
/ 19 сентября 2018

Почему бы вам не добавить промежуточный скрытый шаг для экспорта отчета Crystal Report в файл PDF, а затем распечатать файл PDF, используя ShellExecute или другой метод.

pid = ShellExecute (0 &, "print", DocFile, vbNullString, vbNullString, vbNormalFocus) - это то, что я использую для автоматической печати PDF-файлов из VB6.

Если это не работаетЯ использовал драйвер принтера с именем CutePDF .Это бесплатно и Windows 10 готова.

...