Text

Text

Ez az oldal a szöveg visszaolvasását tárgyalja egy oldalról három részletességi szinten: egyszerű szöveg, strukturált elrendezési blokkok és egyedi pozicionált glyph-ek. A szöveg írásához egy oldalra lásd Core API and Core API.


Egyszerű szöveg kinyerése

Page.GetText() visszaadja az oldal összeállított egyszerű szövegét olvasási sorrendben. Ez a legegyszerűbb módja annak, hogy megerősítsük, milyen szöveg található valójában az oldalon — például egy mező laposítását vagy egy redakció alkalmazását követően.

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

Strukturált szöveg

Page.GetStructuredText() kinyeri az elhelyezett szöveget, sorokba (alapvonal szerint) és bekezdés-szerű blokkokba (függőleges hézag és baloldali igazítás alapján) csoportosítva, és TextBlock[]-t ad vissza — hasznos, ha elrendezésre van szükség, nem csak egy egyszerű karakterláncra.


Glif-szintű introspekció

visitContent(doc, page, visitor) bejárja egy oldal tartalom-áramait — beleértve a Form XObject-eket is — és minden megtalált glif, kép vagy útvonal esetén meghívja a megfelelő kezelőt a visitor számára. A glyph kezelő egy GlyphEvent-t kap: a glif text-ját, annak eszköz-térbeli quad-ét, fontSize-t, color-t, valamint a származási mezőket, mint például a mcid (a körülötte lévő jelölt tartalom elem, ha van) és a artifact (igaz, ha egy /Artifact környezeten belül rajzolt).

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);

Tippek és bevált gyakorlatok

  • Használja a Page.GetText()-t egy gyors jelenlét/hiány ellenőrzéshez; használja a visitContent()-t egy glyph kezelővel, amikor minden glif pontos pozíciójára, betűméretére vagy színére van szükség.
  • Ellenőrizze a GlyphEvent.artifact-t, hogy kihagyja a díszítő tartalmakat (oldalkellékek, háttérképek), amelyeket egy címkézett dokumentum /Artifact-ként jelöl, a valódi tartalom helyett.
  • GlyphEvent.mcid visszahivatkozik egy glyphet a körülötte lévő struktúraelemre, amikor a dokumentum címkézett — kombináld a Structure a glyphből a logikai eleméig való navigáláshoz.
  • A Page.GetStructuredText() glifeket blokkokba csoportosít Önnek; csak akkor nyúljon közvetlenül a visitContent()-hez, ha olyan glifenkénti részletekre van szüksége, amelyeket a GetStructuredText() nem tesz elérhetővé.

Gyakori problémák

ProblémaOkJavítás
Page.GetText() hiányzik a szöveg, amely látható az oldalonA szöveget vektorúton vagy képként rajzolták, nem valós glyph-show operátorokkalHasználja a visitContent() egy path / image kezelővel, hogy megerősítse, melyik tartalomtípus rajzolta ténylegesen
visitContent() glyph kezelője dekoratív háttérszöveg esetén aktiválódikGlyphEvent.artifact nem lett ellenőrizveHagyja ki az eseményeket, ahol a e.artifact true
A kinyert szöveg nincs a vizuális olvasási sorrendbenA tiszta GetText() összeállítás nem állítja helyre a többoszlopos elrendezéstHasználd a Page.GetStructuredText() elemet, amely a szöveget elrendezés-tudatos blokkokba csoportosítja

FAQ

Mi a különbség a GetText és a GetStructuredText között?

GetText() egy lap összesített szövegének egy lapos karakterláncát adja vissza. GetStructuredText() TextBlock[] — a szöveg sorokba és bekezdés-szerű blokkokba csoportosítva, alapvonal és elrendezés szerint, hasznos, ha a pozíció számít.

Hogyan tudom lekérni az egyes karakterek pontos pozícióját és betűméretét?

Hívja a visitContent(doc, page, { glyph: (e) => ... }). Minden GlyphEvent tartalmazza a glif text-ját, az eszköz-terület quad-t, fontSize-t, color-t és az alapvonal angle-t.

Meg tudom állapítani, hogy egy szövegrész valós tartalom vagy díszítés?

Igen — GlyphEvent.artifact true, ha a glif egy /Artifact jelölt-tartalom hatókörén belül lett rajzolva, ugyanaz a megkülönböztetés, amit a Document.AutoTag() használ a címkézés eldöntésekor.

A szövegkinyerés látja a Form XObject-ek belsejében lévő tartalmat?

Igen — a visitContent() belép a Form XObject-ekbe a bejárás részeként, így a újrahasznált űrlapon keresztül rajzolt glifek továbbra is felkerülnek.


API Reference Összefoglaló

Osztály/MódszerLeírás
Page.GetText()Az oldal összegyűjtött egyszerű szövege, olvasási sorrendben
Page.GetStructuredText()Szöveg, amely sorokba és bekezdés-szerű blokkokba van csoportosítva (TextBlock[])
visitContent()Bejárja egy oldal tartalmát, és eredetiséggel ellátott glyph/kép/útvonal eseményeket bocsát ki
GlyphEventEgy pozícionált glif: text, quad, fontSize, color, mcid, artifact

Lásd még:

 Magyar