又一个月,又一个功能丰富的版本! Aspose.Words for Java 19.12 已经推出了一系列有用的功能、增强功能和错误修复。使用最新版本,您将能够通过克隆 Java 中的 VBA 模块或 VBA 项目将 Word 宏从一个文档复制到另一个文档。此外,我们还添加了对 PDF 1.7 标准的支持,用于 Word 到 PDF 的转换。此外,最新版本的 Aspose.Words for Java 能够扫描 Windows 10 中用户安装的字体以查找字体源。因此,让我们更详细地了解这些有用的功能。
在 Java 中将 VBA 宏从一个 Word 文档复制到其他文档
Word 文档中的宏是用 VBA(Visual Basic for Applications)编写的,用于自动执行常用任务。 MS Word 宏包含一组代码语句,这些语句在单击工具栏中的特定按钮或按下组合键时执行。
在 Aspose.Words for Java 上一版本 中,我们引入了在 Word 文档中为 VBA 项目或 VBA 模块添加宏的功能。但是,当您需要克隆 VBA 模块或整个 VBA 项目以以编程方式将 Word 宏从一个文档复制到另一个文档时,可能会出现这种情况。为了使它成为可能,我们在 VABModule 和 VBAProject 类中添加了 deepClone() 方法,以从特定的 VBA 模块或项目中复制 Word 宏。
现在让我们看看如何在 Java 中使用 Aspose.Words for Java 将 Word 宏从一个文档复制到另一个文档。
克隆 VBA 模块
以下 Java 代码示例显示了如何通过克隆 Word 文档中的特定 VBA 模块来复制宏。
Document doc = new Document(dataDir + "test.docm");
VbaProject project = doc.getVbaProject();
Document destDoc = new Document();
destDoc.setVbaProject(new VbaProject());
// 克隆单个模块。
VbaModule copyModule = doc.getVbaProject().getModules().get("Module1").deepClone();
destDoc.getVbaProject().getModules().add(copyModule);
destDoc.save(dataDir + "output.docm");
克隆 VBA 项目
以下 Java 代码示例显示了如何通过在 Word 文档中克隆完整的 VBA 项目来复制宏。
Document doc = new Document(dataDir + "test.docm");
VbaProject project = doc.getVbaProject();
Document destDoc = new Document();
// 克隆整个项目。
destDoc.setVbaProject(doc.getVbaProject().deepClone());
destDoc.save(dataDir + "output.docm");
在 Java 中将 Word 转换为 PDF 1.7 标准
PDF 文档可能符合各种标准或 PDF 规范的版本。 PDF 1.7 是 PDF 规范的第六版,它包含了一些仅由 Adobe 定义的专有技术。 Aspose.Words for Java 已经支持 Word 到 PDF 转换,但是,我们已经扩展了此支持,现在您可以将 Word 文档转换为 PDF 1.7。为此,我们在 PdfCompliance 枚举中添加了 PDF17 选项。
以下 Java 代码示例显示了如何通过指定 PdfCompliance 将 Word 转换为 PDF。
// 如需完整的示例和数据文件,请访问 // https://github.com/aspose-words/Aspose.Words-for-Java
// 文档目录的路径。
Document originalDoc = new Document(dataDir + "Document.docx");
// 为 PDF17 提供 PDFSaveOption 合规性
// 或者只是在没有 SaveOptions 的情况下进行转换
PdfSaveOptions pso = new PdfSaveOptions();
pso.setCompliance(PdfCompliance.PDF_17);
originalDoc.save(dataDir + "Output.pdf", pso);
在 Windows 10 上为 SystemFontSource 使用用户安装的字体
在 Aspose.Words for Java 的早期版本中,API 用于仅扫描 SystemFontSource 的系统安装字体。这种方法不适合 Windows 10,其中字体可能安装到所有用户的系统文件夹“%windir%\fonts”或用户文件夹“%userprofile%\AppData\Local\Microsoft \Windows\Fonts" 为当前用户。我们增强了这个功能,现在 Aspose.Words for Java 也可以扫描用户安装的字体。
新的查找和替换选项 {#Aspose.Words for Java19.12ReleaseNotes-AddedanewFindReplaceOptions.UseLegacyOrderoption}
Aspose.Words for Java 提供 查找和替换 选项来替换 Word 文档中所需的单词或短语。在 API 的早期版本中,查找/替换功能用于将文本框与文档内容分开分析。此行为是根据 MS Word 的行为设计的,但是,您可能需要按顺序查找和替换内容,包括文本框中的文本。对于这种情况,我们在 FindReplaceOptions 类中引入了一个新选项,即 UseLegacyOrder。以下 Java 代码示例显示了在 Word 文档中查找和替换文本时如何使用此选项。
public static void FineReplaceUsingLegacyOrder(String dataDir) throws Exception
{
// 打开文档。
Document doc = new Document(dataDir + "source.docx");
FindReplaceOptions options = new FindReplaceOptions();
options.setReplacingCallback(new ReplacingCallback());
options.setUseLegacyOrder(true);
doc.getRange().replace(Pattern.compile("\\[(.*?)\\]"), "", options);
dataDir = dataDir + "usingLegacyOrder_out.doc";
doc.save(dataDir);
}
private static class ReplacingCallback implements IReplacingCallback
{
public int replacing(ReplacingArgs args) {
System.out.print(args.getMatch().group());
return ReplaceAction.REPLACE;
}
}
好吧,这是我们在最新版本中添加的一些重要功能的简要概述。您可以查看 发行说明 中的功能和错误修复的完整列表。您可以下载 最新版本并自行评估新功能。有关任何功能的更多详细信息,您可以查阅 API 的 文档 并通过我们的 论坛 联系我们。