MS Wordは、優れた機能セットを使用してプロフェッショナルドキュメントをカスタマイズおよびフォーマットできる強力なツールです。すべての領収書を1つのファイルにまとめたり、管理を容易にするために異なるソフトウェア要件ドキュメントを組み合わせたりするなど、複数のWordドキュメントをマージしたい場合があります。さらに、ファイルを組み合わせると、ファイルを共有するプロセスが簡素化されます。この記事では、C++を使用して複数のMSWord文書をマージする方法を学習します。
Word文書をマージするためのC++API
Aspose.Words for C++はネイティブC++ライブラリであり、Microsoft Wordドキュメントを作成、変更、および変換できます。さらに、複数のWord文書を1つのファイルに結合することもサポートしています。 APIは、NuGetからインストールするか、ダウンロードセクションから直接ダウンロードできます。
PM> Install-Package Aspose.Words.Cpp
C++を使用してWord文書をマージする
Word文書をAspose.Words for C++ APIとマージするのは簡単です。ほんの数行のコードでそれらをロードしてマージできます。以下は、この記事で組み合わせる2つのサンプルWordファイルを示す画像です。
以下は、C++を使用してWord文書をマージするための手順です。
- Documentクラスを使用して宛先ドキュメントをロードします。
- Documentクラスを使用してソースドキュメントをロードします。
- Document->AppendDocument(System::SharedPtrAspose::Words::Document srcDoc, Aspose::Words::ImportFormatMode importFormatMode)両方のドキュメントをマージする宛先ドキュメントインスタンスのメソッド。
- ImportFormatMode列挙型を使用して、ソースドキュメントをインポートするためのスタイル設定を設定します。
- Document->Save(System::String fileName, Aspose::Words::SaveFormat saveFormat)メソッドを使用して、マージされたWord文書を保存します。
以下は、Word文書をマージするためのサンプルコードです。
// マージするサンプルWord文書
System::String sampleFile1 = u"SourceDirectory\\Sample 1.docx";
System::String sampleFile2 = u"SourceDirectory\\Sample 2.docx";
// マージするWordドキュメントを読み込む
System::SharedPtr<Aspose::Words::Document> document1 = System::MakeObject<Aspose::Words::Document>(sampleFile1);
System::SharedPtr<Aspose::Words::Document> document2 = System::MakeObject<Aspose::Words::Document>(sampleFile2);
// ソースファイルのフォーマットを維持しながらドキュメントをマージする
document1->AppendDocument(document2, Aspose::Words::ImportFormatMode::KeepSourceFormatting);
// 出力ファイルパス
System::String outputPath = u"OutputDirectory\\merged-doc-out.docx";
// マージされたドキュメントをDOCXファイルとして保存します
document1->Save(outputPath, Aspose::Words::SaveFormat::Docx);
次の画像は、ImportFormatMode::KeepSourceFormattingとImportFormatMode::UseDestinationStylesモード。
Word文書を追加オプションとマージする
Aspose.Words for C++ APIは、WordファイルのマージをカスタマイズするためのImportFormatOptionsクラスを提供します。以下は、ImportFormatOptionsクラスによって提供されるオプションです。
- IgnoreHeaderFooter: ImportFormatMode::KeepSourceFormattingモードが使用されている場合に、ヘッダー/フッターコンテンツのフォーマットを無視するかどうかを指定します。
- IgnoreTextBoxes: ImportFormatMode::KeepSourceFormattingモードが使用されている場合に、テキストボックスのソースフォーマットを無視するかどうかを指定します。
- KeepSourceNumbering: ソースドキュメントと宛先ドキュメントで番号が競合する場合に番号をインポートする方法を指定します。
- SmartStyleBehavior: ソースドキュメントと宛先ドキュメントで同じ名前のスタイルをインポートする方法を指定します。
以下は、複数のWord文書を追加のオプションとマージする手順です。
- Documentクラスを使用して宛先ドキュメントをロードします。
- Documentクラスを使用してソースドキュメントをロードします。
- ImportFormatOptionsクラスのインスタンスを作成し、必要なオプションを設定します。
- Document->AppendDocument(System::SharedPtrAspose::Words::Document srcDoc, Aspose::Words::ImportFormatMode importFormatMode, System::SharedPtrAspose::Words::ImportFormatOptions importFormatOptions)メソッドを使用してドキュメントをマージします。
- Document->Save(System::String fileName, Aspose::Words::SaveFormat saveFormat)メソッドを使用して、宛先のWord文書を保存します。
以下は、Word文書を追加のオプションとマージするためのサンプルコードです。
// マージするサンプルWord文書
System::String sampleFile1 = u"SourceDirectory\\Sample 1.docx";
System::String sampleFile2 = u"SourceDirectory\\Sample 2.docx";
// マージするWordドキュメントを読み込む
System::SharedPtr<Aspose::Words::Document> document1 = System::MakeObject<Aspose::Words::Document>(sampleFile1);
System::SharedPtr<Aspose::Words::Document> document2 = System::MakeObject<Aspose::Words::Document>(sampleFile2);
// オプションを設定する
auto options = MakeObject<Aspose::Words::ImportFormatOptions>();
options->set_IgnoreHeaderFooter(false);
// ソースファイルのフォーマットを維持しながらドキュメントをマージする
document1->AppendDocument(document2, Aspose::Words::ImportFormatMode::KeepSourceFormatting, options);
// 出力ファイルパス
System::String outputPath = u"OutputDirectory\\merged-doc-out.docx";
// マージされたドキュメントをDOCXファイルとして保存します
document1->Save(outputPath, Aspose::Words::SaveFormat::Docx);
次の画像は、IgnoreHeaderFooterオプションをtrueとfalseに設定して生成されたマージされたドキュメントを比較しています。
無料ライセンスを取得する
無料の一時ライセンスをリクエストすることで、評価の制限なしにAPIを試すことができます。
結論
この記事では、C++を使用して複数のWord文書をマージする方法を学びました。さらに、Wordファイルのマージをカスタマイズするための追加オプションの使用方法を学習しました。 Aspose.Words for C++ APIは、Wordファイルを操作するための一連の機能を提供します。 公式ドキュメントを使用して、APIを詳細に調べることができます。ご不明な点がございましたら、フォーラムまでお気軽にお問い合わせください。