Text

Text

Tato stránka se zabývá čtením textu zpět ze stránky na třech úrovních podrobnosti: prostý text, strukturované bloky rozvržení a jednotlivé umístěné glyfy. Pro zápis textu na stránku viz Core API and Core API.


Extrahování prostého textu

Page.GetText() vrací sestavený prostý text stránky v pořadí čtení. Je to nejjednodušší způsob, jak potvrdit, jaký text stránka skutečně obsahuje — například po zploštění pole nebo aplikaci redakce.

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

Strukturovaný text

Page.GetStructuredText() extrahuje umístěný text seskupený do řádků (podle základní čáry) a bloků podobných odstavcům (podle vertikální mezery a zarovnání levého okraje), vrací TextBlock[] — užitečné, když potřebujete rozvržení, nejen plochý řetězec.


Introspekce na úrovni glyfů

visitContent(doc, page, visitor) prochází proudy obsahu stránky — včetně Form XObjects — a volá odpovídající obslužnou rutinu na visitor pro každý glyph, obrázek nebo cestu, na kterou narazí. Obslužná rutina glyph přijímá GlyphEvent: text glyphu, jeho quad v zařízení, fontSize, color a pole původu jako mcid (její obklopující element označeného obsahu, pokud existuje) a artifact (pravda, když je vykresleno uvnitř rozsahu /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);

Tipy a osvědčené postupy

  • Použijte Page.GetText() pro rychlou kontrolu přítomnosti/absence; použijte visitContent() s glyph obslužnou rutinou, když potřebujete přesnou pozici, velikost písma nebo barvu každého glyphu.
  • Zkontrolujte GlyphEvent.artifact, abyste přeskočili dekorativní obsah (nábytek stránky, pozadí), který označený dokument označuje jako /Artifact místo skutečného obsahu.
  • GlyphEvent.mcid propojí glyf zpět k jeho obklopujícímu strukturálnímu prvku, když je dokument označen — kombinujte s Structure pro procházení od glyfu k jeho logickému prvku.
  • Page.GetStructuredText() seskupuje glyphy do bloků za vás; sáhněte po visitContent() přímo jen když potřebujete podrobnosti na úrovni jednotlivých glyphů, které GetStructuredText() neodhaluje.

Časté problémy

ProblémPříčinaOprava
Page.GetText() chybí text, který je viditelně na stránceText byl vykreslen jako vektorové cesty nebo obrázek místo skutečných glyph-show operátorůPoužijte visitContent() s path / image handlerem k potvrzení, jaký typ obsahu jej skutečně vykreslil
Handler glyph visitContent() se spouští pro dekorativní text na pozadíGlyphEvent.artifact nebyl zkontrolovánPřeskočte události, kde je e.artifact true
Extrahovaný text není ve vizuálním čtecím pořadíJednoduchá montáž GetText() neobnovuje rozložení do více sloupcůPoužijte Page.GetStructuredText(), který seskupuje text do bloků citlivých na rozvržení

FAQ

Jaký je rozdíl mezi GetText a GetStructuredText?

GetText() vrací jeden plochý řetězec sestaveného textu stránky. GetStructuredText() vrací TextBlock[] — text seskupený do řádků a bloků podobných odstavcům podle základní linky a rozvržení, užitečné, když záleží na poloze.

Jak získám přesnou pozici a velikost písma každého znaku?

Zavolejte visitContent(doc, page, { glyph: (e) => ... }). Každý GlyphEvent nese text glyfu, zařízení-prostor quad, fontSize, color a základní linku angle.

Mohu rozpoznat, zda je část textu skutečný obsah nebo dekorace?

Ano — GlyphEvent.artifact je true, když byl glyf vykreslen uvnitř /Artifact rozsahu označeného obsahu, stejný rozdíl používá Document.AutoTag() při rozhodování, co označit.

Vidí extrakce textu obsah uvnitř Form XObjects?

Ano — visitContent() vstupuje do Form XObjects jako součást svého procházení, takže glyfy vykreslené pomocí opakovaně použitého formuláře jsou stále navštěvovány.


API Reference Shrnutí

Třída/MetodaPopis:
Page.GetText()Sestavený prostý text stránky v pořadí čtení
Page.GetStructuredText()Text seskupený do řádků a bloků podobných odstavcům (TextBlock[])
visitContent()Procházejte obsah stránky a emitujte události znaků/obrázků/cest s původem
GlyphEventJeden umístěný znak: text, quad, fontSize, color, mcid, artifact

Viz také:

 Čeština