PDFSharp解析富文本字符串

本文关键字:文本 字符串 PDFSharp | 更新日期: 2023-09-27 17:59:45

我使用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();

PDFSharp解析富文本字符串

不幸的是,PDFSharp不支持HTML标签:

看看这篇文章中的答案。您需要使用PDFSharp提供的方法手工完成。

编辑:如果你需要保留HTML标签,你可以使用转换器。

这是关于这个话题的一篇相当古老的帖子。

对于PDFSharp,本文中的答案可能有助于

所以我找到了答案。PDFSharp具有XTextFormatter tf = new XTextFormatter(gfx);它支持'n 't 'r,所以我必须将我的richtextbox交换机替换为普通的textbox。