Text
Text
Bu sayfa, bir sayfadan metni geri okuma konusunda üç ayrıntı seviyesini kapsar: plain text, structured layout blocks ve individual positioned glyphs. Bir sayfaya metin yazma için bkz. Core API and Core API.
Düz Metni Çıkarma
Page.GetText(), sayfanın birleştirilmiş düz metnini okuma sırasına göre döndürür. Bir sayfanın gerçekte hangi metni içerdiğini doğrulamanın en basit yoludur — örneğin, bir alanı düzleştirdikten veya bir kırpma uyguladıktan sonra.
const page = doc.Pages[0];
console.log(page.GetText().includes('Internal memo'));Yapılandırılmış Metin
Page.GetStructuredText(), konumlandırılmış metni satırlara (taban çizgisine göre) ve paragraf benzeri bloklara (dikey boşluk ve sol kenar hizalamasına göre) gruplayarak çıkarır, TextBlock[] döndürür — sadece düz bir dize değil, yerleşim gerektiğinde faydalıdır.
Glif Düzeyi İçgörü
visitContent(doc, page, visitor), bir sayfanın içerik akışlarını — Form XObject’lere dahil — yürütür ve karşılaştığı her glif, görüntü veya yol için visitor üzerindeki eşleşen işleyiciyi çağırır. glyph işleyicisi bir GlyphEvent alır: glifin text, cihaz-uzayı quad, fontSize, color ve mcid (varsa kapsayan işaretli içerik öğesi) ve artifact (bir /Artifact kapsamı içinde çizildiğinde doğru) gibi kaynak alanları.
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);İpuçları ve En İyi Uygulamalar
Page.GetText()‘ı hızlı bir varlık/yokluk kontrolü için kullanın;visitContent()‘ı birglyphişleyicisiyle birlikte, her glifin tam konumuna, yazı tipi boyutuna veya rengine ihtiyacınız olduğunda kullanın.- Gerçek içerik yerine
/Artifactolarak işaretlenen süslü içeriği (sayfa mobilyaları, arka planlar) atlamak içinGlyphEvent.artifact‘ı kontrol edin. GlyphEvent.mcidbelge etiketlendiğinde bir glyph’i kapsayan yapı öğesine geri bağlar — birleştirerek Structure bir glyph’ten mantıksal öğesine yürümek için.Page.GetStructuredText(), glifleri sizin için bloklara gruplar; sadeceGetStructuredText()‘nin ortaya koymadığı glif başına ayrıntıya ihtiyaç duyduğunuzda doğrudanvisitContent()‘e başvurun.
Yaygın Sorunlar
| Sorun | Neden | Düzeltme |
|---|---|---|
Page.GetText() sayfada görünür metni eksik bırakıyor | Metin gerçek glif gösterme operatörleri yerine vektör yolları ya da bir görüntü olarak çizildi. | visitContent()‘ı bir path / image işleyicisiyle kullanarak, içeriğin hangi türünün gerçekten çizdiğini doğrulayın. |
visitContent()‘ın glyph işleyicisi dekoratif arka plan metni için tetiklenir. | GlyphEvent.artifact kontrol edilmedi. | e.artifact true olduğu durumlarda olayları atlayın. |
| Çıkarılan metin görsel okuma sırasının dışında. | Düz GetText() derlemesi çok sütunlu düzeni yeniden oluşturmaz. | Metni düzen farkındalıklı bloklara gruplayan Page.GetStructuredText()‘ı kullanın |
FAQ
GetText ile GetStructuredText arasındaki fark nedir?
GetText() sayfanın birleştirilmiş metninin tek bir düz dizesini döndürür. GetStructuredText() TextBlock[] döndürür — metin, temel çizgi ve yerleşime göre satır ve paragraf benzeri bloklar halinde gruplanır, konum önemli olduğunda faydalıdır.
Her karakterin tam konumunu ve yazı tipi boyutunu nasıl alabilirim?
visitContent(doc, page, { glyph: (e) => ... })‘ı çağırın. Her GlyphEvent, glifin text, cihaz uzayı quad, fontSize, color ve temel çizgi angle bilgilerini taşır.
Bir metin parçasının gerçek içerik mi yoksa dekorasyon mu olduğunu söyleyebilir miyim?
Evet — GlyphEvent.artifact, glif bir /Artifact işaretli içerik kapsamı içinde çizildiğinde true olur, aynı ayrım Document.AutoTag() tarafından neyi etiketleyeceğine karar verirken kullanılır.
Metin çıkarma, Form XObject’lerin içindeki içeriği görür mü?
Evet — visitContent(), gezinmesinin bir parçası olarak Form XObject’lere girer, böylece yeniden kullanılan bir form üzerinden çizilen glifler hâlâ ziyaret edilir.
API Reference Özeti
| Sınıf/Yöntem | Açıklama |
|---|---|
Page.GetText() | Sayfanın birleştirilmiş düz metni, okuma sırasına göre |
Page.GetStructuredText() | Metin, satırlar ve paragraf benzeri bloklar halinde gruplanır (TextBlock[]) |
visitContent() | Bir sayfanın içeriğinde dolaşarak, kaynak bilgisiyle glyph/görüntü/yol olayları yayar |
GlyphEvent | Bir konumlandırılmış glif: text, quad, fontSize, color, mcid, artifact |