Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Este es un simple ejemplo de código en C++ para extraer texto de archivos PDF utilizando COM Interop con enlace temprano. Antes de ejecutar el ejemplo, presta atención a que
// Cross-referenced type libraries:
y tiene uno o más #import. Simplemente cópialos en tu código antes de importar la biblioteca de tipos principal y hazlo en el mismo orden. Así evitarás el primer tipo de problema. El siguiente tipo de problema proviene del hecho de que el entorno de C++ tiene un gran número de macros, funciones predefinidas, etc., que pueden entrar en conflicto con los métodos de la biblioteca de tipos. Por ejemplo, GetType ya se ha utilizado ampliamente en C++, pero Aspose.PDF también lo tiene. Encontré que los atributos rename y auto_rename de la directiva #import son muy convenientes para deshacerse de posibles advertencias y errores.
Para más detalles, consulta este artículo.
Ejemplo en 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.