Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
هذه عينة بسيطة من كود C++ لاستخراج النص من ملفات PDF باستخدام COM Interop مع الربط المبكر. قبل تشغيل العينة، انتبه إلى أن
// Cross-referenced type libraries:
ويحتوي على واحد أو أكثر من #import. فقط انسخها إلى كودك قبل استيراد مكتبة الأنواع الرئيسية وقم بذلك بنفس الترتيب. وبالتالي ستتجنب النوع الأول من المشكلة. النوع التالي من المشكلة يأتي من حقيقة أن بيئة C++ تحتوي على عدد كبير من الماكرو، الدوال المعرفة مسبقًا، إلخ، والتي يمكن أن تتعارض مع طرق مكتبة الأنواع. على سبيل المثال، تم استخدام GetType على نطاق واسع في C++ ولكن أيضًا Aspose.PDF لديها ذلك. وجدت أن سمات rename و auto_rename في توجيه #import مريحة جدًا للتخلص من التحذيرات والأخطاء المحتملة.
للحصول على التفاصيل، يرجى الاطلاع على هذا المنشور.
مثال 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.