mon*_*ton 4 vb.net pdf export rdlc
我有一份报告,我需要多次运行并另存为PDF.我目前正在以编程方式生成PDF报告,但希望保存报告,而无需用户每次手动选择保存选项.
我用来将单个报告呈现为PDF的代码是:
Dim warnings As Microsoft.Reporting.WebForms.Warning() = Nothing
Dim streamids As String() = Nothing
Dim mimeType As String = Nothing
Dim encoding As String = Nothing
Dim extension As String = Nothing
Dim deviceInfo As String
Dim bytes As Byte()
Dim lr As New Microsoft.Reporting.WebForms.LocalReport
deviceInfo = "<DeviceInfo><SimplePageHeaders>True</SimplePageHeaders></DeviceInfo>"
bytes = ReportViewer1.LocalReport.Render("PDF", deviceInfo, mimeType, encoding, extension, streamids, warnings)
Response.ClearContent()
Response.ClearHeaders()
Response.ContentType = "application/pdf"
Response.BinaryWrite(bytes)
Response.Flush()
Response.Close()
Run Code Online (Sandbox Code Playgroud)
我想我可以循环运行它并且每次都保存PDF.
你在这里有什么问题?它不起作用吗?
这是我们在2005年所做的事情的一个例子.我们定义了一个名为rptViewer1的控件,它可以根据您的需要显示或不显示.strFormat应包含"PDF"和strNomFicher的完整路径.
BTW变量名称和功能都是法语,但无论如何都会有效:)
Public Sub CreerFichierRapport(ByVal strNomFichier As String, ByVal strFormat As String)
Dim bytes() As Byte
Dim strDeviceInfo As String = ""
Dim strMimeType As String = ""
Dim strEncoding As String = ""
Dim strExtension As String = ""
Dim strStreams() As String
Dim warnings() As Warning
Dim oFileStream As FileStream
_stream = New List(Of Stream)
Try
bytes = rptViewer1.LocalReport.Render(strFormat, strDeviceInfo, strMimeType, strEncoding, strExtension, strStreams, warnings)
oFileStream = New FileStream(strNomFichier, FileMode.Create)
oFileStream.Write(bytes, 0, bytes.Length)
_stream.Add(oFileStream)
Finally
If Not IsNothing(oFileStream) Then
oFileStream.Close()
oFileStream.Dispose()
End If
End Try
End Sub
大卫的回答对我很有帮助.我想我会发布这个代码的简化和(略)翻译版本,因为原文包含一些法语,还有一些不相关的引用:
Imports Microsoft.Reporting.WebForms
Imports System.IO
Public Class RenderToPDF
Public Sub Save(ByVal viewer As ReportViewer, ByVal savePath As String)
Dim Bytes() As Byte = viewer.LocalReport.Render("PDF", "", Nothing, Nothing, Nothing, Nothing, Nothing)
Using Stream As New FileStream(savePath, FileMode.Create)
Stream.Write(Bytes, 0, Bytes.Length)
End Using
End Sub
End Class
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29752 次 |
| 最近记录: |