- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我浏览了包含图形元素的不同 pdf 的内容流。 Some pdf 包含图形的普通 CTM 文本坐标系。像下面这样 在这里,我可以将 CTM 位置与我的页面坐标进行比较。
但是我在这个pdf中发现了一些奇怪的东西(x 和 y 转换以千为单位,我的页面坐标为 576、720。我如何与页面坐标进行比较?)。您可以看到下面 。在这种情况下,CTM 是如何进行计算的。
我看到了in诸如“PDF 内容流的合格读取器或写入器可以将图形状态运算符的排列更改为任何其他排列,以实现每个图形对象的相关图形状态参数的相同值。”之类的规则。
任何人都可以解释一下图形解析的其他类似情况以及以通用方式处理它需要考虑哪些因素吗?
请解释解析可用图形坐标的所有方法。
最佳答案
Please explain all ways of parsing available graphics coordinates.
本质上只有一种方法可以做到这一点,即 PDF 规范所暗示的方法:读取内容流时,根据您的指令的效果更新当前转换矩阵 (CTM)找到。
让我们看看您的第二个内容流。
一开始,CTM 将默认用户空间映射到设备空间。由于我们对默认用户空间本身的坐标感兴趣,因此对我们来说这些空间是重合的,我们从单位矩阵开始。此外,还没有保存的图形状态,因此保存的状态中还没有 CTM 值:
1 0 0 |
0 1 0 |
0 0 1 |
q
第一条指令q
保存当前图形状态;因此,我们现在在图形堆栈上有了 CTM 的副本:
1 0 0 | 1 0 0
0 1 0 | 0 1 0
0 0 1 | 0 0 1
.1 0 0 .1 0 0 厘米
下一条指令.1 0 0 .1 0 0 cm
从左侧乘以CTM:
.1 0 0 1 0 0 .1 0 0
0 .1 0 * 0 1 0 = 0 .1 0
0 0 1 0 0 1 0 0 1
因此,我们有
.1 0 0 | 1 0 0
0 .1 0 | 0 1 0
0 0 1 | 0 0 1
... re W n ... rg ... gs
这些指令不会更改 CTM 或状态堆栈。
q
下一条指令q
保存当前图形状态;因此
.1 0 0 | 1 0 0 .1 0 0
0 .1 0 | 0 1 0 0 .1 0
0 0 1 | 0 0 1 0 0 1
(我将堆栈的顶部绘制在右侧。)
1 0 0 1 3398 2608 厘米
(为了简洁起见,我稍微截断了这些值。)
下一条指令1 0 0 1 3398 2608 cm
从左侧乘以CTM:
1 0 0 .1 0 0 .1 0 0
0 1 0 * 0 .1 0 = 0 .1 0
3398 2606 1 0 0 1 339.8 260.6 1
因此,我们现在有了
.1 0 0 | 1 0 0 .1 0 0
0 .1 0 | 0 1 0 0 .1 0
339.8 260.6 1 | 0 0 1 0 0 1
这是您不确定的第一条指令,因为其值(value)数千。不过,在评估之后,您会看到原点被推至相当正常的值 339.8 260.6
。
... m ... l ... l h f*
这些指令不会更改 CTM 或状态堆栈。
问
下一条指令Q
恢复最近保存的图形状态。因此,我们有
.1 0 0 | 1 0 0
0 .1 0 | 0 1 0
0 0 1 | 0 0 1
... RG ... w ... M
这些指令不会更改 CTM 或状态堆栈。
q
下一条指令q
保存当前图形状态;因此
.1 0 0 | 1 0 0 .1 0 0
0 .1 0 | 0 1 0 0 .1 0
0 0 1 | 0 0 1 0 0 1
1 0 0 1 3607 2339 厘米
(为了简洁起见,我稍微截断了这些值。)
下一条指令1 0 0 1 3607 2339 cm
从左侧乘以CTM:
1 0 0 .1 0 0 .1 0 0
0 1 0 * 0 .1 0 = 0 .1 0
3607 2339 1 0 0 1 360.7 233.9 1
因此,我们现在有了
.1 0 0 | 1 0 0 .1 0 0
0 .1 0 | 0 1 0 0 .1 0
360.7 233.9 1 | 0 0 1 0 0 1
这是您因值(value)数千而不确定的第二条指令。不过,在评估之后,您会再次看到原点被推至相当正常的值 360.7 233.9
。
关于java - 了解pdf中的图形(变换矩阵cm)坐标(解析图形位置)系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59355347/
当我在 alfresce 中跟踪代码时,我在 node-header.get.html.ftl 中发现了以下代码 ...... 我
我正在尝试重新创建我见过的服装测量图表,但使用纯 Javascript。我无法弄清楚如何获取 innerhtml 中的数值并将其乘以/除以 * 2.54。另外,我想在数字末尾添加“cm”或“in”来表
我尝试从网站 https://plot.ly/scikit-learn/plot-kmeans-silhouette-analysis/ 运行代码.当我运行时发现 matplotlib 模块已经没有光
有人知道这是浏览器、Windows 语言还是一般问题吗? 我在我的计算机上安装了一种名为“阿拉伯语(沙特阿拉伯)阿拉伯语 (101) 键盘”的第二语言。 如果我输入像“test 3cm test”这样
Name Team Number Position Age Height Weight College Salary
我一直在按照给定的快速入门指南安装 kuali 类(class)管理系统 HERE . 我已成功完成所有操作,但无法在 tomcat 中部署应用程序。 我以前从未真正使用过 tomcat,所以任何人都
我在我的 CSS 媒体查询中使用厘米来使我的模板具有响应性,而现在我们的智能手机具有非常高的分辨率,这使得像素过滤器变得困难。我的问题是,为什么所有网站都不使用 CM 来使响应变得更加简单和实用?使用
plt.cm中cm全称表示colormap paired表示两个两个相近色彩输出,比如浅蓝、深蓝 ;浅红、深红;浅绿,深绿这种。 补充:【python】plt.cm.Spectral,颜色分配
using System.Collections; using System.Collections.Generic; using UnityEngine; using Cinemachine; us
我们有一个 Web 应用程序,其中包含系统运算符(operator)可以更改的一堆内容(例如新闻和事件)。有时我们会发布软件的新版本。该软件被标记并存储在颠覆中。但是,对于如何最好地控制可能独立更改的
我已经阅读了 http://webdev.apl.jhu.edu/~jcs/ejava-javaee/coursedocs/605-784-site/docs/content/html/devenv-
我正在尝试从 CM 源为我的设备构建自定义 rom。我正在按照本指南进行构建: https://wiki.cyanogenmod.org/w/Build_for_quark 我正在使用此命令来同步源。
我看过 WWDC 2015 Session 705 上的视频,发现 Core Motion API 很有趣。我正在制作一个应用程序,需要随着后台运动事件状态的变化而更新。例如,当用户走进汽车并开始驾驶
我想在具有已定义宽度和高度的 WebView 中显示图像。 当我将 html 设置为:显示时:高度永远不会达到 100 厘米或任何我选择的高度。 我尝试使用视口(viewport)和比例,但未能以正确
我注意到 Chrome 浏览器中的元素大小存在问题。 我写了一个简单的代码: TEXT TEXT TEXT TEXT
我公司使用CM Synergy作为代码版本控制工具,可能是我自己的问题,我不能很好地使用这个工具。但以我自己的经验来看,Hg、Git 或 SVN 对我来说非常有用。有什么方法可以将开源控件存档转换为
我正在尝试部署使用 Dash 开发的应用程序,该应用程序使用一些 matplotlib 函数。当我在本地运行应用程序时,它运行顺利,一切正常,但是,当我使用相同的代码(我正在使用 heroku 部署)
我有 ?(New System.Windows.LengthConverter()).ConvertFrom("1cm") 37.795275590551178 {Double} Double
我正在我正在构建的网站上使用营销事件表单。有多种形式遵循相同的结构(见下文)并使用相同的类名。 我使用 AJAX 将表单发布到 Campaign Monitor,如果返回错误消息,还添加类,如果正确则
OCaml 对编译后的文件有多种扩展名:*.a, *.cma, *.cmi, *.cmx 、*.cmxa、*.cmxs(也许这不是详尽的列表)。它们是什么,在什么情况下我需要它们? 如果我有一个库,我
我是一名优秀的程序员,十分优秀!