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ü 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标签:
看看这篇文章中的答案。您需要使用PDFSharp提供的方法手工完成。
编辑:如果你需要保留HTML标签,你可以使用转换器。
这是关于这个话题的一篇相当古老的帖子。
对于PDFSharp,本文中的答案可能有助于
所以我找到了答案。PDFSharp具有XTextFormatter tf = new XTextFormatter(gfx);
它支持'n 't 'r
,所以我必须将我的richtextbox交换机替换为普通的textbox。