Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Ini adalah contoh kode C++ sederhana untuk mengekstrak teks dari file PDF menggunakan COM Interop dengan binding awal. Sebelum menjalankan contoh, perhatikan bahwa
// Cross-referenced type libraries:
dan memiliki satu atau lebih #import. Cukup salin mereka ke dalam kode Anda sebelum mengimpor pustaka tipe utama dan lakukan dalam urutan yang sama. Dengan demikian Anda akan mengatasi jenis masalah pertama. Jenis masalah berikutnya berasal dari fakta bahwa lingkungan C++ memiliki banyak makro, fungsi yang telah ditentukan, dll., yang dapat bertentangan dengan metode pustaka tipe. Misalnya, GetType sudah banyak digunakan di C++ tetapi juga ada di Aspose.PDF. Saya menemukan atribut rename dan auto_rename dari direktif #import sangat berguna untuk menghindari kemungkinan peringatan dan kesalahan.
Untuk detail lebih lanjut silakan lihat ini pos.
Contoh 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.