Spire.PDF for Java 9.10.3 已发布。本次更新新增支持设置 AES 加密算法以及重置已有域的名字,同时还增强了 PDF 到 SVG、PPTX 和 PDFA2B 以及 OFD 到 PDF 的转换功能。此外,一些已知问题也在该版本中得到修复,如加载 PDF 时程序抛"NullPointerException"的问题。详情请阅读以下内容。
新功能:
- 同步 .NET 新的加解密接口到 JAVA,并支持设置 AES 加密算法。
- 支持重置已有域的名字。
PdfEncryptionAlgorithm.AES
//创建密码安全策略
PdfSecurityPolicy securityPolicy = new PdfPasswordSecurityPolicy("", "123456");
//设置加密算法
securityPolicy.setEncryptionAlgorithm( PdfEncryptionAlgorithm.AES_256);
//设置文档权限(所有权),默认是ForbidAll
securityPolicy.setDocumentPrivilege(PdfDocumentPrivilege.getForbidAll());
securityPolicy.getDocumentPrivilege().setAllowDegradedPrinting(true);
securityPolicy.getDocumentPrivilege().setAllowModifyAnnotations(true);
securityPolicy.getDocumentPrivilege().setAllowAssembly(true);
securityPolicy.getDocumentPrivilege().setAllowModifyContents(true);
securityPolicy.getDocumentPrivilege().setAllowFillFormFields(true);
securityPolicy.getDocumentPrivilege().setAllowPrint(true);
pdf.encrypt(securityPolicy);
PdfDocument pdf = new PdfDocument();
//传递打开密码打开PDF文档
pdf.loadFromFile(inputFile, "1234");
//解密
pdf.decrypt();
pdf.saveToFile(outputFile, FileFormat.PDF);
pdf.dispose();
PdfDocument document=new PdfDocument();
document.loadFromFile("input.pdf");
PdfFormWidget formWidget = (PdfFormWidget)document.getForm();
for (int i = 0; i < formWidget.getFieldsWidget().getCount(); i++)
{
PdfField field = (PdfField)formWidget.getFieldsWidget().get(i);
for (PdfFieldWidget widget : (Iterable<? extends PdfFieldWidget>) formWidget.getFieldsWidget())
{
if (widget.getName() == "oldName")
{
widget.setName("NewName");
}
}
}
document.saveToFile("result.pdf",FileFormat.PDF);
问题修复:
- 修复了转换PDF到SVG后背景不正确的问题。
- 修复了转换PDF到PPTX后形状颜色不正确以及内容缺失的问题。
- 修复了转换PDF到PPTX后图像被遮挡的问题。
- 修复了转换PDF到PDFA2B后标准验证失败的问题。
- 修复了转换OFD到PDF后图章丢失的问题。
- 修复了加载PDF时程序抛"NullPointerException"的问题。
获取Spire.PDF for Java 9.10.3请点击: