Как я могу программно распечатать DataReport в PDF-файл? - PullRequest
0 голосов
/ 06 июня 2011

Я обновляю старый код VB6, чтобы сохранить его DataReports в PDF, а не выводить диалоговое окно печати. ​​

Я не могу просто написать PDF в коде (используя библиотеку PDF VB6 и т. Д.), Поскольку все наше программное обеспечение уже использует DataReports, и написание кода для каждого из них в лучшем случае было бы утомительным. В настоящее время процесс требует, чтобы сотрудник распечатал DataReport в драйвер печати PDF, назвав его вручную и сохранив в том месте, куда он должен идти. Мне нужно автоматизировать все это, чтобы имя и местоположение сохраненного PDF-файла можно было задавать программно, а не вводить вручную.

Лучшее решение было бы, если бы в DataReport просто была подпрограмма .SaveToPdf(filename). В худшем случае я вижу, как автоматизирую процесс, используя SendKeys. Однако это решение должно работать в среде с несколькими возможными принтерами (таким образом, драйвер печати PDF может отличаться от используемого по умолчанию) и в Windows XP, Vista или 7.

Я безуспешно пытался найти проблему в Google, которая возвращает только уроки о том, как сделать это вручную, так же, как мы делаем сейчас.

Ответы [ 3 ]

2 голосов
/ 07 июня 2011

Возможно, вы захотите использовать драйвер принтера PDF, который позволяет настроить «тихую» печать в заданный каталог, используя автоматически сгенерированные имена.

Пример такого продукта см .:

http://www.iteksoft.com/modules.php?op=modload&name=Sections&file=index&req=viewarticle&artid=21

1 голос
/ 06 июня 2011

Я бы создал диалоговое окно, в котором пользователь мог бы ввести имя принтера (драйвера), каталог для сохранения и руководство по именованию файлов, а затем сохранить его либо в локальном INI-файле, либо в реестре.Затем вам понадобятся две кнопки / меню печати.Один для печати прямо на принтер с использованием настроек (сохраненных) по умолчанию, а другой, который открывает окно печати, которое они видят сейчас, чтобы они могли выполнять пользовательскую печать.

Помните, что многоточие на пункте меню указывает на дополнительные диалоги Печать против Печать ...

0 голосов
/ 22 ноября 2014

Просто используйте Crystal Report Viewer Control и выполните шаги:

Set objRpt = objApp.OpenReport("type report path and name")

objRpt.DiscardSavedData
dim filepath as string
filepath = report path & report filename

With objRpt

    .ExportOptions.FormatType = crEFTPortableDocFormat
    .ExportOptions.DestinationType = crEDTDiskFile
    .ExportOptions.DiskFileName = 'filepath string goes here
    .ExportOptions.PDFExportAllPages = True
    .Export False
End With

Выполните следующие действия, и экспорт будет завершен.

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