Word处理控件Aspose.Words功能演示:在 Java 中将宏从一个 Word 文档复制到另一个文档

Aspose.Words 是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word。此外,

Aspose API支持流行文件格式处理,并允许将各类文档导出或转换为固定布局文件格式和最常用的图像/多媒体格式。

Aspose.words 最新下载(qun:761297826)icon-default.png?t=N3I4https://www.evget.com/product/4116/download

将 VBA 宏从一个 Word 文档复制到 Java 中的另一个文档

Word 文档中的宏是用 VBA (Visual Basic for Applications) 编写的,用于自动执行常用任务。MS Word 宏包含一组代码语句,这些语句在单击工具栏中的特定按钮或按下组合键时执行。

在上一版Aspose.Words for Java中,我们引入了在Word文档中为VBA项目或VBA模块添加宏的功能。但是,在某些情况下,您需要克隆 VBA 模块或整个 VBA 项目以编程方式将 Word 宏从一个文档复制到另一个文档。为了使其成为可能,我们向VABModule和VBAProject类添加了deepClone()方法,以从特定的 VBA 模块或项目复制 Word 宏。

现在让我们看看如何使用Aspose.Words for Java在 Java 中将 Word 宏从一个文档复制到另一个文档。

克隆 VBA 模块

Document doc = new Document(dataDir + "test.docm");
VbaProject project = doc.getVbaProject();

Document destDoc = new Document();

destDoc.setVbaProject(new VbaProject());

// Clone a single module.
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();
  • // Clone the whole project.
    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。为此,我们已将PDF_17选项添加到PdfCompliance枚举中。

以下 Java 代码示例显示了如何通过指定PdfCompliance将 Word 转换为 PDF 。

// For complete examples and data files, please go to // https://github.com/aspose-words/Aspose.Words-for-Java
// The path to the documents directory.
Document originalDoc = new Document(dataDir + "Document.docx");

// Provide PDFSaveOption compliance to PDF17
// or just convert without 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 Java提供查找和替换选项来替换 Word 文档中所需的单词或短语。在以前版本的 API 中,查找/替换功能用于与文档内容分开分析文本框。此行为是根据 MS Word 的行为设计的,但是,在某些情况下,您可能需要按顺序查找和替换内容,包括文本框中的文本。对于这种情况,我们在FindReplaceOptions类中引入了一个新选项UseLegacyOrder。以下 Java 代码示例显示了在 Word 文档中查找和替换文本时如何使用此选项。

public static void FineReplaceUsingLegacyOrder(String dataDir) throws Exception
{
// Open the document.
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;
}
}

以上便是如何在 Java 中将宏从一个 Word 文档复制到另一个文档 ,要是您还有其他关于产品方面的问题,欢迎咨询我们,或者加入我们官方技术交流群。

猜你喜欢

转载自blog.csdn.net/m0_67129275/article/details/130419965