当前位置: 首页 > news >正文

PDFBox - PDF 页面坐标系、PDF 页面尺寸获取、PDF 页面位置计算

一、PDF 页面坐标系

  • PDF 页面的原点 (0, 0) 位于页面的左下角,X 轴向右为正,Y 轴向上为正

二、PDF 页面尺寸获取

PDPage page = new PDPage();PDRectangle mediaBox = page.getMediaBox();float width = mediaBox.getWidth();
float height = mediaBox.getHeight();System.out.println("mediaBox: " + mediaBox);
System.out.println("width: " + width);
System.out.println("height: " + height);
# 输出结果mediaBox: [0.0,0.0,612.0,792.0]
width: 612.0
height: 792.0
try (PDDocument document = PDDocument.load(new File("pdf/example.pdf"))) {PDPage page = document.getPage(0);PDRectangle mediaBox = page.getMediaBox();float width = mediaBox.getWidth();float height = mediaBox.getHeight();System.out.println("mediaBox: " + mediaBox);System.out.println("width: " + width);System.out.println("height: " + height);
} catch (Exception e) {e.printStackTrace();
}
# 输出结果mediaBox: [0.0,0.0,612.0,792.0]
width: 612.0
height: 792.0

三、PDF 页面位置计算

1、使图片位于 PDF 页面的左上角
try (PDDocument document = new PDDocument()) {PDPage page = new PDPage();document.addPage(page);PDImageXObject pdImage = PDImageXObject.createFromFile("pdf/dzs.jpeg", document);try (PDPageContentStream contentStream = new PDPageContentStream(document, page)) {// 获取 PDF 页面的尺寸PDRectangle mediaBox = page.getMediaBox();float pdfWidth = mediaBox.getWidth();float pdfHeight = mediaBox.getHeight();// 获取图片的尺寸float imgWidth = pdImage.getWidth() * 0.25f;float imgHeight = pdImage.getHeight() * 0.25f;float x = 0;float y = pdfHeight - imgHeight;contentStream.drawImage(pdImage, x, y, imgWidth, imgHeight);} catch (IOException e) {e.printStackTrace();}document.save("pdf/image_position_example.pdf");
} catch (IOException e) {e.printStackTrace();
}
2、使图片位于 PDF 页面的左下角
...float x = 0;
float y = 0;...
3、使图片位于 PDF 页面的右上角
...float x = pdfWidth - imgWidth;
float y = pdfHeight - imgHeight;...
4、使图片位于 PDF 页面的右下角
...float x = pdfWidth - imgWidth;
float y = 0;...
5、使图片靠左垂直居中
...float x = 0;
float y = (pdfHeight - imgHeight) / 2;...
6、使图片靠右垂直居中
...float x = pdfWidth - imgWidth;
float y = (pdfHeight - imgHeight) / 2;...
7、使图片靠上水平居中
...float x = (pdfWidth - imgWidth) / 2;
float y = pdfHeight - imgHeight;...
8、使图片靠下水平居中
...float x = (pdfWidth - imgWidth) / 2;
float y = 0;...
9、使图片居中
...float x = (pdfWidth - imgWidth) / 2;
float y = (pdfHeight - imgHeight) / 2;...
http://www.dtcms.com/a/536958.html

相关文章:

  • VBA实现word文档批量转PDF文件
  • asp.net购物网站模板入群修改网站后台
  • Transformer整体结构与自注意力机制的实现
  • LeetCode 852.山脉数组的峰顶索引
  • 提升 Web 端 JavaScript 的可信度:WAICT 体系详解
  • 做公司网站图片算是商用吗建立一个网页需要多少钱
  • 广州网站制作功能春雨app直播免费版下载
  • LangGraph 官方教程:聊天机器人之四
  • 【多模态】qwen3-vl的强化微调
  • 网站开发岗位思维导图vps 网站攻击ip地址
  • python-docx 节操作
  • [nanoGPT] 文本生成 | 自回归采样 | `generate`方法
  • 【Linux专栏】shell脚本变量的取值|转换
  • [Dify 实战] 插件调试技巧(进阶篇):本地测试与部署全流程问题排查指南(Dify本地部署环境下)
  • 一、初识 LangChain:架构、应用与开发环境部署
  • 中山公司网站建设阿里云域名交易平台
  • 做flash音乐网站的开题报告做网站建设的合同范本
  • Trait与泛型高级用法
  • 解锁效率:一份关于大语言模型量化的综合技术指南
  • 网站后天添加文章不显示上海搜索优化推广哪家强
  • 前端基础之《React(3)—webpack简介-集成JSX语法支持》
  • 虚拟机之间配置免密登录(Centos)
  • 嵌入式测试的工作内容非常具体和专业化,它横跨了软件和硬件两个领域。
  • 保定网站建设团队网站备案密码 多少位
  • ZW3D二次开发_整图缩放
  • 滁州网站建设费用开发公司网签价格
  • 福州建网站公司最好的营销型网站建设公司
  • 新手入门:一篇看懂计算机基础核心知识
  • 每日算法刷题Day80:10.27:leetcode 回溯11道题,用时3h
  • 建设一个网站的规划广州seo公司如何