Это не совсем то, что вы просили, но я собираюсь опубликовать это, потому что это может сработать для вас.Я сделал для меня в аналогичной ситуации.Также извините за синтаксис VB
Это позволит вам создавать отчеты в формате PDF с помощью механизма Crystal Reports.По сути, это позволит вам создать несколько PDF-файлов с помощью цикла, который затем можно распечатать автоматически. Sub Export PDF запишет файл на диск, а затем откроет его с помощью программы чтения PDF-файлов по умолчанию.Функция печати PDF автоматически распечатает файлы PDF, которые были сохранены на диск.Это не идеальное решение, но я надеюсь, что оно хотя бы приблизит вас к тому, чего вы пытаетесь достичь.
Открытый класс PDFCR
Private Const SW_SHOWNORMAL As Integer = 2
<DllImport("shell32")> _
Public Shared Function ShellExecute(ByVal hWnd As IntPtr, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Integer) As IntPtr
End Function
Public Shared Sub ExportPDF(ByVal crDOC As ReportDocument, ByVal FilePath As String)
Dim CrExportOptions As ExportOptions
Dim CrDiskFileDestinationOptions As New DiskFileDestinationOptions()
Dim CrFormatTypeOptions As New PdfRtfWordFormatOptions()
CrDiskFileDestinationOptions.DiskFileName = FilePath
CrExportOptions = crDOC.ExportOptions
CrExportOptions.ExportDestinationType = ExportDestinationType.DiskFile
CrExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat
CrExportOptions.DestinationOptions = CrDiskFileDestinationOptions
CrExportOptions.FormatOptions = CrFormatTypeOptions
crDOC.Export()
Process.Start(FilePath)
End Sub
Public Shared Function PrintPDF(ByVal FilePath As String) As Boolean
If IO.File.Exists(FilePath) Then
If ShellExecute(CType(1, IntPtr), "Print", FilePath, "", _
Directory.GetDirectoryRoot(FilePath), SW_SHOWNORMAL).ToInt32 <= 32 Then
Return False
Else
Return True
End If
Else
Return False
End If
End Function
Конечный класс
У меня возникли проблемы с отображением импорта в этом блоке кода, поэтому они представлены в виде обычного текста.
Импортирует System.IO
Импорт System.Management
Импорт CrystalDecisions.Shared
Импорт System.Runtime.InteropServices
Импорт CrystalDecisions.CrystalReports.Двигатель