1. 概述
1.1 版本
报表服务器版本 | 功能变更 |
---|---|
11.0 | - |
11.0.9 | 「需要密码」变更为「文件密码」 |
11.0.13 | 文件密码支持公式自定义密码 |
1.2 功能简介
对于模板导出 PDF 文件,希望在打开导出的 PDF 文件时,能够有个密码输入框,只有正确输入密码的人能够查看文件的内容。为此 FineReport 提供了 PDF 模板导出属性设置,可以对文件内容进行保护,文件密码支持公式和字符串设置。
2. 设置方法
1)点击「模板>模板导出属性」中的 PDF 模板导出属性选项,默认不被选中的,如下图:
2)选中
,后面会出现个文件密码设置文本框,在文件密码文本框中输入您要设置的密码。3)若设置了密码,则打开导出的 PDF 时,会弹出如下对话框,只有正确输入密码的人才能查看此 PDF 文件:
3. 导出文件密码支持使用函数
3.1 设置方式
1)点击「模板>模板导出属性」中「通用」,勾选「密码支持公式」即可,如下图所示:
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 的版本不同而不同。