You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用iText 2.1.7旋转并缩放PDF页面时遇缩放失效问题求助

解决PDF旋转+等比缩放的问题

你遇到的问题是因为没有正确组合旋转变换和缩放变换的矩阵参数,只修改a和d会破坏旋转的变换逻辑,导致页面变形或额外旋转。

原理说明

addTemplate的六个参数对应PDF变换矩阵的元素:

[a  c  e]
[b  d  f]
[0  0  1]

你原来的代码(0.0F, 1.0F, -1.0F, 0.0F, currentPageSize.getHeight(), 0.0F)是实现逆时针旋转90度的变换矩阵。要叠加等比缩放,需要把旋转相关的所有参数(a、b、c、d)都乘以缩放比例,同时平移参数e也要对应缩放,否则页面会偏移到画布外。

修改后的代码

将所有变换参数乘以0.28的缩放因子,代码如下:

float scale = 0.28F;
cb.addTemplate(page,
    0.0F * scale,
    1.0F * scale,
    -1.0F * scale,
    0.0F * scale,
    currentPageSize.getHeight() * scale,
    0.0F);

为什么这样改?

  • 等比缩放需要保证x、y方向的缩放比例一致,所以a、b、c、d都要乘以同一个scale值,避免页面拉伸变形
  • 平移参数e(原代码中的currentPageSize.getHeight())是旋转后调整页面位置的偏移量,缩放后也要同步乘以scale,确保页面显示在正确位置

内容的提问来源于stack exchange,提问作者jay26

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 16:22:24