Text
Text
यह पृष्ठ पेज से पाठ को पुनः पढ़ने को कवर करता है, तीन विवरण स्तरों पर: साधारण पाठ, संरचित लेआउट ब्लॉक्स, और व्यक्तिगत स्थित ग्लिफ़। पेज पर पाठ लिखने के लिए, देखें Core API and Core API.
साधारण पाठ निकालना
Page.GetText() पृष्ठ के संकलित साधारण पाठ को पढ़ने के क्रम में लौटाता है। यह यह पुष्टि करने का सबसे सरल तरीका है कि पृष्ठ में वास्तव में कौन सा पाठ है — उदाहरण के तौर पर, फ़ील्ड को फ्लैटन करने या रेडैक्शन लागू करने के बाद।
const page = doc.Pages[0];
console.log(page.GetText().includes('Internal memo'));संरचित पाठ
Page.GetStructuredText() स्थित पाठ को रेखाओं (बेसलाइन के आधार पर) और पैराग्राफ-समान ब्लॉकों (वर्टिकल गेप और बाएँ किनारे की संरेखण से) में समूहित करके निकालता है, और TextBlock[] लौटाता है — जब आपको लेआउट चाहिए हो, न कि केवल एक सपाट स्ट्रिंग, तब यह उपयोगी होता है।
ग्लिफ़-स्तर का अंतर्दर्शन
visitContent(doc, page, visitor) पृष्ठ की कंटेंट स्ट्रीम्स — जिसमें Form XObjects भी शामिल हैं — को ट्रैवर्स करता है और visitor पर प्रत्येक glyph, image, या path मिलने पर मिलते-जुलते हैंडलर को कॉल करता है। glyph हैंडलर एक GlyphEvent प्राप्त करता है: glyph का text, उसका डिवाइस-स्पेस quad, fontSize, color, और provenance फ़ील्ड्स जैसे mcid (यदि कोई हो तो उसका enclosing marked-content element) और artifact (सही जब यह /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);टिप्स और सर्वोत्तम प्रथाएँ
- त्वरित उपस्थिति/अनुपस्थिति जांच के लिए
Page.GetText()का उपयोग करें; जब आपको प्रत्येक glyph की सटीक स्थिति, फ़ॉन्ट आकार, या रंग चाहिए तोvisitContent()कोglyphहैंडलर के साथ उपयोग करें। - डेकोरेटिव कंटेंट (पेज फर्नीचर, बैकग्राउंड) को छोड़ने के लिए
GlyphEvent.artifactजाँचें, जिसे टैग किया गया दस्तावेज़ वास्तविक कंटेंट के बजाय/Artifactके रूप में चिह्नित करता है। GlyphEvent.mcidडॉक्यूमेंट टैग किए जाने पर एक ग्लिफ़ को उसके संलग्न संरचना तत्व से वापस लिंक करता है — इसे साथ मिलाएँ Structure एक ग्लिफ़ से उसके तार्किक तत्व तक पहुँचने के लिए।Page.GetStructuredText()आपके लिए glyphs को ब्लॉक्स में समूहित करता है; केवल तब सीधेvisitContent()का उपयोग करें जब आपको प्रति-glyph विवरण चाहिए जोGetStructuredText()प्रकट नहीं करता।
सामान्य समस्याएँ
| समस्या | कारण | समाधान |
|---|---|---|
Page.GetText() पेज पर स्पष्ट रूप से दिखाई देने वाला टेक्स्ट नहीं है | टेक्स्ट को वास्तविक ग्लिफ़-शो ऑपरेटरों की बजाय वेक्टर पाथ्स या छवि के रूप में खींचा गया था | visitContent() को path / image हैंडलर के साथ उपयोग करें ताकि यह पुष्टि की जा सके कि वास्तव में कौन सा कंटेंट टाइप इसे खींचा था |
visitContent() का glyph हैंडलर सजावटी बैकग्राउंड टेक्स्ट के लिए ट्रिगर होता है | GlyphEvent.artifact की जाँच नहीं की गई थी | उन घटनाओं को छोड़ें जहाँ e.artifact true है |
| निकाला गया टेक्स्ट दृश्य पढ़ने के क्रम से बाहर है | साधारण GetText() असेंबली मल्टी-कलम लेआउट को पुनः निर्मित नहीं करती | Page.GetStructuredText() का उपयोग करें, जो पाठ को लेआउट-सेजग ब्लॉकों में समूहित करता है |
FAQ
GetText और GetStructuredText के बीच क्या अंतर है?
GetText() पृष्ठ के संकलित पाठ की एक सपाट स्ट्रिंग लौटाता है। GetStructuredText() TextBlock[] लौटाता है — पाठ को बेसलाइन और लेआउट के आधार पर पंक्तियों और पैराग्राफ-समान ब्लॉकों में समूहित करता है, जब स्थिति महत्वपूर्ण हो तो उपयोगी।
मैं प्रत्येक अक्षर की सटीक स्थिति और फ़ॉन्ट आकार कैसे प्राप्त करूँ?
visitContent(doc, page, { glyph: (e) => ... }) को कॉल करें। प्रत्येक GlyphEvent में glyph का text, device-space quad, fontSize, color, और baseline angle शामिल होता है।
क्या मैं निर्धारित कर सकता हूँ कि कोई पाठ वास्तविक सामग्री है या सजावट?
हाँ — GlyphEvent.artifact true होता है जब glyph को एक /Artifact मार्क्ड-कंटेंट स्कोप के भीतर खींचा गया हो, वही अंतर Document.AutoTag() उपयोग करता है यह तय करने के लिए कि क्या टैग करना है।
क्या टेक्स्ट एक्सट्रैक्शन Form XObjects के अंदर की सामग्री देखता है?
हाँ — visitContent() अपने ट्रैवर्सल के हिस्से के रूप में Form XObjects में प्रवेश करता है, इसलिए पुन: उपयोग किए गए फॉर्म के माध्यम से खींचे गए glyphs अभी भी देखे जाते हैं।
API Reference सारांश
| क्लास/मेथड | विवरण |
|---|---|
Page.GetText() | पृष्ठ का संकलित साधारण पाठ, पढ़ने के क्रम में |
Page.GetStructuredText() | पंक्तियों और अनुच्छेद-समतुल्य ब्लॉकों में समूहित पाठ (TextBlock[]) |
visitContent() | पृष्ठ की सामग्री को चलें, मूल स्रोत के साथ ग्लिफ/छवि/पथ घटनाएँ उत्पन्न करते हुए |
GlyphEvent | एक स्थित ग्लिफ: text, quad, fontSize, color, mcid, artifact |