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 |