Text

Text

Halaman ini membahas membaca teks kembali dari sebuah halaman, pada tiga tingkat detail: teks biasa, blok tata letak terstruktur, dan glif yang diposisikan secara individual. Untuk menulis teks ke halaman, lihat Core API and Core API.


Mengekstrak Teks Biasa

Page.GetText() mengembalikan teks biasa yang telah dirakit dari halaman, dalam urutan baca. Ini adalah cara paling sederhana untuk memastikan teks apa yang sebenarnya terdapat pada halaman — misalnya, setelah meratakan sebuah bidang atau menerapkan redaction.

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

Teks Terstruktur

Page.GetStructuredText() mengekstrak teks yang diposisikan yang dikelompokkan menjadi baris (berdasarkan garis dasar) dan blok mirip paragraf (berdasarkan celah vertikal dan penyelarasan tepi kiri), mengembalikan TextBlock[] — berguna ketika Anda memerlukan tata letak, bukan sekadar string datar.


Introspeksi Tingkat Glif

visitContent(doc, page, visitor) menelusuri aliran konten halaman — termasuk ke Form XObjects — dan memanggil penangan yang cocok pada visitor untuk setiap glif, gambar, atau jalur yang ditemuinya. Penangan glyph menerima sebuah GlyphEvent: text glif, quad ruang-perangkatnya, fontSize, color, dan bidang provenance seperti mcid (elemen konten-bertanda yang membungkusnya, jika ada) dan artifact (benar ketika digambar di dalam ruang lingkup /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);

Tips dan Praktik Terbaik

  • Gunakan Page.GetText() untuk pemeriksaan cepat ada/tidak ada; gunakan visitContent() dengan penangan glyph ketika Anda memerlukan posisi tepat setiap glif, ukuran font, atau warna.
  • Periksa GlyphEvent.artifact untuk melewatkan konten dekoratif (furnitur halaman, latar belakang) yang ditandai dokumen ber-tag sebagai /Artifact bukan konten nyata.
  • GlyphEvent.mcid menautkan sebuah glif kembali ke elemen struktur yang membungkusnya ketika dokumen ditandai — gabungkan dengan Structure untuk menelusuri dari sebuah glif ke elemen logisnya.
  • Page.GetStructuredText() mengelompokkan glif menjadi blok untuk Anda; gunakan visitContent() secara langsung hanya ketika Anda membutuhkan detail per-glif yang tidak diungkapkan oleh GetStructuredText().

Masalah Umum

MasalahPenyebabPerbaikan
Page.GetText() tidak memiliki teks yang terlihat di halamanTeks digambar sebagai jalur vektor atau gambar alih-alih operator penampilan glif yang sebenarnyaGunakan visitContent() dengan handler path / image untuk mengonfirmasi jenis konten apa yang sebenarnya menggambarnya
Handler glyph milik visitContent() dipicu untuk teks latar belakang dekoratifGlyphEvent.artifact tidak diperiksaLewati peristiwa di mana e.artifact adalah true
Teks yang diekstrak berada di luar urutan bacaan visualPerakitan GetText() biasa tidak merekonstruksi tata letak multi-kolomGunakan Page.GetStructuredText(), yang mengelompokkan teks menjadi blok yang sadar tata letak

FAQ

Apa perbedaan antara GetText dan GetStructuredText?

GetText() mengembalikan satu string datar dari teks yang dirakit pada halaman. GetStructuredText() mengembalikan TextBlock[] — teks yang dikelompokkan menjadi baris dan blok mirip paragraf berdasarkan baseline dan tata letak, berguna ketika posisi penting.

Bagaimana cara saya mendapatkan posisi tepat dan ukuran font setiap karakter?

Panggil visitContent(doc, page, { glyph: (e) => ... }). Setiap GlyphEvent membawa text glyph, quad ruang-perangkat, fontSize, color, dan baseline angle.

Bisakah saya mengetahui apakah sepotong teks adalah konten sebenarnya atau dekorasi?

Ya — GlyphEvent.artifact adalah true ketika glyph digambar di dalam ruang lingkup konten yang ditandai /Artifact, perbedaan yang sama yang digunakan Document.AutoTag() saat memutuskan apa yang akan ditandai.

Apakah ekstraksi teks melihat konten di dalam Form XObjects?

Ya — visitContent() masuk ke Form XObjects sebagai bagian dari penjelajahannya, sehingga glyph yang digambar melalui formulir yang dipakai kembali tetap dikunjungi.


Ringkasan API Reference

Kelas/MetodeDeskripsi
Page.GetText()Teks polos halaman yang telah dirakit, dalam urutan baca
Page.GetStructuredText()Teks yang dikelompokkan menjadi baris dan blok mirip paragraf (TextBlock[])
visitContent()Jelajahi konten halaman, memancarkan peristiwa glyph/gambar/jalur dengan asal-usul
GlyphEventSatu glyph yang diposisikan: text, quad, fontSize, color, mcid, artifact

Lihat Juga

 Bahasa Indonesia