跳到内容
  • 福昕首页
  • 开发中心
  • SDK文档资料
  • 插件商店
  • 福昕首页
  • 开发中心
  • SDK文档资料
  • 插件商店
申请试用
  • 企业自动化
    • Compressor
  • 福昕CloudAPI
  • 福昕PDF SDK 软件开发工具包
    • 福昕PDF SDK(ActiveX)
    • 福昕PDF SDK(桌面/服务器)
    • 福昕PDF SDK(Plug-in)
    • 福昕 PDF SDK(安卓)
    • 福昕PDF SDK(iOS)
    • 福昕PDF SDK(Web)
  • 福昕管理控制台
    • 公有云
    • 私有云
    • 通用情况
  • 福昕阅读器
    • RMS插件
  • 福昕高级编辑器
    • AI助手
    • Mac版本
      • 常规问题
    • Windows版本
      • 表单
      • ECM集成
      • 互联PDF
      • 企业管理指南
      • 保护
      • 内容编辑
      • 创建PDF
      • 压缩
      • 图章
      • 安装与卸载
      • 常见问题
      • 打印
      • 注释/评论
      • 福昕插件
      • 翻译助手
      • 翻译助手教程
      • 试用与激活
      • 转换
      • 页面管理
    • 教育用户
      • 论文查重
      • 论文畅
      • 操作指南
    • 网页版
      • Foxit eSign
      • 电子签章
    • 订阅
    • 资源
  • 福昕高级编辑器Linux版本
  • 福船图纸管理系统
  • 福昕PDF SDK 软件开发工具包 > 福昕PDF SDK(桌面/服务器)
  • 标签:

GSDK如何缩放 PDF 页面内容并调整页面大小为 Letter 规格?调整过程中如何避免内容偏移?

  • 福昕知识库
  • 2025-12-08

Letter 是北美常用页面尺寸(8.5×11 英寸),对应 PDF 的 “点(pt)” 单位为 612×792pt(1pt=1/72 英寸)。调整页面大小需先缩放内容,再修改页面尺寸,具体如下:

核心尺寸说明

  • Letter 尺寸:宽度 612pt,高度 792pt;
  • A4 尺寸(对比):宽度 595pt,高度 842pt;
  • 原页面尺寸获取:通过page.getWidth()/page.getHeight()获取(单位:pt)。

完整示例(A4→Letter,等比例缩放 + 无偏移)

            PDFDoc doc = new PDFDoc("C:\\Users\\yang_leng\\Desktop\\设置页面大小.pdf");
            error_code = doc.load(null);
            if (error_code != e_ErrSuccess) {
                System.out.println(error_code);
            }
            //获取letter的宽高大小,用作计算比例系数
            PDFDoc doc1 = new PDFDoc();
            doc1.insertPage(0,e_SizeLetter);
            PDFPage page1 = doc1.getPage(0);
            float width1 = page1.getWidth();
            float height1 = page1.getHeight();

            //如果考虑文档页面不完全是同样,则需要分别计算系数
            PDFPage page2 = doc.getPage(0);
            float width2 = page2.getWidth();
            float height2 = page2.getHeight();

            //计算比例系数 转到Letter大小 page1/page2
            float scal_width = width1 / width2;
            float scal_height = height1 / height2;

            int pageCount = doc.getPageCount();

            for (int i = 0; i < pageCount; i++) {
                PDFPage page = doc.getPage(i);
                int rotation = page.getRotation(); //rotation = 0;

                page.startParse(e_ParsePageNormal, null, true);

                //6个参数 a b c d e f (矩阵变换)
                // ad是页面缩放比例、bc是旋转缩放比例、ef是PDF左下角坐标轴的原点
                Matrix2D matrix2D = new Matrix2D(scal_width, 0f, 0f, scal_height, 0f, 0f);
                //matrix2D 页面内容的矩阵变换
                //可剪辑的内容是否变换
                //注释是否变换
                page.transform(matrix2D, true, true);
                float height = page.getHeight();
                float width = page.getWidth();
                System.out.println("width:"+width);
                System.out.println("height:"+height);
                //rotation=0为前提,此时以页面左下角为远点
                //setSize是配合内容缩小时,页面同步缩小
                page.setSize(width * scal_width, height * scal_height);
                System.out.println("new width:"+width * scal_width);
                System.out.println("new height:"+height * scal_height);
            }
            doc.saveAs("C:\\Users\\yang_leng\\Desktop\\"+"设置页面大小_toLetter.pdf",e_SaveFlagNormal);
            doc1.saveAs("C:\\Users\\yang_leng\\Desktop\\"+"Letter.pdf",e_SaveFlagNormal);

相关内容

如何高亮表单域、自定义表单域颜色以及重置表单?

文档中的文字变的不光滑,而是锯齿形状,怎么能调整回来呢?

如何将表单数据导出和导入?

如何把word/Excel中的表格做成表单?

如何在PDF中根据表单内容生成二维码?

为什么从其他pdf文件复制过来的文本和图片都无法编辑?

如何添加音视频并使用呢?

修改密码点击“忘记密码”无反应,打不开修改密码页面,咋办

OFD与PDF文件如何批量互转?

如何将pdf文件转为纯图片的PDF呢?

推荐内容

如何高亮表单域、自定义表单域颜色以及重置表单?

文档中的文字变的不光滑,而是锯齿形状,怎么能调整回来呢?

如何将表单数据导出和导入?

如何把word/Excel中的表格做成表单?

如何在PDF中根据表单内容生成二维码?

为什么从其他pdf文件复制过来的文本和图片都无法编辑?

如何添加音视频并使用呢?

修改密码点击“忘记密码”无反应,打不开修改密码页面,咋办

OFD与PDF文件如何批量互转?

如何将pdf文件转为纯图片的PDF呢?

产品
  • 应用行业
  • 白皮书
开发支持
  • 开发中心
  • SDK文档资料

销售咨询:010-50951668

客服电话:0591-38509808

销售咨询
微信公众号

©2026 福建福昕软件开发股份有限公司 版权所有

隐私策略