最新历史版本 :PDF导出密码属性 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

报表服务器版本
功能变更
11.0-
11.0.9「需要密码」变更为「文件密码」
11.0.13文件密码支持公式自定义密码

1.2 功能简介

对于模板导出 PDF 文件,希望在打开导出的 PDF 文件时,能够有个密码输入框,只有正确输入密码的人能够查看文件的内容。为此 FineReport 提供了 PDF 模板导出属性设置,可以对文件内容进行保护,文件密码支持公式和字符串设置。

2. 设置方法编辑

1)点击「模板>模板导出属性」中的 PDF 模板导出属性选项,默认不被选中的,如下图:


2)选中需要密码,后面会出现个文件密码设置文本框,在文件密码文本框中输入您要设置的密码。

3)若设置了密码,则打开导出的 PDF 时,会弹出如下对话框,只有正确输入密码的人才能查看此 PDF 文件:

222

3. 导出文件密码支持使用函数编辑

3.1 设置方式

1)点击「模板>模板导出属性」中「通用」,勾选「密码支持公式」即可,如下图所示:

2023-02-07_16-44-27.png

2)点击「模板>模板导出属性」中的 PDF 模板导出属性选项,勾选「文件密码」,会出现个文件密码设置文本框,在文件密码框中输入您要设置的公式密码即可。

3.2 支持函数范围

文件密码支持的函数公式范围如下表所示:

常用函数&数学三角函数
日期和时间函数文本函数逻辑函数报表函数
SUM()DATE()CHAR()AND()COLCOUNT()
COUNT()DATEDELTA()CODE()BITNOT()COLNAME()
CHAR()DATEDIF()CONCATENATE()BITOPERATIOIN()FIELDS()

DATE()

注:此函数参数值要求是date(数值,数值,数值)

DATEINMONTH()EXACT()IF()

Decode()

注:介于密码只能使用英文特殊字符以及数字,所以decode解码后必须是这些字符才能正常使用

MAX()DATEINQUARTER()FIND()OR()RECORDS()
MIN()DATEINWEEK()LEFT()REVERSE()ROWCOUNT()
TIME()DATEINYEAR()LEN()
TABLEDATAFIELDS()
ABS()DATESUBDATE()LOWER()
TABLEDATAS()
ACOS()DATETONUMBER()MID()
TABLES()
ACOSH()DAY()PROPER()
VALUE()
ASIN()DAYS360()REPEAT()

MAP()

ASINH()DAYSOFMONTH()REPLACE()
encode()
ATAN()DAYSOFQUARTER()RIGHT()

ATAN2()DAYSOFYEAR()SUBSTITUTE()

ATANH()DAYVALUE()


COMBIN()HOUR()


COS()MINUTE()


COSH()MONTH()


DEGREES()MONTHDELTA()


EVEN()NOW()


EXP()SECOND()


FACT()TIME()


GCD()TODATE()


INT()TODAY()


LCM()WEEKDAY()


LN()WEEK()


LOG()WEEKDATE()


LOG10()YEAR()


MOD()YEARDELTA()


ODD()LUNAR()


PI()ENDOFMONTH()


POWER()ISWORKDAY()


PRODUCT()



RADIANS()



RAND()



RANDBETWEEN()



ROUND()



ROUNDDOWN()



ROUNDUP()



SIN()



SINH()



SIGN()



SQRT()



SUMSQ()



TAN()



TANH()



TRUNC()



4. PDF 加密导出服务器端报错编辑

问题描述:

PDF 加密导出时,在本地正常,在服务器端报错如下:

java.lang.SecurityException: class "org.bouncycastle.asn1.ASN1ObjectIdentifier"'s signer information does not match signer information of other classes in the same package

解决方案:

这是在进行项目集成的时候,项目里面本身引用了 PDF 导出加密的 JAR 包,而 FineReport 的 JAR 包中也引用到了 PDF导出加密的 JAR 包,从而导致的jar包冲突造成的报错,直接将项目中的 PDF 导出加密的 JAR 包删除即可。

注:PDF 加密导出的jar包的名字随着 JDK 的版本不同而不同。