我是PDFBox(和PDF生成)的新手,很难生成自己的PDF。
我确实有以英寸/厘米为单位的某些坐标的文本,我需要将它们转换为PDFBox使用的单位。任何建议/实用程序都可以自动执行此操作吗?
PDPageContentStream。moveTextPositionByAmount(x,y)对我来说毫无意义。
通常,PDFBox在创建PDF时使用PDF用户空间坐标。这意味着:
>
页面的坐标由CropBox分隔,CropBox默认为MediaBox,值从左到右、从下到上递增。因此,如果使用new PDPage()
或new PDPage(PDPage.page\u SIZE\u*)
创建页面,坐标系的原点从页面的左下角开始。
用户空间中的单位以默认用户空间单位开始,该单位由页面的用户单位定义。大多数情况下(例如,如果您使用任何构造函数创建页面,并且没有显式更改该值),它没有显式设置,因此,其默认值为1⁄72英寸。
通过将一些矩阵连接到当前变换矩阵,可以非常任意地改变用户空间坐标系。当前变换矩阵以单位矩阵开始。
在PDFBox中,您可以使用PDPageContentStream.concatenate2CTM()
重载之一来执行此操作。
只要您使用PDPageContentStream切换到文本模式。beginText(),使用的坐标系还受到文本矩阵引入的变换的影响。
在PDFBox中,使用PDPageContentStream中的一个设置文本矩阵。setTextMatrix()重载。
由于您是PDFBox的新手(如您所说)和一般的PDF新手(因为我假设,否则您可能会认识到坐标),我建议您最初尽可能使用转换副歌,因此,保持坐标系从左下角开始的状态,既不旋转也不倾斜,单位长度为1/72英寸。
在这种情况下,您实际上可以使用PDFBox提供的常量进行转换:
PDPage。DEFAULT_USER_SPACE_UNIT_DPI
以获取默认的用户空间坐标。PDPage。MM_TO_UNITS
以获取默认的用户空间坐标。但是,如果您想享受坐标的乐趣,请查看PDF规范ISO-32000-1并研究第8.3节坐标系统和9.4.4节文本空间详细信息。
上面指向的PDPage
常量过去在早期的PDFBox 1.8. x版本中可以访问,但后来被隐藏(私有
),并最终在过渡到PDFBox 2. x时被删除。
作为参考,常数定义如下
private static final int DEFAULT_USER_SPACE_UNIT_DPI = 72;
private static final float MM_TO_UNITS = 1/(10*2.54f)*DEFAULT_USER_SPACE_UNIT_DPI;
我想将值从厘米转换为英寸和英尺。使用以下格式(0'00''),我使用以下forumla 答案是准确的,但唯一的问题是英寸的值在小数点后有很多数字。。 请帮助我如何将数值的英寸部分四舍五入到小数点后两位数? 请帮我怎么即兴创作这个公式谢谢 萨拉姆。 查看图片中的示例
问题内容: 我需要在每个显示区中的网站div中放入25厘米(10英寸)的宽度。我该怎么办? 问题答案: 您可以简单地在CSS中使用单位: 请注意,正如其他人指出的那样,结果仍然取决于操作系统对显示器尺寸的正确读取。
我正在使用PDFBox的在Java中显示PDF页面。我正试图基于页面中的(即AcroForm字段)在PDF页面的图像上创建可点击的区域。问题是PDF似乎使用了一个完全不同的坐标系: 收益率 如果我要估计图像上字段矩形的实际尺寸,它将是40,40,50,10(x,y,宽度,高度)。这两者之间没有明显的相关性,我似乎找不到任何关于这一点的信息与谷歌。 如何确定PDPage的cosobects的像素位置
本文向大家介绍MySQL查询将高度格式转换为厘米?,包括了MySQL查询将高度格式转换为厘米?的使用技巧和注意事项,需要的朋友参考一下 为此,请使用MySQL中的方法。让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 以下是将高度格式转换为厘米的查询- 这将产生以下输出-
我正在尝试将球坐标转换为笛卡尔坐标,以绘制一个简单的三维金字塔。 下面是获取金字塔四个主要角的代码,具体取决于极角yrad和方位角xrad以及顶点坐标x和y: 方位角轴似乎工作正常,但问题是,在操纵极轴角时,当它们越过天顶或底部时,左右会互换,如图所示(选择顶部的mp4以更平滑地播放):http://gyazo.com/4a245713c232893960863cf4ea4186f6 怎么了?
我试图将图像从极坐标转换为笛卡尔坐标,但在应用公式后,我得到了浮点坐标(r和teta),我不知道如何使用x和y的浮点来表示空间中的点。可能有一种方法可以将它们转换为整数,并仍然保留分布,但我不知道如何。我知道OpenCV中有像warpPolar这样的函数,但我想自己实现它。任何想法都会有帮助:) 这是我的代码: