使用 pdfBox 从 PDF 中提取图像的 DPI
我正在使用 java pdfBox 库来验证带有嵌入图像的单页 pdf 文件。
我知道pdf文件本身不包含DPI信息。
然而,文档中具有相同尺寸的图像在提取后具有不同的像素大小,并且没有 dpi 元信息。
那么是否有可能以某种方式计算相对于 pdf 页面的图像大小或使用 pdfBox 提取具有 dpi 信息的图像(对于 png 或 jpeg 图像文件)?
谢谢!
I'm using java pdfBox library to validate single page pdf files with embedded images.
I know that pdf file itself doesen't contain the DPI information.
However the images that have the equal dimensions in the document have different sizes in pixels after extracting and no dpi meta information.
So is it possible to somehow calculate the image sizes relative to pdf page or to extract images with their dpi information (for png or jpeg image files) using pdfBox?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
从 PDFBOX src 下载中获取 PrintImageLocations.java 文件。这是源的一个例外,只有最后一行是我写的,它将输出 dpi:
这是一个示例输出:
Found image [X0]
位置 = 0.0, 0.0
大小 = 2544px, 3523px <---- 像素
尺寸 = 610.56pu、845.52pu <----“页面单位”、1pu = 1/72 英寸
尺寸 = 8.48 英寸、11.743334
英寸 尺寸 = 215.39198 毫米、298.28067 毫米
dpi = 300 dpi (X)、300 dpi (Y )
Get the PrintImageLocations.java file from the PDFBOX src download. Here's an except of the source, only the last line is by me, and it will output the dpi:
And here's a sample output:
Found image [X0]
position = 0.0, 0.0
size = 2544px, 3523px <---- pixels
size = 610.56pu, 845.52pu <---- "page units", 1pu = 1/72 inch
size = 8.48in, 11.743334in
size = 215.39198mm, 298.28067mm
dpi = 300 dpi (X), 300 dpi (Y)
我不熟悉 pdfBox,但你有一个与 pdf 中的每个光栅图像关联的 CTM。 CTM 提供有关页面上图像的位置和尺寸的数据。因此,提取图像中的数据应足以计算相对 dpi。
I am not familiar with pdfBox, but you has a CTM associated with every raster image in pdf. CTM gives one data about position and dimensions of image on the page. Thus and data from extracted images should be sufficient to calculate relative dpi.