C#将html转换为图像
我正在尝试使用位图将HTML字符串转换为图像。我将其转换,但是它非常像素化,质量低。我使用的代码如下。
string pdfDest = HttpContext.Current.Server.MapPath("~/serverFiles/caratula.pdf");
var tabla = "<!DOCTYPE html><body><table id =\"caratula\" class=\"tabla-caja mb-4\" summary=\"Justificante\" style=\"border: 1px solid #aeccd3; float: right; color: #394146; font-family: 'Roboto'; font-size: 0.9em; padding: -2px;\"> <tbody> <tr><td style=\"padding: 5px 10px; text-align: right; border-right: 1px solid #aeccd3;border-color: #aeccd3; background-color: #FFFFFF\" scope=\"col\">21 Zabalgunea Bulegoa<br> <span id=\"tipoDocEU\">SARRERA</span></td> <td class=\"text-start light\" style=\"padding: 5px 10px; background-color: #FFFFFF\" scope=\"col\">Oficina Ensanche 21<br> <span id=\"tipoDocES\">ENTRADA</span></td> </tr></tbody> <tfoot> <tr><td scope=\"col\" colspan=\"2\" style=\"border-top: 1px solid #aeccd3; text-align: center; padding: 5px 10px; margin-top: -2px; background-color: #FFFFFF\"><span id=\"cabecera\" style=\"padding-right: 0.5em; padding-left: 0.5em; text-transform: uppercase;\">02/05/2022 12:41 - 2022RPE00000168</span></td></tr></tfoot> </table></body></html>";
using (var ms = new MemoryStream(10 * 1024))
using (var reader = new PdfReader(file))
using (var stamper = new PdfStamper(reader, ms))
{
int numberOfPages = reader.NumberOfPages;
string caratula = HttpContext.Current.Server.MapPath("~/serverFiles/caratula.png");
var ps = reader.GetPageSizeWithRotation(1); /*dc.PdfDocument.PageSize is not always correct*/
var x = ps.Right - 270;
var y = ps.Top - 105;
System.Drawing.Bitmap m_Bitmap = new System.Drawing.Bitmap(355, 110);
System.Drawing.PointF point = new System.Drawing.PointF(10, 10);
System.Drawing.SizeF maxSize = new System.Drawing.SizeF(355, 110);
TheArtOfDev.HtmlRenderer.WinForms.HtmlRender.RenderGdiPlus(System.Drawing.Graphics.FromImage(m_Bitmap),
tabla.Replace("\"", "\'"),
point, maxSize);
m_Bitmap.SetResolution(355, 110);
m_Bitmap.Save(caratula, System.Drawing.Imaging.ImageFormat.Png);
}
什么问题或如何解决我的问题? 谢谢
I am trying to convert a HTML string to an image using bitmap. I convert it, but it is very pixelated, with low quality. The code I'm using is the following.
string pdfDest = HttpContext.Current.Server.MapPath("~/serverFiles/caratula.pdf");
var tabla = "<!DOCTYPE html><body><table id =\"caratula\" class=\"tabla-caja mb-4\" summary=\"Justificante\" style=\"border: 1px solid #aeccd3; float: right; color: #394146; font-family: 'Roboto'; font-size: 0.9em; padding: -2px;\"> <tbody> <tr><td style=\"padding: 5px 10px; text-align: right; border-right: 1px solid #aeccd3;border-color: #aeccd3; background-color: #FFFFFF\" scope=\"col\">21 Zabalgunea Bulegoa<br> <span id=\"tipoDocEU\">SARRERA</span></td> <td class=\"text-start light\" style=\"padding: 5px 10px; background-color: #FFFFFF\" scope=\"col\">Oficina Ensanche 21<br> <span id=\"tipoDocES\">ENTRADA</span></td> </tr></tbody> <tfoot> <tr><td scope=\"col\" colspan=\"2\" style=\"border-top: 1px solid #aeccd3; text-align: center; padding: 5px 10px; margin-top: -2px; background-color: #FFFFFF\"><span id=\"cabecera\" style=\"padding-right: 0.5em; padding-left: 0.5em; text-transform: uppercase;\">02/05/2022 12:41 - 2022RPE00000168</span></td></tr></tfoot> </table></body></html>";
using (var ms = new MemoryStream(10 * 1024))
using (var reader = new PdfReader(file))
using (var stamper = new PdfStamper(reader, ms))
{
int numberOfPages = reader.NumberOfPages;
string caratula = HttpContext.Current.Server.MapPath("~/serverFiles/caratula.png");
var ps = reader.GetPageSizeWithRotation(1); /*dc.PdfDocument.PageSize is not always correct*/
var x = ps.Right - 270;
var y = ps.Top - 105;
System.Drawing.Bitmap m_Bitmap = new System.Drawing.Bitmap(355, 110);
System.Drawing.PointF point = new System.Drawing.PointF(10, 10);
System.Drawing.SizeF maxSize = new System.Drawing.SizeF(355, 110);
TheArtOfDev.HtmlRenderer.WinForms.HtmlRender.RenderGdiPlus(System.Drawing.Graphics.FromImage(m_Bitmap),
tabla.Replace("\"", "\'"),
point, maxSize);
m_Bitmap.SetResolution(355, 110);
m_Bitmap.Save(caratula, System.Drawing.Imaging.ImageFormat.Png);
}
What is wrong or how can I solve my problem?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论