Compare PDF Documents - C++
PDF Extractor SDK sample in C++ demonstrating ‘Compare PDF Documents’
CPPExample.cpp
#include "stdafx.h"
#include "comip.h"
#import "c:\\Program Files\\Bytescout PDF Extractor SDK\\net4.00\\Bytescout.PDFExtractor.tlb" raw_interfaces_only
using namespace Bytescout_PDFExtractor;
int _tmain(int argc, _TCHAR* argv[])
{
// Initialize COM.
HRESULT hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
// Load first document
_TextExtractorPtr document1(__uuidof(TextExtractor));
document1->put_RegistrationName(_bstr_t(L"DEMO"));
document1->put_RegistrationKey(_bstr_t(L"DEMO"));
document1->LoadDocumentFromFile(_bstr_t(L"..\\..\\comparison1.pdf"));
// Load second document
_TextExtractorPtr document2(__uuidof(TextExtractor));
document2->put_RegistrationName(_bstr_t(L"DEMO"));
document2->put_RegistrationKey(_bstr_t(L"DEMO"));
document2->LoadDocumentFromFile(_bstr_t(L"..\\..\\comparison2.pdf"));
// Compare documents
_TextComparerPtr comparer(__uuidof(TextComparer));
comparer->put_RegistrationName(_bstr_t(L"DEMO"));
comparer->put_RegistrationKey(_bstr_t(L"DEMO"));
DECIMAL result;
comparer->Compare((_BaseTextExtractorPtr) document1, (_BaseTextExtractorPtr) document2, &result);
// Generate report
VARIANT_BOOL ok;
comparer->GenerateHtmlReport_2(_bstr_t(L"report.html"), &ok);
document1->Release();
document2->Release();
comparer->Release();
CoUninitialize();
return 0;
}
stdafx.cpp
// stdafx.cpp : source file that includes just the standard includes
// CPPExample.pch will be the pre-compiled header
// stdafx.obj will contain the pre-compiled type information
#include "stdafx.h"
// TODO: reference any additional headers you need in STDAFX.H
// and not in this file
stdafx.h
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//
#pragma once
#include "targetver.h"
#include <stdio.h>
#include <tchar.h>
// TODO: reference additional headers your program requires here
targetver.h
#pragma once
// Including SDKDDKVer.h defines the highest available Windows platform.
// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and
// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h.
#include <SDKDDKVer.h>