חילוץ טקסט

חילוץ טקסט

Aspose.PDF FOSS for .NET מספק כמה מנגנונים לחילוץ טקסט מ
דפי PDF. TextFragmentAbsorber הוא הכלי הראשי — הוא סורק את תוכן
העמוד ומחזיר אובייקטים מובנים של TextFragment עם מיקום, גופן, ו
מידע על סגנון.


חילוץ טקסט בסיסי

TextAbsorber מחלץ את כל הטקסט מדף או מסמך כמחרוזת יחידה.

using var doc = Document.Open(pdfBytes);

var absorber = new TextAbsorber();
doc.Pages[1].Accept(absorber);

string pageText = absorber.Text;

חילוץ קטעי טקסט

TextFragmentAbsorber מספק תוצאות מובנות. כל TextFragment כולל את הטקסט המופק, המיקום שלו בדף, ופרטי הגופן.

using var doc = Document.Open(pdfBytes);

var absorber = new TextFragmentAbsorber();
doc.Pages[1].Accept(absorber);

foreach (var fragment in absorber.TextFragments)
{
    Console.WriteLine($"Text: {fragment.Text}");
    Console.WriteLine($"Position: ({fragment.Position.XIndent}, {fragment.Position.YIndent})");
    Console.WriteLine($"Font: {fragment.TextState.Font.FontName}");
}

חיפוש עם ביטויים רגולריים

העבר תבנית regex ל-TextFragmentAbsorber כדי למצוא טקסט ספציפי.

var absorber = new TextFragmentAbsorber(@"\d{3}-\d{2}-\d{4}");
doc.Pages.Accept(absorber);  // Search all pages

foreach (var fragment in absorber.TextFragments)
{
    Console.WriteLine($"Found: {fragment.Text}");
}

קטעי טקסט

כל TextFragment עשוי להכיל מספר רב של עצמים TextSegment כאשר הטקסט מתפרס על ריצות גופנים שונות.

foreach (var fragment in absorber.TextFragments)
{
    foreach (var segment in fragment.Segments)
    {
        Console.WriteLine($"Segment: {segment.Text}, Font: {segment.TextState.Font.FontName}");
    }
}

ניהול גופנים

FontRepository מספקת שיטות למציאת וטעינת גופנים.

var font = FontRepository.FindFont("Helvetica");

בניית פסקאות טקסט

TextParagraph מאפשר בניית בלוקי טקסט מרובי שורות להוספה לעמוד.

var paragraph = new TextParagraph();
paragraph.AppendLine(new TextFragment("First line"));
paragraph.AppendLine(new TextFragment("Second line"));

טיפים ושיטות מומלצות

  • השתמש בTextFragmentAbsorber כאשר אתה צריך נתוני מיקום וגופן; השתמש בTextAbsorber לחילוץ טקסט פשוט.
  • קבל את הסופג בעמוד יחיד לתוצאות מהירות יותר, או בdoc.Pages כדי לחפש את כל המסמך.
  • חיפוש ביטוי רגולרי רגיש לאותיות גדולות/קטנות כברירת מחדל — השתמש בקידומת (?i) להתאמה שאינה רגישה לאותיות.
  • בדוק את TextState.Font.IsEmbedded כדי לקבוע האם גופן משובץ ב‑PDF.
  • עבור מסמכים גדולים, עבד עמודים אחד אחרי השני כדי לנהל את השימוש בזיכרון.

בעיות נפוצות

IssueCauseFix
הטקסט המופק מעוותPDF משתמש בקידוד לא סטנדרטי או במיפוי גופן CIDבדוק הטמעת גופנים; חלק מה‑PDFים הסרוקים דורשים OCR
לא נמצאו קטעי טקסטתוכן העמוד הוא תמונה, לא טקסטהשתמש בכלי OCR כדי להמיר תחילה דפי תמונה לטקסט
Regex מחזיר ללא התאמותהתבנית אינה מתחשבת ברווחים המוכנסים על‑ידי פריסת טקסט של PDFנרמל רווחים או השתמש בתבנית רפויה יותר
TextState.Font הוא nullמשאב הגופן חסר ב‑PDFטיפול בבדיקות null בעת בדיקת מאפייני הגופן

שאלות נפוצות

האם ניתן לחלץ טקסט מאזור ספציפי של דף?

כן. הגדר TextFragmentAbsorber.TextSearchOptions.Rectangle כדי להגביל את החיפוש לאזור ספציפי של העמוד.

האם חילוץ טקסט משמר סדר קריאה?

הספרייה מחזירה טקסט בסדר זרם‑התוכן. עבור פריסות מרובות עמודות, ייתכן שתצטרך למיין קטעים לפי מיקום.

האם אני יכול לחלץ טקסט מכל העמודים בבת אחת?

כן. קרא doc.Pages.Accept(absorber) כדי לחפש בכל דף במסמך.


API סיכום הפניות

מחלקה / שיטהתיאור
TextAbsorberמחלץ את כל הטקסט כמחרוזת יחידה
TextFragmentAbsorberמחלץ קטעי טקסט מובנים עם מיקום ונתוני גופן
TextFragmentרצף טקסט עם מיקום, מצב טקסט, וקטעים
TextFragment.Textמחרוזת הטקסט המוחצת
TextFragment.Positionקואורדינטות על העמוד
TextFragment.TextStateמידע על גופן, גודל וצבע
TextFragment.Segmentsתתי-רצפים בתוך הקטע
TextParagraphבונה לחסימות טקסט מרובות שורות
TextStateשם גופן, גודל, צבע ותכונות סגנון
FontRepositoryחיפוש וטעינת גופן סטטיים
FontRepository.FindFontמציאת גופן לפי שם

ראה גם

 עברית