我有一个通过ASP.NET呈现的HTML页面。当我通过HtmlRenderer.PdfSharp生成PDF时,图像在PDF中显示为红色X(缺少图像),而其余HTML则正确显示。图像不是链接,它们是二进制对象。
private void PdfFormat(string _body, ref MemoryStream _stream)
{
Bitmap bitmap = new Bitmap(790, 1800);
Graphics g = Graphics.FromImage(bitmap);
XGraphics xg = XGraphics.FromGraphics(g, new XSize(bitmap.Width, bitmap.Height));
TheArtOfDev.HtmlRenderer.PdfSharp.HtmlContainer container = new TheArtOfDev.HtmlRenderer.PdfSharp.HtmlContainer();
container.SetHtml(_body);
PdfDocument pdf = new PdfDocument();
PdfPage page = new PdfPage();
XImage img = XImage.FromGdiPlusImage(bitmap);
pdf.Pages.Add(page);
XGraphics xgr = XGraphics.FromPdfPage(pdf.Pages[0]);
container.PerformLayout(xgr);
container.PerformPaint(xgr);
xgr.DrawImage(img, 0, 0);
pdf.Save(_stream, false);
}
答案 0 :(得分:0)
问题出在解码体中,而不是pdf生成器中。将关闭此问题并打开一个新的问题。
答案 1 :(得分:-1)
您可以使用html2canvas,这肯定会解决您的问题。
const doc = new jsPDF();
var canvasElement = document.createElement('canvas');
html2canvas(this.$refs.content, { canvas: canvasElement
}).then(function (canvas) {
const img = canvas.toDataURL("image/jpeg", 0.8);
doc.addImage(img,'JPEG',30,20);
doc.save("pdfName.pdf");
});
不要忘记导入:
import jsPDF from 'jspdf'
import html2canvas from "html2canvas"