pdf2json 页面单位:它是什么?

2024-03-30

我尝试使用谦虚/pdf2json,输出非常有用,但我尝试计算该库使用的度量单位。他们称之为“页面单位”,根据 pdf 规范,这不等于 1/72(点),因为整个页面的高度有 51 个页面单位

有人知道这个页面单位是什么吗?我在哪里可以找到有关此测量的信息?

提前谢谢了。


长话短说 需要理解的重要一点是,x、y 和元素宽度/高度是相对单位,它们与页面宽度/高度的比率相关,可以通过除以现有单位并乘以所需单位将其转换为任何目标比率。

以下是一些无聊的细节:

PDF 没有标准“尺寸”——您可以将任何您喜欢的内容打印到 PDF,其中可能包括横向或纵向、不同的页面尺寸(标准、A0-A5、Legal、Tabloid、自定义)等。 PDF 以英寸为单位,因此到像素的转换(包括 pdf2json)不是固定的“24px”,如 @async5 的答案中所示。

以编程方式获得您想要的结果的关键是利用解析的 PDF 信息(页面宽度和页面高度)以及您需要如何渲染它(像素数因显示分辨率的密度而异,但“英寸”始终是“英寸” ") 以及如何将其转化为您所定位的目标分辨率。

由于同一物理设备通常支持多种分辨率(更改逻辑 DPI) - 原始像素密度和用户设置的合成密度之间可能存在差异,因此从 PDF 单元转换为本地显示的基础是是由 PDF 文件与其物理渲染版本的目标 dpi 之间的差异组成的比例因子。同样的想法也适用于 PDF 解析库,该库可能使用与 pdf 文件本身的本机“72dpi”不同的 DPI。

虽然 96dpi 是 Microsoft 标准尺寸(72dpi 是 Apple 的标准),但选择任何一个都不会为您提供正确的像素偏移 b/c pdf2json 或 pdf.js 对最终用户显示一无所知。对于 pdf2json 坐标 (x/y),它们只是平面上位置(由宽度/高度定义)之间的相对测量值。因此标准化为 72dpi 的 8.5"x11" 位置将如下完成:

pdfRect.x = pdfRect.x * ((8.5 * 72) / parsedPdf.formImage.Width); pdfRect.y = pdfRect.y * ((11 * 72) / parsedPdf.formImage.Pages[0].Height);

无论 pdf2json 的内部 DPI 是多少,或者坦率地说,您选择使用任何其他 PDF 解析库,这种公式都可以工作。这是因为它通过使用您需要的任何单位进行除法和乘法来抵消这些单位。即使今天 pdf2json 内部使用 96dpi 并缩小 1/4,后来更改为 72dpi 并缩小 1/2,上面用于转换为像素偏移和 dpi 的数学将独立于该代码更改而工作。

希望这有帮助。当我处理这个问题时,互联网上似乎缺少这个问题的详细版本。许多人解决特定的具体源/目标解析问题(包括特定于库的问题)或抽象地谈论它,但没有非常清楚地解释其中的关系。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pdf2json 页面单位:它是什么? 的相关文章

随机推荐

  • XML-RPC 方法可以在 Python 中按名称(作为字符串)调用吗?

    在 python 中 调用 XML RPC 方法涉及调用代理对象上的方法 from xmlrpclib import ServerProxy print ServerProxy https example com rpc api hello
  • 隐藏的 YouTube 播放器失去了方法

    我正在使用 javascript 控制嵌入式 youtube chromeless 播放器 并且我想偶尔通过设置 display none 来隐藏它 然而 当我再次向播放器展示时 它失去了 YouTube 方法 例如
  • .NET MVC3 Razor (VB!) 扩展未在视图中导入?

    我的扩展未导入到我的 vbhtml 视图中 我似乎在某个地方遗漏了一些东西 有人可以帮忙吗 模块 vb Imports System Runtime CompilerServices Namespace Areas Admin Models
  • Arel、联接和 Rails 查询

    我最近被一个问题困扰了一段时间 并找到了 Arel 的方法 它看起来应该允许我在查询中执行 OR 操作 作为起点 我需要将现有的 Rails 3 查询转换为 Arel 这就是我遇到问题的地方 以下范围和查询按我的预期工作 它向我提供与特定用
  • 如果 std::map 被清除,是否确保内存被释放

    If a std vector vec被清除vec clear 分配的内存不得立即释放 这size向量的值将为零 但capacity将 可以不变 这是一种非常有益的行为 因为可以清除一个大向量并为其分配新值 而不需要昂贵的内存解除 分配 内
  • 从 CGRect 中减去 CGRect——其中最大的一块不包含另一个

    我怎样才能减一CGRect来自另一个 我想要结果R1 R2是 R1 中不与 R2 相交的最大子矩形 实施例1 R2 R1
  • 括号中的 Console.log 错误

    每次我尝试使用 console log 时都会遇到这种错误 错误 意外的控制台语句 无控制台 console log 名称 is a 年龄 岁数 工作 谁已婚 isMarried 36 错误 控制台 未定义 no undef console
  • 新的 Voided Purchasing API 的用例是什么

    谷歌刚刚推出无效购买 API https developers google com android publisher voided purchases Google Play 作废购买 API 允许您撤销对与用户已作废的购买相关的应用内
  • 如何将 Thymeleaf 显示的字符串大写到页面中?

    我正在开发一个使用 Thymeleaf 作为模板引擎的 Spring MVC 应用程序 并且我正在尝试将页面中显示的一些字符串大写 在我的页面上有这样的内容 li class com nav item a href class com na
  • 如何将本地库加载到本地android代码中? (安卓工作室)

    我有一个 C 语言库 名为mylib在文件夹中jniLibs your architecture mylib so 在 Java 中 要加载库 您只需在源代码中键入该代码 static System loadLibrary mylib 但是
  • Python 推导式中是否需要局部变量? [复制]

    这个问题在这里已经有答案了 在 Python 3 x 中 我正在调用一个函数rand foo 每次被调用时都会返回一些随机的东西 我希望将随机结果序列存储到列表中 我正在使用以下构造 r rand foo for i in range 10
  • 如何保存 Extjs4 图表图像以在 pdf 报告中打印?

    我的 extjs4application 仪表板中有几个图表 我想使用这些图表的图像生成 pdf 报告 为此我使用 iTextSharp 有没有办法从图表中获取图像 以便将它们包含在我的报告中 对我来说理想的是像这样与 itextsharp
  • Cordova/Ionic - 为手机设置仅纵向模式并允许在平板电脑中定向

    如何将手机设置为仅纵向 并允许平板电脑在纵向和横向之间切换 我正在使用 Ionic Cordova 目前 我已使用以下属性在 config xml 中将应用程序设置为纵向模式
  • 维奥拉-琼斯算法 - “像素之和”?

    我看过很多关于 Viola Jones 算法如何真正工作的文章和问题的答案 我不断找到答案 说某个区域中的 像素总和 减去相邻区域中的 像素总和 我对 像素总和 的含义感到困惑 其价值依据是什么 是该区域的像素数吗 颜色的强度 提前致谢 这
  • 为多个属性设置相同的值 (CSS)

    有没有一种方法可以将多个 CSS 属性设置为一个值 border left border right 1px solid E2E2E2 你可以用选择器做些什么 wrapper maindiv 没有 但对于你的例子 你可以这样做 border
  • SCardEstablishContext 内存泄漏

    我们在某些 Windows 安装上突然出现智能卡 API 问题 调用 SCardEstablishContext 函数时似乎存在内存泄漏 可以在控制台应用程序中重现该问题 代码示例位于http www pinvoke net default
  • IE8 中的 console.log 发生了什么?

    根据这个帖子 http readerszone com microsoft internet explorer ie8 beta2 jscript features html它处于测试版中 但不在发布版中 console log 仅在打开开
  • 实体框架删除具有外键关系的实体时出错

    由于外键关系 我在删除某些实体时遇到问题 我理解以下错误消息 并已尽我所能想到删除实体而不会出现此错误 DELETE 语句与 REFERENCE 约束冲突 FK QuizUserAnswer QuizWithQuestion 冲突发生在 数
  • 退出时片段到片段共享元素转换不起作用

    我怀疑它的发生是因为未设置转换名称 但我无法检测到这是原因还是有其他原因或者我做错了什么或缺少什么 这是我的代码 单击 recyclerview 项目时 我没有在绑定视图中设置转换名称 如果我这样做也不起作用 holder iv setTr
  • pdf2json 页面单位:它是什么?

    我尝试使用谦虚 pdf2json 输出非常有用 但我尝试计算该库使用的度量单位 他们称之为 页面单位 根据 pdf 规范 这不等于 1 72 点 因为整个页面的高度有 51 个页面单位 有人知道这个页面单位是什么吗 我在哪里可以找到有关此测