html - 需要帮助解决在将 HTML 转换为 PDF 时 Select.pdf 仅呈现最后一页上一半内容的错误
问题描述
我正在尝试使用 Razor ASP.NET 页面和 Select.pdf 将 HTML 呈现为 PDF。
起初,一切似乎都很好,并且报告生成正确。但是后来我开始在报告的末尾添加图像,由于某种原因,这导致最后一页渲染不正确,导致只有一半的内容被渲染。不是页面的一半,而是最后一页内容的一半。因此,如果我在最后一页上有一个图像,则呈现一半图像。如果我有两个并排的图像,它将渲染到两个图像中最高的图像的一半。如果我在图像之后添加文本,它会渲染更多,直到它是图像高度的一半 + 文本。
有没有人遇到过这个错误?如果是这样,我怎样才能使 PDF 生成器正常工作?
编辑:我添加图像的方式是通过 for 循环添加它们,因为我需要动态添加它们。因此,我遍历一个 URL 列表并从那里提取图像并将它们链接起来,每行两个图像,每页最多四个图像。
如果我直接查看 HTML,浏览器会正确呈现它。但是当试图通过 Select.PDF 将其渲染成 PDF 时,会导致前面提到的“只渲染一半内容”的错误。尽管我通过将图像文本与图像本身分开,成功地使其渲染低于该值(下降到大约 10%;图像的一小部分)。
我使用的for循环如下:
@{counter = 0;}
@foreach (var image in Model.ReportImages)
{
@if (counter == 4)
{
<p style="page-break-before: always; clear: both;"></p>
counter = 0;
}
<p style="float: left; width:45%; height:45%; text-align: center; margin-right:2%; margin-bottom: 2%; page-break-inside: avoid;"><img src="@Url.Content(image.ImageURL)" alt="IMAGES" style="width: 100%; page-break-inside: avoid;"/>@image.QuestionNumber</p>
counter++;
}
解决方案
推荐阅读
- mysql - 如何最好地刷新 EC2 中的暂存实例
- vb.net - 删除文本文件内容中的双引号
- javascript - Puppeteer 从外部 .js 文件调用 javascript 函数
- vba - CreateObject("ADODB.Command") - 运行时错误“429”:ActiveX 组件无法创建对象
- gradle - Gradle中相同依赖项的多个版本冲突
- javascript - 如何从脏形式的对象中获取值并放入数组中?
- python - 读取字符串并减少它们
- java - Android Studio Java JSON 获取数据问题
- java - Java 应用程序无法处理每周四晚上传入的特殊文件,而 Cassandra 抛出错误
- mysql - 我在 Mysql 中同时处理购买的方式是否正确?