Преобразование DOCX в DOC или DOC в DOCX с помощью C++

Документы Microsoft Word доступны в двух форматах: DOC и DOCX. DOC — более старый формат, а DOCX — его преемник. Вы можете конвертировать файлы DOCX в формат DOC и наоборот. В этой статье вы узнаете, как преобразовать файл DOCX в формат DOC и файл DOC в формат DOCX. Вы также увидите, как выполнять эти преобразования массово. Подробное изучение этих сценариев см. в следующих разделах:

C++ API для преобразования DOCX в формат DOC и DOC в формат DOCX

Aspose.Words for C++ — это собственная библиотека C++, позволяющая создавать, читать и изменять документы Microsoft Word. Кроме того, он также поддерживает преобразование файлов DOCX в формат DOC и файлов DOC в формат DOCX. Вы можете либо установить API через NuGet, либо загрузить его напрямую из раздела Загрузки.

PM> Install-Package Aspose.Words.Cpp

Преобразование файла DOCX в формат DOC с использованием C++

Вы можете преобразовать файл DOCX в формат DOC, выполнив следующие действия.

В следующем примере кода показано, как преобразовать файл DOCX в файл DOC с помощью C++.

// Создайте экземпляр класса LoadOptions.
auto loadOptions = System::MakeObject<LoadOptions>();

// Укажите LoadFormat входного документа Word
loadOptions->set_LoadFormat(LoadFormat::Docx);

// Загрузить исходный файл DOCX
System::SharedPtr<Document> doc = System::MakeObject<Document>(u"SourceDirectory\\Word\\Sample 4.docx", loadOptions);

// Сохраните DOC-файл
doc->Save(u"OutputDirectory\\output.doc", SaveFormat::Doc);

Пакетное преобразование файлов DOCX в формат DOC с использованием C++

Если у вас есть сотни файлов DOCX, которые вам нужно преобразовать в формат DOC, вы можете легко преобразовать их, запустив программу один раз. В этом примере мы будем использовать библиотеку boost для перебора файлов в каталоге. Ниже приведены шаги для пакетного преобразования файлов DOCX в формат DOC.

В следующем примере кода показано массовое преобразование файлов DOCX в формат DOC с помощью C++.

// Итерация по файлам в каталоге
for (directory_entry& file : directory_iterator("SourceDirectory\\Word"))
{
    // Проверить расширение файла
    if (file.path().extension().string() == ".docx")
    {
        // Создайте экземпляр класса LoadOptions.
        auto loadOptions = System::MakeObject<LoadOptions>();

        // Укажите LoadFormat входного документа Word
        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-файл
        doc->Save(System::String::Concat(u"OutputDirectory\\", fileName), SaveFormat::Doc);
    }
}

Преобразование файла DOC в формат DOCX с помощью C++

Ниже приведены шаги для преобразования файла DOC в файл DOCX.

В следующем примере кода показано, как преобразовать файл DOC в файл DOCX с помощью C++.

// Создайте экземпляр класса LoadOptions.
auto loadOptions = System::MakeObject<LoadOptions>();

// Укажите LoadFormat входного документа Word
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);

Пакетное преобразование файлов DOC в формат DOCX с использованием C++

Чтобы массово преобразовать файлы DOC в формат DOCX, выполните следующие действия.

В следующем примере кода показано массовое преобразование файлов DOC в формат DOCX с помощью C++.

// Итерация по файлам в каталоге
for (directory_entry& file : directory_iterator("SourceDirectory\\Word"))
{
    // Проверить расширение файла
    if (file.path().extension().string() == ".doc")
    {
        // Создайте экземпляр класса LoadOptions.
        auto loadOptions = System::MakeObject<LoadOptions>();

        // Укажите LoadFormat входного документа Word
        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 без ограничений по ознакомительной версии, запросив бесплатную временную лицензию.

Вывод

В этой статье вы узнали, как преобразовать файл DOCX в формат DOC и файл DOC в формат DOCX с помощью C++. Кроме того, вы видели, как выполнять эти преобразования массово с помощью библиотеки boost. Aspose.Words for C++ предоставляет множество дополнительных функций для автоматизации задач, связанных с Word. Вы можете подробно изучить API, посетив официальную документацию. Если у вас возникнут вопросы, свяжитесь с нами на нашем бесплатном форуме поддержки.

Смотрите также