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; gunakanvisitContent()dengan penanganglyphketika Anda memerlukan posisi tepat setiap glif, ukuran font, atau warna. - Periksa
GlyphEvent.artifactuntuk melewatkan konten dekoratif (furnitur halaman, latar belakang) yang ditandai dokumen ber-tag sebagai/Artifactbukan konten nyata. GlyphEvent.mcidmenautkan 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; gunakanvisitContent()secara langsung hanya ketika Anda membutuhkan detail per-glif yang tidak diungkapkan olehGetStructuredText().
Masalah Umum
| Masalah | Penyebab | Perbaikan |
|---|---|---|
Page.GetText() tidak memiliki teks yang terlihat di halaman | Teks digambar sebagai jalur vektor atau gambar alih-alih operator penampilan glif yang sebenarnya | Gunakan visitContent() dengan handler path / image untuk mengonfirmasi jenis konten apa yang sebenarnya menggambarnya |
Handler glyph milik visitContent() dipicu untuk teks latar belakang dekoratif | GlyphEvent.artifact tidak diperiksa | Lewati peristiwa di mana e.artifact adalah true |
| Teks yang diekstrak berada di luar urutan bacaan visual | Perakitan GetText() biasa tidak merekonstruksi tata letak multi-kolom | Gunakan 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/Metode | Deskripsi |
|---|---|
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 |
GlyphEvent | Satu glyph yang diposisikan: text, quad, fontSize, color, mcid, artifact |