跳到内容
  • 福昕首页
  • 开发中心
  • 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
      • 压缩
      • 图章
      • 安装与卸载
      • 常见问题
      • 打印
      • 注释/评论
      • 福昕插件
      • 翻译助手
      • 翻译助手教程
      • 试用与激活
      • 转换
      • 页面管理
    • 教育用户
      • 论文查重
      • 论文畅
    • 网页版
      • 电子签章
    • 订阅
    • 资源
  • 福昕高级编辑器Linux版本
  • 福船图纸管理系统
  • 福昕PDF SDK 软件开发工具包 > 福昕PDF SDK(Web)
  • 标签:

如何配置查看者和文档的权限?

  • 福昕知识库
  • 2023-06-01

在实际的应用场景中,我们往往需要对查看者或者文档本身配置一些权限。 这篇文章将详细介绍如何在 WebPDF SDK 中配置这些权限。

查看者权限设置

*      查看者的文档权限

我们可以在初始化PDFUI或PDFViewer时,在viewerOptions参数中配置查看器相关的权限,并通过API getDocPermissions来实现控制的权限。 您可以参考 API 参考中的 PDFViewCtrl.PDF.constant.User_Permissions 去获取具体权限的详细信息。

示例代码如下:

var pdfui = new PDFUI({

            viewerOptions: {

                ……

                customs:{

                    getDocPermissions: function () {

                        //you can operate text annotations, fill in interactive form fields and print the document.

                        return PDFViewCtrl.PDF.constant.User_Permissions.annotForm | PDFViewCtrl.PDF.constant.User_Permissions.print

                    },

                }

            },

           ……

        });

*      查看者的注释权限

有两种方法可以配置注释权限。 不同的方式可以控制不同注释的相关权限,您可以根据需要选择其一。

1.       通过 API getAnnotPermissions 配置权限。 详细权限值请参考PDFViewCtrl.constants.ANNOTATION_PERMISSION。

示例代码如下:

var ANNOTATION_PERMISSION = PDFViewCtrl.constants.ANNOTATION_PERMISSION;

var pdfui = new PDFUI({

    viewerOptions: {

        ……

        customs:{

            getAnnotPermissions: function(annot) {

                if(annot.getTitle() === userName){

                    return Promise.resolve(JSON.stringify([ANNOTATION_PERMISSION.fully]))

                }else{

                    return Promise.resolve(JSON.stringify([ANNOTATION_PERMISSION.replyable]))

                }

            }

        }

    },

    ……

});

2.       通过注释标志配置权限。 注释标志是 PDF 标准中定义的与注释相关的权限。 您可以参考 PDFViewCtrl.PDF.annots.constant.Annot_Flags 获取更多详细信息。

当当前用户与注解作者一致时,将拥有所有权限,反之将被被关闭权限。示例代码如下:

var userName = "";

pdfui.addViewerEventListener(PDFViewCtrl.Events.tapAnnotation , function(annotRender){

    var annot = annotRender.getAnnot();

    pdfui.getAnnotManager(annot).then(function(annotManager) {

       var annotFlag = annotManager.getAnnotFlag(annot);

        console.log("===current annotation information:pageIndex:",annot.getPage().info.index,"type:",annot.info.type,",title:",annot.info.title,':permissions');

        console.log('checkHidden',annotFlag.checkHidden())

        console.log('checkInvisible',annotFlag.checkInvisible())

        console.log('checkLocked',annotFlag.checkLocked())

        console.log('checkLockedContents',annotFlag.checkLockedContents())

        console.log('checkNoRotate',annotFlag.checkNoRotate())

        console.log('checkNoView',annotFlag.checkNoView())

        console.log('checkNoZoom',annotFlag.checkNoZoom())

        console.log('checkPrint',annotFlag.checkPrint())

        console.log('checkReadOnly',annotFlag.checkReadOnly())

        console.log('checkToggleNoView',annotFlag.checkToggleNoView())

        pdfui.redraw(true);

 

    })

})

 

pdfui.getUserName().then(function (name){

    userName = name;

});

 

pdfui.getAnnotManager().then(function(annotManager) {

    annotManager.setViewerAnnotFlag(function(annot) {

        if(annot.getTitle() === userName){

            return 0;

        }else{

            return PDFViewCtrl.PDF.annots.constant.Annot_Flags.locked;

        }

    });

    pdfui.redraw(true);

});

