当社の C++ ソリューションは、複雑な比較アルゴリズムを使用したときに可能な限り最良の結果が得られるように設計されています。そのため、ドキュメント内の差異を手動で検索する必要はなくなりました。API を自由に使用して 2 つのファイルを比較してください。
私たちの比較エンジンは、文字または単語全体のレベルで違いを探します。 1 文字だけが変更された場合は、単語全体が変更されたものとして強調表示されます。見つかったすべての変更は出力で明確に確認でき、便利な形式でエクスポートできます。
最も一般的なタイプの比較は、PDF ファイルと Word ファイルの比較です。したがって、これらの例を使用して C++ diff ツールとその比較関数を学習します。
PDF ドキュメントが変更されていないことを確認し、元のバージョンと比較する必要がある場合があります。または、PDF が実際に変更されたことがすでにわかっており、どこをどのように変更したかを確認する必要がある場合もあります。次に、PDF ファイルの 2 つのバージョンを比較して、違いを確認できます。手動での実行を避けるには、C++ diff checker API を使用してください。
C++ ソリューションを使用すると、手動での比較では見逃しがちな小さな変更も確認できます。
Word 文書は非常に簡単に変更できるため、Word ファイルを比較して文書の一部または全体が変更されていないことを確認することが重要です。
Word ファイルを比較するには、PDF の場合と同様に、C++ ソリューションを使用します。以下の例でこれを行うことができます。
C++ ドキュメントの比較がどのように機能するかを確認するには、比較する 2 つのファイルをロードし、エクスポート ファイル形式を選択します。
比較が完了すると、差分を含むドキュメントが選択した形式で自動的にダウンロードされます。
比較されるドキュメントには比較前にリビジョンが存在してはいけないことが重要です。そのため、比較を開始する前にすべてのリビジョンを受け入れる必要があります。心配しないでください。この例ではそれを処理しました。
using namespace aspose::words::cloud;
auto config =
std::make_shared<ApiConfiguration>(L"####-####-####-####-####", L"##################");
auto wordsApi = std::make_shared<WordsApi>(config);
std::wstring fileName1 = L"Input1.docx";
std::wstring fileName2 = L"Input2.docx";
std::wstring fileResult = L"Output.docx";
// ドキュメントをクラウドストレージにアップロードします。
auto firstDocumentContent =
std::shared_ptr<std::istream>(
new std::ifstream(std::filesystem::path(fileName1), std::istream::binary));
std::shared_ptr<requests::UploadFileRequest> uploadFirstFileRequest(
new requests::UploadFileRequest(
firstDocumentContent, std::make_shared<std::wstring>(fileName1)
)
);
wordsApi->uploadFile(uploadFirstFileRequest);
auto secondDocumentContent =
std::shared_ptr<std::istream>(
new std::ifstream(std::filesystem::path(fileName2), std::istream::binary));
std::shared_ptr<requests::UploadFileRequest> uploadSecondFileRequest(
new requests::UploadFileRequest(
secondDocumentContent, std::make_shared<std::wstring>(fileName2)
)
);
wordsApi->uploadFile(uploadSecondFileRequest);
// クラウド内のドキュメントを比較します。
auto compareDataOptions = std::make_shared<aspose::words::cloud::models::CompareData>();
compareDataOptions->setAuthor(std::make_shared<std::wstring>(L"author"));
compareDataOptions->setFileReference(
std::make_shared<aspose::words::cloud::models::FileReference>(
std::make_shared<std::wstring>(fileName2));
std::shared_ptr<requests::CompareDocumentRequest> compareDocumentRequest(
new requests::CompareDocumentRequest(
std::make_shared<std::wstring>(fileName1),
compareDataOptions, std::make_shared<std::wstring>(fileResult)
)
);
wordsApi->compareDocument(compareDocumentRequest);
// クラウドストレージから結果ドキュメントをダウンロードします。
std::shared_ptr<requests::DownloadFileRequest> downloadFileRequest(
new requests::DownloadFileRequest(
std::make_shared<std::wstring>(fileResult)
)
);
auto downloadFileResult = wordsApi->downloadFile(downloadFileRequest);
{
char buffer[1024];
std::ofstream fileWriter(fileResult, std::ofstream::binary);
const auto& fileData = *downloadFileResult->begin();
while(fileData.second->read(buffer, sizeof(buffer))) {
fileWriter.write(buffer, sizeof(buffer));
}
fileWriter.write(buffer, fileData.second->gcount());
fileWriter.close();
}
GitHub Aspose.Words Cloud SDK for C++ クローンを作成します。 SDKの構築と構成の詳細については、 "How to use the SDK" セクションを参照してください。
必要なセキュリティクレデンシャルをすばやく取得してRESTAPIにアクセスするには、ドキュメントの次の Instructions に従ってください。
詳細については、 Repository Documentation を参照してください。