如何在生成的 PDF 文件中禁用打印选项?
How to disable options as printing in generated PDF file?
当我生成带有 jasper 报告的 PDF 时,我不希望用户能够打印它。
是否有一些选项可以从代码中生成它,还是仅取决于可视化它的程序(网络浏览器、adobe 等)。
如果您要从 java.
导出,您可以通过使用 jrxml 属性或将值设置为 SimplePdfExporterConfiguration
来实现此目的
为了保护您的 pdf 文档(因此在这种情况下不允许打印),您需要做的第一件事就是对其进行加密,并确保您在类路径中具有用于加密的必要库,请参阅 How to configure PDF encryption in JasperReports Server 5.6.1
jrxml 属性
<property name="net.sf.jasperreports.export.pdf.encrypted" value="true"/>
<property name="net.sf.jasperreports.export.pdf.128.bit.key" value="true"/>
<property name="net.sf.jasperreports.export.pdf.owner.password" value="12345"/>
或
java代码
SimplePdfExporterConfiguration configuration = new SimplePdfExporterConfiguration();
configuration.setEncrypted(true);
configuration.set128BitKey(true);
configuration.setOwnerPassword("1234");
Note we are setting owner password not user password, hence user will be allowed to open without.
现在设置用户权限
net.sf.jasperreports.export.pdf.permissions.allowed
在你的情况下,我猜你只喜欢允许屏幕阅读器,如果你还想允许 COPY 或其他操作(参见上面的 link),请将这些 |
添加到你的属性中
jrxml 属性
<property name="net.sf.jasperreports.export.pdf.permissions.allowed" value="SCREENREADERS"/>
或
java代码
configuration.setPermissions(PdfWriter.ALLOW_SCREENREADERS);
Notice: it is up to the reader/application to respect the permission, hence a developer can always open and do what they want with any PDF document. As example iText contains a flag unethicalreading
, if you set it to true
, you will be able to have owner access to these documents without knowing the password.
当我生成带有 jasper 报告的 PDF 时,我不希望用户能够打印它。
是否有一些选项可以从代码中生成它,还是仅取决于可视化它的程序(网络浏览器、adobe 等)。
如果您要从 java.
导出,您可以通过使用 jrxml 属性或将值设置为SimplePdfExporterConfiguration
来实现此目的
为了保护您的 pdf 文档(因此在这种情况下不允许打印),您需要做的第一件事就是对其进行加密,并确保您在类路径中具有用于加密的必要库,请参阅 How to configure PDF encryption in JasperReports Server 5.6.1
jrxml 属性
<property name="net.sf.jasperreports.export.pdf.encrypted" value="true"/>
<property name="net.sf.jasperreports.export.pdf.128.bit.key" value="true"/>
<property name="net.sf.jasperreports.export.pdf.owner.password" value="12345"/>
或
java代码
SimplePdfExporterConfiguration configuration = new SimplePdfExporterConfiguration();
configuration.setEncrypted(true);
configuration.set128BitKey(true);
configuration.setOwnerPassword("1234");
Note we are setting owner password not user password, hence user will be allowed to open without.
现在设置用户权限
net.sf.jasperreports.export.pdf.permissions.allowed
在你的情况下,我猜你只喜欢允许屏幕阅读器,如果你还想允许 COPY 或其他操作(参见上面的 link),请将这些 |
添加到你的属性中
jrxml 属性
<property name="net.sf.jasperreports.export.pdf.permissions.allowed" value="SCREENREADERS"/>
或
java代码
configuration.setPermissions(PdfWriter.ALLOW_SCREENREADERS);
Notice: it is up to the reader/application to respect the permission, hence a developer can always open and do what they want with any PDF document. As example iText contains a flag
unethicalreading
, if you set it totrue
, you will be able to have owner access to these documents without knowing the password.