跳到内容
  • 福昕首页
  • 开发中心
  • 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 文档的访问权限(如打印、修改权限)?userPermissions 返回值的比特位具体含义是什么?

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

PDF 的访问权限由加密字典中的Perms属性控制,Foxit SDK 通过PDFDoc.getUserPermissions()返回权限整数值,每个比特位对应一项权限,具体解析如下:

权限比特位释义(低字节)

比特位权限说明取值(1 = 允许,0 = 禁止)
2打印权限(低分辨率)(permissions >> 2) & 1
3修改权限(除注释 / 表单外)(permissions >> 3) & 1
4复制 / 提取内容权限(permissions >> 4) & 1
5添加 / 修改注释 / 表单权限(permissions >> 5) & 1
6填写表单权限(仅现有表单)(permissions >> 6) & 1
7提取内容(供视障用户)(permissions >> 7) & 1
8组装文档(插入 / 删除页面)(permissions >> 8) & 1
9打印权限(高分辨率)(permissions >> 9) & 1
import com.foxit.sdk.PDFDoc;
import com.foxit.sdk.common.ErrorCode;

public class PDFPermissionDemo {
    public static void main(String[] args) {
        // 初始化SDK(省略)
        PDFDoc doc = new PDFDoc("test.pdf");
        int loadCode = doc.load(null);
        if (loadCode != ErrorCode.e_ErrSuccess) {
            System.out.println("文档加载失败,错误码:" + loadCode);
            return;
        }

        // 1. 获取用户权限值(0=无权限,正数=有权限)
        int permissions = doc.getUserPermissions();
        if (permissions == 0) {
            System.out.println("文档无任何用户权限");
            return;
        }

        // 2. 解析各项权限
        boolean canPrintLow = ((permissions >> 2) & 1) == 1; // 低分辨率打印
        boolean canModify = ((permissions >> 3) & 1) == 1; // 修改文档
        boolean canCopy = ((permissions >> 4) & 1) == 1; // 复制内容
        boolean canAnnotate = ((permissions >> 5) & 1) == 1; // 添加注释
        boolean canFillForm = ((permissions >> 6) & 1) == 1; // 填写表单
        boolean canPrintHigh = ((permissions >> 9) & 1) == 1; // 高分辨率打印

        // 3. 输出权限信息
        System.out.println("PDF权限解析结果:");
        System.out.println("- 低分辨率打印:" + (canPrintLow ? "允许" : "禁止"));
        System.out.println("- 高分辨率打印:" + (canPrintHigh ? "允许" : "禁止"));
        System.out.println("- 修改文档:" + (canModify ? "允许" : "禁止"));
        System.out.println("- 复制内容:" + (canCopy ? "允许" : "禁止"));
        System.out.println("- 添加注释:" + (canAnnotate ? "允许" : "禁止"));
        System.out.println("- 填写表单:" + (canFillForm ? "允许" : "禁止"));

        doc.close();
        Library.release();
    }
}

注意事项

  • 管理员权限 vs 用户权限:getUserPermissions()返回的是普通用户权限,管理员(拥有权限密码)可无视这些限制;
  • 加密文档:若文档加密且未输入正确密码,getUserPermissions()会返回 0;
  • 权限覆盖:部分 PDF 阅读器可能自定义权限逻辑,SDK 返回值仅反映 PDF 文件本身的权限设置。

相关内容

RDK Android 如何设置单页上下滑动翻页?

PDF转Word时,如何仅处理指定页面?

PDF和OFD如何批量互转?

Bitmap 类如何与其他的图像类互转?

打印管理PrintManager怎么判断文档打印是否完成?

软件如何打开嵌入在office文档中Adobe PDF图标

福昕高级PDF编辑器专业版如何在文档中嵌入一个3D模型

福昕高级PDF编辑器专业版如何实现对图片和文档内容添加马赛克

福昕高级PDF编辑器如何显示注释内容图标

福昕高级PDF编辑器如何添加和调整快速访问工具栏功能

推荐内容

RDK Android 如何设置单页上下滑动翻页?

PDF转Word时,如何仅处理指定页面?

PDF和OFD如何批量互转?

Bitmap 类如何与其他的图像类互转?

打印管理PrintManager怎么判断文档打印是否完成?

软件如何打开嵌入在office文档中Adobe PDF图标

福昕高级PDF编辑器专业版如何在文档中嵌入一个3D模型

福昕高级PDF编辑器专业版如何实现对图片和文档内容添加马赛克

福昕高级PDF编辑器如何显示注释内容图标

福昕高级PDF编辑器如何添加和调整快速访问工具栏功能

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

销售咨询:010-50951668

客服电话:0591-38509808

销售咨询
微信公众号

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

隐私策略