Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Ceci est un exemple simple de code C++ pour extraire du texte à partir de fichiers PDF en utilisant COM Interop avec liaison anticipée. Avant d’exécuter l’exemple, faites attention à ce qui suit :
// Cross-referenced type libraries:
et contient un ou plusieurs #import. Il suffit de les copier dans votre code avant d’importer la bibliothèque de types principale et de le faire dans le même ordre. Ainsi, vous éviterez le premier type de problème. Le deuxième type de problème provient du fait que l’environnement C++ a un grand nombre de macros, de fonctions prédéfinies, etc., qui peuvent entrer en conflit avec les méthodes de la bibliothèque de types. Par exemple, GetType a déjà été largement utilisé en C++, mais Aspose.PDF l’a également. J’ai trouvé que les attributs rename et auto_rename de la directive #import sont très pratiques pour se débarrasser des avertissements et des erreurs possibles.
Pour plus de détails, veuillez consulter ceci.
Exemple C++
#include "stdafx.h"
#import "C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Drawing.tlb"
#import "C:\Windows\Microsoft.NET\Framework\v4.0.30319\mscorlib.tlb" auto_rename
#import "C:\Temp\Aspose.PDF.tlb" rename("GetType", "GetType_") auto_rename
using namespace System;
String ^earlyBinding(String ^file)
{
String ^text;
// Create ComHelper
Aspose_Pdf::_ComHelperPtr comHelperPtr;
HRESULT hr = comHelperPtr.CreateInstance(__uuidof(Aspose_Pdf::ComHelper));
if (FAILED(hr))
{
Console::WriteLine(L"Error occured");
}
else
{
// Set license
Aspose_Pdf::_LicensePtr licPtr;
licPtr.CreateInstance(__uuidof(Aspose_Pdf::License));
licPtr->SetLicense("C:\\Temp\\Aspose.PDF.lic");
licPtr.Release();
// Get Document
Aspose_Pdf::_DocumentPtr docPtr;
docPtr = comHelperPtr->OpenFile((BSTR)System::Runtime::InteropServices::Marshal::StringToBSTR(file).ToPointer());
comHelperPtr.Release();
// Create Absorber
Aspose_Pdf::_TextAbsorberPtr absorberPtr;
HRESULT hRes = absorberPtr.CreateInstance(__uuidof(Aspose_Pdf::TextAbsorber));
// Browse text
docPtr->GetPages()->Accept_4(absorberPtr);
// Retrieve text
BSTR extractedText = absorberPtr->GetText();
text = gcnew String(extractedText);
docPtr.Release();
absorberPtr.Release();
}
return text;
}
int main(array<System::String ^> ^args)
{
CoInitialize(NULL);
if (args->Length != 1)
{
Console::WriteLine("Missing parameters\nUsage:testCOM <pdf file>");
return 0;
}
String ^text = earlyBinding(args[0]);
CoUninitialize();
Console::WriteLine("Extracted text:");
Console::WriteLine("---\n{0}", text != nullptr ? text->Trim() : "<empty>");
Console::WriteLine("---");
return 0;
}
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.