使用File.WriteAllBytes(filePath,byteData)生成的pdf错误

时间:2014-04-09 06:03:22

标签: vb.net silverlight pdf-generation bytearray richedit-control

我正在尝试使用字节数组生成pdf文件。 使用的代码是:

Public Sub SavePdf(ByVal bytes() As Byte)
    Dim filePath As String = HttpContext.Current.Server.MapPath("~/ClientBin/file1.pdf")
    Dim byteData() As Byte = bytes
    File.WriteAllBytes(filePath,byteData)
End Sub

使用richEditControl生成字节数组。代码如下:

 Public Sub generateByte_Click(ByVal sender As Object, ByVal e As System.EventArgs)
    Dim ms As MemoryStream = New MemoryStream()
    ms.Flush()
    richEditControl1.SaveDocument(ms, DocumentFormat.Rtf)
    client.SavePdf(ms.ToArray())
    MessageBox.Show("FileSaved")
End Sub

如此生成的文件无法打开。

1 个答案:

答案 0 :(得分:2)

我不认为.Rtf(Rich Text Format)数据相当于.Pdf(Portable document format)。

您似乎正在使用DevExpress RichEditControl,它似乎不支持直接保存PDF文件,请参阅可用文档document formats

我建议使用.Rtf扩展名保存RTF数据,并在写完后使用RTF到PDF文档转换器,或使用像PDFsharp这样的Pdf文档编写器库。

要将.Rtf文件转换为.Pdf,您可以automate Microsoft Word(如果您可以认为它将在目标计算机上)或使用独立的.Net库,例如