PDFSharp解析富文本字符串

时间:2016-08-02 08:21:51

标签: c# pdfsharp richtext

我使用richtextbox创建文本块并将其保存到数据库。之后,我试图用字符串创建一个PDF。

我的问题是我无法找到在PDF中显示格式化字符串的方法,它显示了每个< p>等而不是正确使用它们。如果用PDFsharp不可能有其他可能性吗?

 // Create a new PDF document
 PdfDocument document = new PdfDocument();

 // Create an empty page            
 PdfPage oPage = document.AddPage();

 // Get an XGraphics object for drawing
 XGraphics gfx = XGraphics.FromPdfPage(oPage);

 //Drawing Images and Rectangles and other things


 //sText is just an example of what my DB string looks like 
 string sText = "<p>Here you can see formattet text<\p> \n 
 always multiple rows and some  g&uuml;  or /r"


 gfx.DrawString(sText, NormalText, XBrushes.Black, new XRect(XUnit.FromCentimeter(3.2), XUnit.FromCentimeter(16.35), oPage.Width, oPage.Height), null);


 // Send PDF to browser
 MemoryStream stream = new MemoryStream();
 document.Save(stream, false);
 Response.Clear();
 Response.ContentType = "application/pdf";
 Response.AddHeader("content-length", stream.Length.ToString());
 Response.BinaryWrite(stream.ToArray());
 Response.Flush();
 stream.Close();
 Response.End();

2 个答案:

答案 0 :(得分:1)

不幸的是,PDFSharp不支持HTML-Tags:

查看此post中的答案。您需要使用PDFSharp提供的方法手动完成。

编辑:如果您需要保留HTML标签,可以使用Converter

Here是关于此主题的相当古老的帖子。

对于PDFSharp,此post中的答案可能会有所帮助

答案 1 :(得分:0)

所以我找到了答案。 PDFSharp有XTextFormatter tf = new XTextFormatter(gfx); 它支持\n \t \r所以我用普通的文本框替换了我的richtextbox。