Convert PDF to Microsoft Word Documents in C++

Обзор

Эта статья объясняет, как конвертировать PDF в документы Microsoft Word с использованием C++. Она охватывает следующие темы.

Формат: DOC

Формат: DOCX

Формат: Microsoft Word DOC формат

Format: Microsoft Word DOCX формат

Другие темы, охватываемые этой статьей

Конвертация PDF в Word на C++

Одна из самых популярных функций — это конвертация PDF в Microsoft Word DOC, что делает содержание легким для редактирования. Aspose.PDF для C++ позволяет конвертировать PDF файлы в DOC.

Конвертировать PDF в DOC (Word 97-2003) файл

Конвертируйте PDF файл в формат DOC с легкостью и полным контролем. Aspose.PDF для C++ гибкий и поддерживает широкий спектр конверсий. Конвертация страниц из PDF документов в изображения, например, очень популярная функция.

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

Сохраняя традицию делать вещи простыми и понятными, Aspose.PDF for C++ позволяет преобразовать исходный PDF файл в DOC файл с помощью двух строк кода. Для реализации этой функции мы ввели перечисление под названием SaveFormat, и его значение .Doc позволяет сохранить исходный файл в формате Microsoft Word.

Следующий фрагмент кода на C++ демонстрирует процесс преобразования PDF файла в формат DOC.

Шаги: Преобразование PDF в DOC на C++ | Шаги: Преобразование PDF в формат Microsoft Word DOC на C++

  1. Создайте экземпляр объекта Document с исходным документом PDF.
  2. Сохраните его в формате SaveFormat::Doc, вызвав метод Document->Save().
void ConvertPDFtoWord()
{
    std::clog << __func__ << ": Start" << std::endl;
    // Строка для имени пути
    String _dataDir("C:\\Samples\\Conversion\\");

    // Строка для имени файла
    String infilename("sample.pdf");
    String outfilename("PDFToDOC.doc");

    // Открыть документ
    auto document = MakeObject<Document>(_dataDir + infilename);

    try {
        // Сохранить файл в формате MS документа
        document->Save(_dataDir + outfilename, SaveFormat::Doc);
    }
    catch (Exception ex) {
        std::cerr << ex->get_Message();
    }

    std::clog << __func__ << ": Finish" << std::endl;
}

Следующий фрагмент кода показывает процесс преобразования PDF файла в DOC в расширенной версии:

void ConvertPDFtoWordDocAdvanced()
{
    std::clog << __func__ << ": Start" << std::endl;
    // Строка для имени пути
    String _dataDir("C:\\Samples\\Conversion\\");

    // Строка для имени файла
    String infilename("sample.pdf");
    String outfilename("PDFToDOC.doc");

    // Открыть документ
    auto document = MakeObject<Document>(_dataDir + infilename);

    auto saveOptions = MakeObject<DocSaveOptions>();
    saveOptions->set_Format(DocSaveOptions::DocFormat::Doc);
    // Установить режим распознавания как Flow
    saveOptions->set_Mode(DocSaveOptions::RecognitionMode::Flow);
    // Установить горизонтальную близость как 2.5
    saveOptions->set_RelativeHorizontalProximity(2.5f);
    // Включить распознавание маркеров в процессе конвертации
    saveOptions->set_RecognizeBullets(true);

    try {
        // Сохранить файл в формате MS документа
        document->Save(_dataDir + outfilename, saveOptions);
    }
    catch (Exception ex) {
        std::cerr << ex->get_Message();
    }

    std::clog << __func__ << ": Finish" << std::endl;
}

Преобразование PDF в DOCX

Aspose.PDF для C++ API позволяет читать и преобразовывать PDF документы в DOCX с использованием языка C++. DOCX — это известный формат документов Microsoft Word, структура которого была изменена с простого бинарного на комбинацию XML и бинарных файлов. Файлы Docx могут быть открыты в Word 2007 и более поздних версиях, но не в более ранних версиях MS Word, которые поддерживают расширения файлов DOC.

Следующий фрагмент кода на C++ показывает процесс преобразования файла PDF в формат DOCX.

Шаги: Преобразование PDF в DOCX на C++ | Шаги: Преобразование PDF в формат Microsoft Word DOCX на C++

  1. Создайте экземпляр объекта Document с исходным PDF-документом.
  2. Сохраните его в формате SaveFormat::DocX, вызвав метод Document->Save().
void ConvertPDFtoWord_DOCX_Format()
{
    std::clog << __func__ << ": Start" << std::endl;
    // Строка для имени пути
    String _dataDir("C:\\Samples\\Conversion\\");

    // Строка для имени файла
    String infilename("sample.pdf");
    String outfilename("PDFToDOC.docx");

    // Открыть документ
    auto document = MakeObject<Document>(_dataDir + infilename);

    try {
        // Сохранить файл в формате MS документа
        document->Save(_dataDir + outfilename, SaveFormat::DocX);
    }
    catch (Exception ex) {
        std::cerr << ex->get_Message();
    }

    std::clog << __func__ << ": Finish" << std::endl;
}

Класс DocSaveOptions имеет свойство с именем Format, которое предоставляет возможность указать формат результирующего документа, то есть DOC или DOCX. Чтобы преобразовать PDF файл в формат DOCX, пожалуйста, передайте значение Docx из перечисления DocSaveOptions.DocFormat.

Пожалуйста, обратите внимание на следующий фрагмент кода, который предоставляет возможность преобразования PDF файла в формат DOCX с использованием C++.

void ConvertPDFtoWord_Advanced_DOCX_Format()
{
    std::clog << __func__ << ": Start" << std::endl;
    // Строка для имени пути
    String _dataDir("C:\\Samples\\Conversion\\");

    // Строка для имени файла
    String infilename("sample.pdf");
    String outfilename("PDFToDOC.docx");

    // Открыть документ
    auto document = MakeObject<Document>(_dataDir + infilename);

    auto saveOptions = MakeObject<DocSaveOptions>();
    saveOptions->set_Format(DocSaveOptions::DocFormat::DocX);

    // Установить другие параметры DocSaveOptions
    // ...

    // Сохранить файл в формате MS документа

    try {
        // Сохранить файл в формате MS документа
        document->Save(_dataDir + outfilename, saveOptions);
    }
    catch (Exception ex) {
        std::cerr << ex->get_Message();
    }

    std::clog << __func__ << ": Finish" << std::endl;
}

См. также

Эта статья также охватывает следующие темы. Код такой же, как и выше.

Формат: Формат Microsoft Word DOC

Формат: Формат Microsoft Word DOCX

Формат: DOC

Формат: DOC