我们的 C++ 解决方案旨在为您在使用复杂的比较算法时提供最佳结果。因此,您不再需要手动查找文档中的差异 - 请随意使用我们的 API 来比较两个文件。
我们的比较引擎寻找字符或整个单词级别的差异。如果只更改了一个字符,则整个单词将突出显示为已更改。所有发现的更改都可以在输出中清楚地查看,并以方便的格式导出。
最流行的比较类型是比较 PDF 和 Word 文件。因此,我们将使用这些示例来学习我们的 C++ diff工具及其比较功能。
有时您需要确保您的PDF文档没有被修改,并将其与原始版本进行比较。或者您已经知道您的 PDF 确实发生了变化,并且您需要查看位置和方式。然后您可以比较两个版本的 PDF 文件并查看差异。为了避免手动执行此操作,只需使用我们的 C++ diff 检查器 API。
通过我们的 C++ 解决方案,您甚至会看到在手动比较中很容易错过的微小变化。
Word 文档相当容易更改,因此比较 Word 文件以确保部分或整个文档没有更改非常重要。
要比较 Word 文件,请使用我们的 C++ 解决方案,就像 PDF 一样。您可以在下面的示例中执行此操作。
要了解我们的 C++ 文档比较的工作原理,请加载要比较的两个文件并选择导出文件格式。
比较完成后,将按照您选择的格式自动下载包含差异的文档。
重要的是,被比较的文档在比较之前不能有任何修订,因此我们需要在比较开始之前接受所有修订。别担心,我们已经在我们的示例中解决了这个问题:
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++ 源代码。您可以在 "How to use the SDK" 部分找到有关构建和配置 SDK 的详细信息。
要快速获取必要的安全凭证并访问我们的 REST API,请按照文档中的这些 Instructions 进行操作。
请参阅 Repository Documentation 以查看详细信息。