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ü 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 替换为普通文本框。
我使用 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-标签:
看看这个 post 中的答案。您需要使用 PDFSharp 提供的方法手动完成。
编辑:如果您需要保留 HTML-标签,您可以使用 Converter.
Here 关于这个话题已经很老了 post。
对于 PDFSharp,此 post 中的答案可能会有所帮助
所以我找到了答案。 PDFSharp 有 XTextFormatter tf = new XTextFormatter(gfx);
它支持 \n \t \r
所以我确实将我的 richtextbox 替换为普通文本框。