PDFSharp解析富文本字符串

PDFSharp parsing rich text string

我使用 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 不支持 HTML-标签:

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

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

Here 关于这个话题已经很老了 post。

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

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