java - 带有页面大小检测的 itext 7 html 到 pdf
问题描述
我正在使用 itext 7 将 HTML 模板(Velocity)渲染为 PDF,然后渲染为 PNG(Apache PdfBox),用于热敏打印机打印。
我的模板呈现为:
<html>
<head>
<style>...</style>
</head>
<body>
<div id="container">...</div>
</body>
</html>
我的容器的宽度固定为 512px。我想测量 html 的渲染高度,然后将其渲染为单页 PDF,页面高度 = 测量高度。
但是渲染的大小不是预期的大小。我希望渲染的宽度为 512px,但 layoutResult 返回的宽度为 385(而不是预期的 512)。
我错过了哪个参数?谢谢。
解决方案
请查看常见问题解答条目HTML 中的测量系统如何与 PDF 中的测量系统相关联?你会发现:
1 英寸 = 96 像素
1 英寸 = 72 个用户单位 = 72 pt
查看您拥有的数字,您似乎在混淆像素和点。
96 px = 72 pt
512 px = 512 / 96 * 72 pt
512 px = 384 pt
我猜你期望 512 px 并得到 384 pt,但这不是错误,因为 512 px 等于 384 pt。因此没有问题。您的问题的主要问题是您忘记提及测量系统。
推荐阅读
- c# - 如何使用 Blazor 组件访问当前路由
- c# - 如何在特定时间范围内删除 C# 中的所有 mongo 文档
- python-3.x - 在预测测试结果时,reshape 函数导致错误。(AttributeError: 'Series' object has no attribute 'reshape')
- redis - 保存redis的执行状态或关闭后恢复(不是数据库而是redis数据)
- xamarin.forms - Xamarin 表单:如何仅为 Collectionview 中的选定项目添加下划线
- c# - 将子类对象转换为基类对象
- java - 当一个对象在堆转储分析中仅被“this$0”引用时,这意味着什么?
- c# - C#如何准备项目模板/骨架
- ubuntu - 使用 setup.py 错误在 Apache2 上安装 Trac
- mvvm - SwiftUI 最简单的 MVVM