Text

Text

Ta strona opisuje odczytywanie tekstu z dokumentu na trzech poziomach szczegółowości: tekst zwykły, strukturalne bloki układu oraz pojedyncze, pozycjonowane glify. Aby zapisać tekst na stronie, zobacz Core API and Core API.


Wyodrębnianie tekstu zwykłego

Page.GetText() zwraca złożony tekst zwykły strony, w kolejności czytania. Jest to najprostszy sposób, aby potwierdzić, jaki tekst faktycznie znajduje się na stronie — na przykład po spłaszczeniu pola lub zastosowaniu redakcji.

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

Tekst strukturalny

Page.GetStructuredText() wyodrębnia pozycjonowany tekst pogrupowany w linie (według linii bazowej) oraz bloki przypominające paragrafy (według pionowej przerwy i wyrównania do lewej krawędzi), zwracając TextBlock[] — przydatne, gdy potrzebny jest układ, a nie tylko płaski ciąg znaków.


Introspekcja na poziomie glifów

visitContent(doc, page, visitor) przegląda strumienie zawartości strony — w tym w Form XObjects — i wywołuje odpowiedni handler na visitor dla każdego napotkanego glifu, obrazu lub ścieżki. Handler glyph otrzymuje GlyphEvent: text glifu, jego quad w przestrzeni urządzenia, fontSize, color oraz pola pochodzenia takie jak mcid (jego otaczający element oznaczonej treści, jeśli istnieje) i artifact (prawda, gdy rysowany jest wewnątrz zakresu /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);

Wskazówki i najlepsze praktyki

  • Użyj Page.GetText() do szybkiego sprawdzenia obecności/nieobecności; użyj visitContent() z handlerem glyph, gdy potrzebujesz dokładnej pozycji, rozmiaru czcionki lub koloru każdego glifu.
  • Sprawdź GlyphEvent.artifact, aby pominąć zawartość dekoracyjną (meble strony, tła), którą dokument oznaczony znacznikami oznacza jako /Artifact zamiast rzeczywistej treści.
  • GlyphEvent.mcid łączy glif z jego otaczającym elementem struktury, gdy dokument jest otagowany — połącz z Structure aby przejść od glifu do jego logicznego elementu.
  • Page.GetStructuredText() grupuje glify w bloki za Ciebie; sięgnij po visitContent() bezpośrednio tylko wtedy, gdy potrzebujesz szczegółów per-glif, których GetStructuredText() nie udostępnia.

Typowe problemy

ProblemPrzyczynaRozwiązanie
Page.GetText() brakuje tekstu, który jest widoczny na stronieTekst został narysowany jako ścieżki wektorowe lub obraz, zamiast rzeczywistych operatorów wyświetlania glifówUżyj visitContent() z obsługą path / image, aby potwierdzić, jaki typ treści faktycznie go narysował
Obsługa glyph w visitContent() uruchamia się dla dekoracyjnego tekstu tłaGlyphEvent.artifact nie został sprawdzonyPomiń zdarzenia, w których e.artifact jest true
Wyodrębniony tekst jest poza wizualną kolejnością czytaniaProste składanie GetText() nie odtwarza układu wielokolumnowegoUżyj Page.GetStructuredText(), który grupuje tekst w bloki uwzględniające układ

FAQ

Jaka jest różnica między GetText a GetStructuredText?

GetText() zwraca jeden płaski ciąg złożonego tekstu strony. GetStructuredText() zwraca TextBlock[] — tekst pogrupowany w linie i bloki przypominające akapity według linii bazowej i układu, przydatny, gdy ma znaczenie pozycja.

Jak uzyskać dokładną pozycję i rozmiar czcionki każdego znaku?

Wywołaj visitContent(doc, page, { glyph: (e) => ... }). Każdy GlyphEvent zawiera text glifu, quad w przestrzeni urządzenia, fontSize, color i angle linii bazowej.

Czy mogę określić, czy fragment tekstu jest prawdziwą treścią czy dekoracją?

Tak — GlyphEvent.artifact jest true, gdy glif został narysowany wewnątrz zakresu oznaczonej treści /Artifact, taką samą rozróżnialność stosuje Document.AutoTag() przy decydowaniu, co oznaczyć.

Czy ekstrakcja tekstu widzi zawartość wewnątrz Form XObjects?

Tak — visitContent() wchodzi do Form XObjects w ramach swojego przeglądania, więc glify narysowane przy użyciu ponownie używanego formularza są nadal odwiedzane.


API Reference Podsumowanie

Klasa/MetodaOpis
Page.GetText()Złożony tekst zwykły strony, w kolejności czytania
Page.GetStructuredText()Tekst pogrupowany w linie i bloki przypominające akapity (TextBlock[])
visitContent()Przejdź po zawartości strony, emitując zdarzenia glifów/obrazów/ścieżek wraz z pochodzeniem
GlyphEventJeden pozycjonowany glif: text, quad, fontSize, color, mcid, artifact

Zobacz także

 Polski