使用 C++ 将 DOCX 转换为 DOC 或将 DOC 转换为 DOCX

Microsoft Word 文档有两种格式,DOCDOCX。 DOC 是一种较旧的格式,而 DOCX 是它的继任者。您可以将 DOCX 文件转换为 DOC 格式,反之亦然。在本文中,您将学习如何将 DOCX 文件转换为 DOC 格式,以及将 DOCX 文件转换为 DOCX 格式。您还将看到如何批量执行这些转换。要详细探讨这些场景,请参阅以下部分:

用于将 DOCX 转换为 DOC 和将 DOC 转换为 DOCX 格式的 C++ API

Aspose.Words for C++ 是一个本地 C++ 库,允许您创建、阅读和修改 Microsoft Word 文档。此外,它还支持将 DOCX 文件转换为 DOC 格式和将 DOC 文件转换为 DOCX 格式。您可以通过 NuGet 安装 API,也可以直接从 下载 部分下载。

PM> Install-Package Aspose.Words.Cpp

使用 C++ 将 DOCX 文件转换为 DOC 格式

您可以按照以下步骤将 DOCX 文件转换为 DOC 格式。

以下示例代码展示了如何使用 C++ 将 DOCX 文件转换为 DOC 文件。

// 创建 LoadOptions 类的实例
auto loadOptions = System::MakeObject<LoadOptions>();

// 指定输入word文档的LoadFormat
loadOptions->set_LoadFormat(LoadFormat::Docx);

// 加载源 DOCX 文件
System::SharedPtr<Document> doc = System::MakeObject<Document>(u"SourceDirectory\\Word\\Sample 4.docx", loadOptions);

// 保存文档文件
doc->Save(u"OutputDirectory\\output.doc", SaveFormat::Doc);

使用 C++ 将 DOCX 文件批量转换为 DOC 格式

如果您有数百个 DOCX 文件需要转换为 DOC 格式,您只需执行一次程序即可轻松转换它们。在这个例子中,我们将使用 boost 库来遍历目录中的文件。以下是将 DOCX 文件批量转换为 DOC 格式的步骤。

以下示例代码演示了如何使用 C++ 将 DOCX 文件批量转换为 DOC 格式。

// 遍历目录中的文件
for (directory_entry& file : directory_iterator("SourceDirectory\\Word"))
{
    // 检查文件扩展名
    if (file.path().extension().string() == ".docx")
    {
        // 创建 LoadOptions 类的实例
        auto loadOptions = System::MakeObject<LoadOptions>();

        // 指定输入word文档的LoadFormat
        loadOptions->set_LoadFormat(LoadFormat::Docx);

        // 加载 DOCX 文件
        System::SharedPtr<Document> doc = System::MakeObject<Document>((System::String)file.path().string(), loadOptions);

        // 更改文件扩展名
        System::String fileName = (System::String)file.path().filename().string();
        fileName = fileName.Replace(u".docx", u".doc");

        // 保存文档文件
        doc->Save(System::String::Concat(u"OutputDirectory\\", fileName), SaveFormat::Doc);
    }
}

使用 C++ 将 DOC 文件转换为 DOCX 格式

以下是将 DOC 文件转换为 DOCX 文件的步骤。

以下示例代码展示了如何使用 C++ 将 DOC 文件转换为 DOCX 文件。

// 创建 LoadOptions 类的实例
auto loadOptions = System::MakeObject<LoadOptions>();

// 指定输入word文档的LoadFormat
loadOptions->set_LoadFormat(LoadFormat::Doc);

// 加载源 DOC 文件
System::SharedPtr<Document> doc = System::MakeObject<Document>(u"SourceDirectory\\Word\\Sample 1.doc", loadOptions);

// 保存 DOCX 文件
doc->Save(u"OutputDirectory\\output.docx", SaveFormat::Docx);

使用 C++ 将 DOC 文件批量转换为 DOCX 格式

要将 DOC 文件批量转换为 DOCX 格式,请使用以下步骤。

以下示例代码演示了如何使用 C++ 将 DOC 文件批量转换为 DOCX 格式。

// 遍历目录中的文件
for (directory_entry& file : directory_iterator("SourceDirectory\\Word"))
{
    // 检查文件扩展名
    if (file.path().extension().string() == ".doc")
    {
        // 创建 LoadOptions 类的实例
        auto loadOptions = System::MakeObject<LoadOptions>();

        // 指定输入word文档的LoadFormat
        loadOptions->set_LoadFormat(LoadFormat::Doc);

        // 加载 DOC 文件
        System::SharedPtr<Document> doc = System::MakeObject<Document>((System::String)file.path().string(), loadOptions);

        // 更改文件扩展名
        System::String fileName = (System::String)file.path().filename().string();
        fileName = fileName.Replace(u".doc", u".docx");

        // 保存 DOCX 文件
        doc->Save(System::String::Concat(u"OutputDirectory\\", fileName), SaveFormat::Docx);
    }
}

获得免费许可证

您可以通过申请 免费的临时许可证 来试用该 API,而不受评估限制。

结论

在本文中,您学习了如何使用 C++ 将 DOCX 文件转换为 DOCX 格式和将 DOC 文件转换为 DOCX 格式。此外,您还了解了如何使用 boost 库批量执行这些转换。 Aspose.Words for C++ 提供了一系列附加功能,用于自动执行与 Word 相关的任务。您可以通过访问 官方文档 来详细探索 API。如有任何问题,请随时通过我们的 免费支持论坛 与我们联系。

也可以看看