Text

Text

این صفحه به خواندن متن از یک صفحه در سه سطح جزئیات می‌پردازد: متن ساده، بلاک‌های چیدمان ساختاری، و گلیف‌های موقعیت‌یافتهٔ فردی. برای نوشتن متن روی صفحه، ببینید هسته API and هسته 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 (عنصری که محتوا را علامت‌گذاری کرده و آن را دربر می‌گیرد، در صورت وجود) و artifact (درست وقتی که داخل یک حوزه /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() گلیف‌ها را برای شما به بلوک‌ها گروه‌بندی می‌کند؛ فقط زمانی که به جزئیات هر گلیف نیاز دارید که GetStructuredText() ارائه نمی‌دهد، مستقیماً از visitContent() استفاده کنید.

مشکلات رایج

مسئلهدلیلرفع
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 زمانی که گلیف داخل یک /Artifact کشیده شده باشد، true است، همان تمایزی که Document.AutoTag() هنگام تصمیم‌گیری برای برچسب‌گذاری استفاده می‌کند.

آیا استخراج متن محتوا داخل Form XObjects را می‌بیند؟

بله — visitContent() به عنوان بخشی از پیمایش خود وارد Form XObjects می‌شود، بنابراین گلیف‌های کشیده‌شده از طریق یک فرم استفاده-مجدد هنوز مورد بازدید قرار می‌گیرند.


API Reference خلاصه

کلاس/متدتوضیح
Page.GetText()متن سادهٔ سرهم‌کردهٔ صفحه، به ترتیب خواندن
Page.GetStructuredText()متن گروه‌بندی‌شده به خطوط و بلوک‌های شبیه پاراگراف (TextBlock[])
visitContent()محتویات یک صفحه را پیمایش کنید و رویدادهای قلم/تصویر/مسیر را همراه با منشاء صادر کنید
GlyphEventیک قلم موقعیت‌یافته: text, quad, fontSize, color, mcid, artifact

همچنین ببینید:

 فارسی