C# RDLC报告导出为pdf时显示垃圾的Unicode(泰语)字符
我在将包含Unicode字符的rdlc报告导出到pdf时遇到问题。导出泰语数据时,显示为垃圾,如下所示-C# RDLC报告导出为pdf时显示垃圾的Unicode(泰语)字符,c#,.net,vb.net,rdlc,dynamic-rdlc-generation,C#,.net,Vb.net,Rdlc,Dynamic Rdlc Generation,我在将包含Unicode字符的rdlc报告导出到pdf时遇到问题。导出泰语数据时,显示为垃圾,如下所示- 实际上是ลูกค้า。数据在网页上正确显示,但导出时显示垃圾数据 这就是我到目前为止所做的- Private Sub CreateReport(ByVal FileType As String, ByVal selectedFile As String, ByVal reportName As String) Dim warnings As Warning() = Noth
实际上是ลูกค้า代码>。数据在网页上正确显示,但导出时显示垃圾数据
这就是我到目前为止所做的-
Private Sub CreateReport(ByVal FileType As String, ByVal selectedFile As String, ByVal reportName As String)
Dim warnings As 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 = Nothing
Dim viewer As New Microsoft.Reporting.WebForms.ReportViewer()
Try
deviceinfo = "<DeviceInfo>" &
"<OutputFormat>" & FileType & "</OutputFormat>" &
"<PageWidth>13.15in</PageWidth>" &
"<PageHeight>9in</PageHeight>" &
"<MarginTop>0.5in</MarginTop>" &
"<MarginLeft>0.1in</MarginLeft>" &
"<MarginRight>0.1in</MarginRight>" &
"<MarginBottom>0.5in</MarginBottom>" &
"</DeviceInfo>"
Dim byteViewer As Byte() = rpt.LocalReport.Render(FileType, deviceinfo, mimeType, encoding, extension, streamids, warnings)
'Dim newFile As New FileStream(selectedFile, FileMode.Create)
'newFile.Write(byteViewer, 0, byteViewer.Length)
'newFile.Close()
Response.Buffer = True
Response.Clear()
Response.ContentType = mimeType
'Response.AddHeader("content-disposition", "attachment; filename=" & hdnCustomerId.Value.ToString() & " " & reportName & " " & FinIQApp_Date.FinIQDateTime(DateTime.Now()) & ".pdf")
Response.AddHeader("content-disposition", "attachment; filename=" & hdnCustomerId.Value.ToString() & " " & reportName & ".pdf")
'Response.Charset = ""
Response.ContentEncoding = System.Text.Encoding.UTF8
Response.BinaryWrite(System.Text.Encoding.UTF8.GetPreamble())
'Dim Text As String = System.Text.Encoding.UTF8.GetString(byteViewer)
'Response.Write(Text)
'Response.End()
Response.BinaryWrite(byteViewer)
Response.Flush()
Catch ex As Exception
LogTheException("Exception:" & ex.Message.ToString & ex.StackTrace().ToString(), ex,sSelfPath, "CreateReport")
End Try
End Sub
Private Sub CreateReport(ByVal FileType作为字符串,ByVal selectedFile作为字符串,ByVal reportName作为字符串)
将警告变暗为警告()=无
将StreamID设置为字符串()=无
Dim mimeType作为字符串=无
Dim编码为字符串=无
作为字符串的Dim扩展名=无
Dim deviceinfo作为字符串=无
Dim viewer作为新的Microsoft.Reporting.WebForms.ReportViewer()
尝试
deviceinfo=“”&
文件类型(&F)&
“13.15英寸”&
“9英寸”&
“0.5英寸”&
“0.1英寸”&
“0.1英寸”&
“0.5英寸”&
""
Dim byteViewer As Byte()=rpt.LocalReport.Render(文件类型、设备信息、mimeType、编码、扩展、流ID、警告)
'将新文件设置为新文件流(selectedFile,FileMode.Create)
'newFile.Write(字节查看器,0,字节查看器.Length)
'newFile.Close()
Response.Buffer=True
答复:Clear()
Response.ContentType=mimeType
'Response.AddHeader(“内容处置”、“附件;文件名=“&hdnCustomerId.Value.ToString()&”“&reportName&”“&FinIQApp_Date.FinIQDateTime(DateTime.Now())&.pdf”)
Response.AddHeader(“内容处置”、“附件;文件名=“&hdnCustomerId.Value.ToString()&”&reportName&“.pdf”)
'Response.Charset=“”
Response.ContentEncoding=System.Text.Encoding.UTF8
Response.BinaryWrite(System.Text.Encoding.UTF8.getPremission())
'Dim Text As String=System.Text.Encoding.UTF8.GetString(字节查看器)
'响应。写入(文本)
'Response.End()
Response.BinaryWrite(字节查看器)
Response.Flush()
特例
LogTheException(“异常:&ex.Message.ToString&ex.StackTrace().ToString(),ex,sSelfPath,“CreateReport”)
结束尝试
端接头
我已经通过了这个和其他许多链接。我认为问题可能出在Response.BinaryWrite(byteViewer)
中,因为它可能无法从rpt.LocalReport.Render获取正确的二进制数据
请帮忙解决。谢谢如果用于显示“泰语数据”的字体符合嵌入PDF的条件?请参阅:。用于显示“泰语数据”的字体是否符合嵌入PDF的条件?请参阅:。