我正在使用HtmlRenderer(1.5.0.6)和PdfSharp(1.32.3057)从HTML生成PDF,这是通过将大量数据传递到Razor模板生成的。数据被呈现到一些表格中,这些表格值排列在四列标签和值对中,而主体是一系列div,用于每个部分中每行数据的节头和表格,跨越六列数据。结果可以扩展到第二或第三(或更多)页面。
某些结果行包含图像。如果存在任何单个结果的图像,则将它们放置在跨越单个单元格中的六列的表格行中。
一切都很美妙。 。 。直到在Adobe Acrobat Reader中查看PDF。在Chrome,IE或Edge中,没有任何问题。正如预期的那样,完整的结果显示了所需的页数。在Acrobat中,只有第一页显示内容,包含图像,所有后续页面均为空白。
仅当存在图像时才会发生这种情况。如果没有包含任何结果的图像,则PDF将在Acrobat中按预期显示在所有页面上。问题不在于图像的存在,因为它们显示在Acrobat的第一页上。
以下是生成的HTML,它紧挨着分页符的上方和下方:
<div class="section header">Emergency Plan</div>
<table class="answers">
<thead>
<tr>
<th class="column-width-double"></th>
<th class="column-width-half"></th>
<th class="column-width-double"></th>
<th class="column-width"></th>
<th class="column-width"></th>
<th class="column-width-half"></th>
</tr>
</thead>
<tbody>
<tr>
<td>Exits plans posted</td>
<td colspan="4"></td>
<td class="green">OK</td>
</tr>
<tr class="issue-row">
<td>Emergency contact info accurate</td>
<td>Issue</td>
<td>Emergency contact info accurate Issue</td>
<td>Unassigned</td>
<td>Misc.</td>
<td>Not Down</td>
</tr>
<tr>
<td colspan="6">
<img class="question-image" src="data:image/jpg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj9=" />
<img class="question-image" src="data:image/jpg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCACiAOwDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFB=" />
<br/>
<br/>
</td>
</tr>
<tr>
<td>Exit drill performed annually</td>
<td colspan="4"></td>
<td class="green">OK</td>
</tr>
</tbody>
</table>
<div class="section header">Ladders</div>
<table class="answers">
<thead>
<tr>
<th class="column-width-double"></th>
<th class="column-width-half"></th>
<th class="column-width-double"></th>
<th class="column-width"></th>
<th class="column-width"></th>
<th class="column-width-half"></th>
</tr>
</thead>
<tbody>
<tr>
<td>Safety feet, good condition, labels intact, used properly</td>
<td colspan="4"></td>
<td class="green">OK</td>
</tr>
<tr>
<td>Monthly checks completed and documented</td>
<td colspan="4"></td>
<td class="green">OK</td>
</tr>
</tbody>
</table>
在耗尽了我能找到的所有选项之后,我想知道HTML中是否存在HtmlRenderer或PdfSharp不满意的内容,这会导致Acrobat Reader更加不开心?
我在生成的HTML中找不到任何错误。
编辑:预感到BR标签可能导致问题,我用CSS中的一些填充底部替换它们。这也没有帮助。
编辑:找到安装了Full Acrobat的计算机。打开那里,同样的问题。单击“编辑”,每个元素的布局将以空心边框的形式显示在空白页上。导出到Word,一切都按预期显示。
答案 0 :(得分:1)
您需要重新构建HTML。遗憾的是,渲染器不支持复杂的HTML,您无法在标记内部使用标记。使用CSS结构化HTML而不是表格用于此场景。