לחילוץ טקסט ממסמכים (PDF, עיבוד תמלילים, דפי אינטרנט ועוד) יש מגוון מקרי שימוש בעולם המידע הדיגיטלי. לדוגמה, ניתן להשתמש בו לניתוח מסמכים, ביצוע ניתוח טקסט, אחזור מידע, אחסון תוכן מסמכים בבסיסי נתונים וכדומה. אם נצמצם אותו, PDF הוא אחד מפורמטי המסמכים הנפוצים ביותר לשמירה ושיתוף של מידע דיגיטלי. פופולריות זו הופכת מסמכי PDF למקור מידע עצום. לכן, ניתוח או חילוץ טקסט ממסמכי PDF עשויים להיות מעורבים במספר תרחישים של ניתוח טקסט.
על מנת להפוך את ניתוח ה-PDF לאוטומטי ביישומי C++, מאמר זה מדגים כיצד לחלץ טקסט ממסמכי PDF באמצעות C++. הוא מכסה את תרחישי חילוץ הטקסט הבאים:
- חלץ טקסט ממסמך PDF באמצעות C++.
- חלץ טקסט מדפים מסוימים במסמך PDF באמצעות C++.
- חילוץ טקסט עמוד אחר עמוד ממסמך PDF באמצעות C++.
C++ PDF Reader ו- Text Extractor Library
לחילוץ טקסט ממסמכי PDF, נשתמש ב-Aspose.PDF for C++ שהיא ספריית PDF רבת עוצמה ליצירה, המרה וניתוח של מסמכי PDF. אתה יכול להוריד את קבצי הספרייה כמו גם את דגימות הקוד הפועל מהסעיף הורדות.
חלץ טקסט מ-PDF באמצעות C++
Aspose.PDF עבור C++ מאפשר לך לנתח את מסמכי ה-PDF בכמה שלבים פשוטים. להלן המתכון לחילוץ טקסט ממסמך PDF.
- צור אובייקט מהמחלקה PdfExtractor.
- טען את מסמך ה-PDF באמצעות הפונקציה PdfExtractor->BindPdf().
- חלץ את הטקסט ממסמך PDF אל PdfExtractor באמצעות הפונקציה PdfExtractor->ExtractText().
- שמור את הטקסט שחולץ באובייקט MemoryStream.
- קרא את הטקסט כמחרוזת מ-MemoryStream.
דוגמת הקוד הבאה מראה כיצד לחלץ טקסט מ-PDF באמצעות C++.
auto extractor = MakeObject<Facades::PdfExtractor>();
// כריכת מסמך PDF מקור
extractor->BindPdf(u"candy.pdf");
// חלץ טקסט מ-PDF ל-PdfExtractor
extractor->ExtractText();
auto memStream = MakeObject<IO::MemoryStream>();
// שמור טקסט בזרם הזיכרון
extractor->GetText(memStream);
auto unicode = System::Text::Encoding::get_Unicode();
String allText = unicode->GetString(memStream->ToArray());
// הדפס טקסט שחולץ
Console::WriteLine(u"Extracted text:");
Console::WriteLine(allText);
חלץ טקסט מדפים מסוימים ב-PDF באמצעות C++
יכול להיות מקרה שבו אתה צריך לחלץ טקסט מכמה עמודים של PDF בלבד. במקרה כזה, אתה יכול לציין טווח של הדפים ב-PDF על ידי הגדרת מספרי עמודים התחלה וסיום. להלן השלבים לחילוץ טקסט מדפים מסוימים במסמך PDF.
- צור אובייקט מהמחלקה PdfExtractor.
- טען את מסמך ה-PDF באמצעות הפונקציה PdfExtractor->BindPdf().
- הגדר את מספר עמוד ההתחלה והסיום באמצעות הפונקציות PdfExtractor->setStartPage() ו-PdfExtractor->setEndPage() בהתאמה.
- חלץ את הטקסט מ-PDF באמצעות הפונקציה PdfExtractor->ExtractText().
- שמור את הטקסט שחולץ באובייקט MemoryStream.
- קרא את הטקסט כמחרוזת מ-MemoryStream.
דוגמת הקוד הבאה מראה כיצד לחלץ טקסט מדפים מסוימים של PDF ב-C++.
auto extractor = MakeObject<Facades::PdfExtractor>();
// כריכת מסמך PDF מקור
extractor->BindPdf(u"candy.pdf");
// הגדר טווח דפים
extractor->set_StartPage(2);
extractor->set_EndPage(2);
// חלץ טקסט מ-PDF ל-PdfExtractor
extractor->ExtractText();
auto memStream = MakeObject<IO::MemoryStream>();
// שמור טקסט בזרם הזיכרון
extractor->GetText(memStream);
auto unicode = System::Text::Encoding::get_Unicode();
String allText = unicode->GetString(memStream->ToArray());
// הדפס טקסט שחולץ
Console::WriteLine(u"Extracted text:");
Console::WriteLine(allText);
חלץ טקסט עמוד אחר עמוד מ-PDF ב-C++
במקום לחלץ את כל הטקסט ממסמך PDF, ניתן לחלץ טקסט מכל עמוד במסמך בנפרד. להלן השלבים לביצוע חילוץ טקסט דף אחר עמוד מ-PDF.
- צור אובייקט מהמחלקה PdfExtractor.
- טען את מסמך ה-PDF באמצעות הפונקציה PdfExtractor->BindPdf().
- התקשר לפונקציה PdfExtractor->ExtractText() כדי לאחזר טקסט ממסמך PDF ל-PdfExtractor.
- עברו בלולאה בכל עמוד באמצעות הפונקציה PdfExtractor->HasNextPageText().
- חלץ טקסט לזרם הזיכרון באמצעות הפונקציה PdfExtractor->GetNextPageText().
- קרא טקסט מזרם הזיכרון.
דוגמת הקוד הבאה מראה כיצד לחלץ טקסט עמוד אחר עמוד מ-PDF ב-C++.
auto extractor = MakeObject<Facades::PdfExtractor>();
// כריכת מסמך PDF מקור
extractor->BindPdf(u"candy.pdf");
// חלץ טקסט מ-PDF ל-PdfExtractor
extractor->ExtractText();
auto unicode = System::Text::Encoding::get_Unicode();
int pageNumber = 1;
while (extractor->HasNextPageText())
{
auto memStream = MakeObject<IO::MemoryStream>();
extractor->GetNextPageText(memStream);
String text;
// ציין את סוג הקידוד של Unicode בבנאי StreamReader
auto streamReader = MakeObject<StreamReader>(memStream, unicode);
streamReader->get_BaseStream()->Seek(0, SeekOrigin::Begin);
text = streamReader->ReadToEnd();
streamReader->Dispose();
// הדפס טקסט שחולץ
std::cout << "Page: " << pageNumber << "\n";
Console::Write(text);
std::cout << "\n------------------------\n";
pageNumber++;
}
למידע נוסף על Aspose.PDF עבור C++
אתה יכול לחקור יותר על Aspose.PDF עבור C++ באמצעות תיעוד.