Text

Text

דף זה מתאר קריאת טקסט חזרה מדף, בשלושה רמות פירוט: טקסט רגיל, בלוקי פריסה מובנים, וגליפים ממוקמים באופן אישי. לכתיבת טקסט על דף, ראה Core API and Core API.


חילוץ טקסט פשוט

Page.GetText() מחזיר את הטקסט הפשוט המורכב של הדף, בסדר קריאה. זהו הדרך הפשוטה ביותר לאשר איזה טקסט הדף מכיל בפועל — למשל, לאחר השטחת שדה או יישום עריכה.

const page = doc.Pages[0];
console.log(page.GetText().includes('Internal memo'));

טקסט מובנה

Page.GetStructuredText() מחלץ טקסט ממוקם המוּקָבָּק לשורות (לפי קו בסיס) ולחסימות דמויות פסקה (לפי רווח אנכי ויישור לקצה השמאלי), ומחזיר TextBlock[] — שימושי כאשר אתה זקוק לפריסה, ולא רק למחרוזת שטוחה.


אינטראקציה ברמת גליף

visitContent(doc, page, visitor) עובר על זרמי התוכן של העמוד — כולל לתוך Form XObjects — וקורא למטפל המתאים ב-visitor עבור כל גליף, תמונה או נתיב שהוא נתקל בו. המטפל ב-glyph מקבל GlyphEvent: ה-text של הגליף, ה-quad שלו במרחב המכשיר, fontSize, color, ושדות מקור כגון mcid (אלמנט ה-marked-content המכול אותו, אם קיים) ו-artifact (true כאשר מצויר בתוך תחום /Artifact).

import { visitContent } from '@asposefoss/pdf';

let glyphCount = 0;
visitContent(doc, page, {
  glyph: (e) => {
    glyphCount++;
    if (e.artifact) return;       // skip decorative content
    console.log(e.text, e.quad, e.color);
  },
});
console.log('glyphs drawn:', glyphCount);

טיפים ושיטות עבודה מומלצות

  • השתמש ב-Page.GetText() לבדיקת נוכחות/היעדרות מהירה; השתמש ב-visitContent() עם מטפל glyph כאשר אתה צריך את המיקום המדויק, גודל הגופן או הצבע של כל גליף.
  • בדוק את GlyphEvent.artifact כדי לדלג על תוכן קישוטי (ריהוט העמוד, רקעים) שהמסמך המתויג מסמן כ-/Artifact במקום תוכן אמיתי.
  • GlyphEvent.mcid מקשר גליף חזרה אל רכיב המבנה המקיף שלו כאשר המסמך מתויג — שלבו עם Structure כדי ללכת מגליף אל הרכיב הלוגי שלו.
  • Page.GetStructuredText() מקבץ גליפים לחסימות עבורך; השתמש ב-visitContent() באופן ישיר רק כאשר אתה צריך פרטים לכל גליף ש-GetStructuredText() אינו חושף.

בעיות נפוצות

בעיהסיבהתיקון
Page.GetText() חסר טקסט שמופיע באופן גלוי על הדףהטקסט נצייר כנתיבי וקטור או כתמונה במקום כמפעילי הצגת גליף אמיתייםהשתמש ב-visitContent() עם מטפל path / image כדי לאשר איזה סוג תוכן בעצם יצר אותו
המטפל glyph של visitContent() מופעל עבור טקסט רקע דקורטיביGlyphEvent.artifact לא נבדקדלג על אירועים שבהם e.artifact הוא true
הטקסט שהוצא אינו בסדר קריאה חזותיהרכבה פשוטה של GetText() אינה משחזרת פריסת רב-עמודותהשתמש ב-Page.GetStructuredText(), אשר מקבץ טקסט לחסימות מודעות לפריסה

FAQ

מה ההבדל בין GetText ל-GetStructuredText?

GetText() מחזיר מחרוזת שטוחה אחת של הטקסט המורכב של העמוד. GetStructuredText() מחזיר TextBlock[] — טקסט שמקובץ לשורות ולחסימות דמויות פסקאות לפי קו בסיס ועימוד, שימושי כאשר המיקום חשוב.

איך אוכל לקבל את המיקום המדויק ואת גודל הגופן של כל תו?

הפעל את visitContent(doc, page, { glyph: (e) => ... }). כל GlyphEvent נושא את text של הגליף, quad במרחב המכשיר, fontSize, color, וקו הבסיס angle.

האם אוכל לדעת אם קטע טקסט הוא תוכן אמיתי או קישוט?

כן — GlyphEvent.artifact הוא true כאשר הגליף נצייר בתוך תחום תוכן מסומן /Artifact, אותה הבחנה שבה Document.AutoTag() משתמש כשמחליטים מה לתייג.

האם חילוץ טקסט רואה תוכן בתוך Form XObjects?

כן — visitContent() נכנס ל-Form XObjects כחלק מהמעבר שלו, ולכן גליפים שנציירו דרך טופס משוחזר עדיין נבדקים.


API Reference סיכום

מחלקה/מתודהתיאור
Page.GetText()הטקסט הפשוט המורכב של העמוד, בסדר הקריאה
Page.GetStructuredText()טקסט מקובץ לשורות ולחסימות בדמות פסקאות (TextBlock[])
visitContent()הולך בתוכן של העמוד, משגר אירועי גליף/תמונה/נתיב עם מקור
GlyphEventגופן ממוקם אחד: text, quad, fontSize, color, mcid, artifact

ראה גם

 עברית