*      附加权限

 

附加权限目前只支持下载权限,允许用户下载PDF文件。 有关详细信息,请参阅 PDFViewCtrl.PDF.constant.Additional_Permission。

示例代码如下:

var pdfui = new PDFUI({

            viewerOptions: {

                ……

                customs:{

                    getAdditionalPerm:function(){

                        //return 0 means no permission to download the document.

                        return 0;

                    },

                }

            },

            ……

        });

文档权限设置

*      文档权限

Foxit PDF SDK for Web 可以通过设置文档密码来配置文档权限。 可以给文档设置ownerPassword,然后配置文档相关的权限。

请参阅 API 参考中的 PDFViewCtrl.PDF.constant.User_Permissions 以获取特定权限的详细信息。 示例代码如下:

//Set the password of owner to 'abc', and if non-owner open the document, he only read the document. Only when owner open the document with the right password, he can do anything with the document.

var test = {userPassword:'',ownerPassword:'abc',permission:0,cipher:'aes256',isEncryptMetaData:true,expected:true}

var pdfviewer = await pdfui.getPDFViewer();

var pdfdoc = await pdfviewer.getCurrentPDFDoc();

await pdfdoc.setPasswordAndPermission(test.userPassword,test.ownerPassword,test.permission,test.cipher,test.isEncryptMetaData);

*      注释权限

和如上的查看者注解权限一样,我们可以通过注解flags来配置注解的权限。示例代码如下:

var pdfViewer = await pdfui.getPDFViewer();

var pdfDoc = await pdfViewer.getCurrentPDFDoc();

var pdfPage = await pdfDoc.getPageByIndex(0);

//Add a square annotation and set the flag to locked.

var annots = await pdfPage.addAnnot({

    type:"square",

    rect:{

        left:300,

        right:400,

        bottom:300,

        top:400

    }

})

annots[0].setFlags(PDFViewCtrl.PDF.annots.constant.Annot_Flags.locked);

 

*      表单域权限

我们可以通过设置form field flag来配置Form Field的权限,详见PDFViewCtrl.PDF.form.constant.Field_Flag。示例代码如下:

var pdfViewer = await pdfui.getPDFViewer();

var pdfdoc = await pdfViewer.getCurrentPDFDoc();

 

await pdfdoc.loadPDFForm();

let form = pdfdoc.getPDFForm ();

 

var control = {pageIndex:0,fieldName:'textField1',fieldType:PDFViewCtrl.PDF.form.constant.Field_Type.Text,rect:{left: 100,right: 250,top: 430,bottom: 330}};

var ret = await form.addControl(control.pageIndex,control.fieldName,control.fieldType,control.rect);

var field = await form.getField('textField1');

await field.setValue('123');

await field.setFlags(PDFViewCtrl.PDF.form.constant.Field_Flag.ReadOnly);

相关内容

【校园昕积分】邀请攻略:使用福昕合作高校发放教育专用激活码激活

【校园昕积分】邀请攻略:使用CARSI高校账户或高校EDU邮箱注册

在福昕高级PDF编辑器中如何自定义快速访问工具栏

在福昕高级PDF编辑器中如何设置常用图章

在对文件虚拟打印后如何设置文件不自动打开

通知消息关闭后如何开启

PDF文件奇偶页差异化页码添加

Web SDK 开发实战:动态自定义 PDF 注释右键菜单的 JavaScript 实现方案

无法安装服务“Foxit Document Management”(FoxitAssistantSvcPlus)

将3D文件添加作为信任文件

推荐内容

【校园昕积分】邀请攻略:使用福昕合作高校发放教育专用激活码激活

【校园昕积分】邀请攻略:使用CARSI高校账户或高校EDU邮箱注册

在福昕高级PDF编辑器中如何自定义快速访问工具栏

在福昕高级PDF编辑器中如何设置常用图章

在对文件虚拟打印后如何设置文件不自动打开

通知消息关闭后如何开启

PDF文件奇偶页差异化页码添加

Web SDK 开发实战:动态自定义 PDF 注释右键菜单的 JavaScript 实现方案

无法安装服务“Foxit Document Management”(FoxitAssistantSvcPlus)

将3D文件添加作为信任文件

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

销售咨询:010-50951668

客服电话:0591-38509808

销售咨询
微信公众号

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

隐私策略