C++を使用してDOCXをDOCに、またはDOCをDOCXに変換する

Microsoft Word文書は、DOCDOCXの2つの形式で入手できます。 DOCは古い形式であり、DOCXはその後継です。 DOCXファイルをDOC形式に、またはその逆に変換できます。この記事では、DOCXファイルをDOC形式に変換する方法とDOCファイルをDOCX形式に変換する方法を学習します。また、これらの変換を一括で実行する方法についても説明します。これらのシナリオを詳細に調べるには、次のセクションを参照してください。

DOCXをDOCに、DOCをDOCX形式に変換するためのC++ API

Aspose.Words for C++は、Microsoft Word文書の作成、読み取り、および変更を可能にするネイティブC++ライブラリです。さらに、DOCXファイルからDOC形式への変換、およびDOCファイルからDOCX形式への変換もサポートしています。 APIは、NuGetからインストールするか、ダウンロードセクションから直接ダウンロードできます。

PM> Install-Package Aspose.Words.Cpp

C++を使用したDOCXファイルのDOC形式への変換

以下の手順に従って、DOCXファイルをDOC形式に変換できます。

次のサンプルコードは、C++を使用してDOCXファイルをDOCファイルに変換する方法を示しています。

// LoadOptionsクラスのインスタンスを作成します
auto loadOptions = System::MakeObject<LoadOptions>();

// 入力ワードドキュメントのLoadFormatを指定します
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);

C++を使用してDOCXファイルをDOC形式にバッチ変換する

DOC形式に変換する必要のあるDOCXファイルが数百ある場合は、プログラムを1回実行するだけで簡単に変換できます。この例では、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>();

        // 入力ワードドキュメントの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ファイルを保存します
        doc->Save(System::String::Concat(u"OutputDirectory\\", fileName), SaveFormat::Doc);
    }
}

C++を使用してDOCファイルをDOCX形式に変換する

以下は、DOCファイルをDOCXファイルに変換する手順です。

次のサンプルコードは、C++を使用してDOCファイルをDOCXファイルに変換する方法を示しています。

// LoadOptionsクラスのインスタンスを作成します
auto loadOptions = System::MakeObject<LoadOptions>();

// 入力ワードドキュメントの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>();

        // 入力ワードドキュメントの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ファイルをDOC形式に変換し、DOCファイルをDOCX形式に変換する方法を学習しました。さらに、Boostライブラリを使用してこれらの変換を一括で実行する方法を見てきました。 Aspose.Words for C++は、Word関連のタスクを自動化するための一連の追加機能を提供します。 公式ドキュメントにアクセスすると、APIの詳細を調べることができます。ご不明な点がございましたら、無料サポートフォーラムまでお気軽にお問い合わせください。

関連項目