पीडीएफ खोज शब्दों को हाइलाइट करें, आयत इटैलिक टेक्स्ट को गलत तरीके से फ्रेम क्यों करता है?

इटैलिक फ़ॉन्ट आवश्यक रूप से खोजे गए क्वाड के क्षेत्र को संलग्न आयत से छोटा नहीं बनाते हैं। जब आपको चार-कोने की दिशा की जानकारी बनाए रखने की आवश्यकता होती है, तो हाइलाइटिंग जोड़ने के लिए सीधे क्वाड = ट्रू के परिणाम का उपयोग करें; हाइलाइटिंग सही है या नहीं यह निर्धारित करने के लिए किसी भी क्षेत्र अंतर सीमा का उपयोग न करें।

जब इटैलिक टेक्स्ट के लिए खोज हाइलाइट बॉक्स तिरछा हो जाता है, तो ऐसा अक्सर इसलिए नहीं होता है क्योंकि फ़ॉन्ट में ही कोई समस्या होती है, बल्कि इसलिए होता है क्योंकि हाइलाइटिंग के लिए उपयोग की जाने वाली ज्यामितीय वस्तु गलत तरीके से चुनी गई है। यह आलेख उन डेवलपर्स के लिए है जो पीडीएफ टेक्स्ट पोजिशनिंग को संसाधित करने के लिए PyMuPDF का उपयोग करते हैं। यह बताता है कि संलग्न आयत (रेक्ट) का उपयोग यह निर्धारित करने के लिए क्यों नहीं किया जा सकता है कि इटैलिक या घुमाए गए पाठ का हाइलाइटिंग सही है या नहीं, और विभिन्न स्थितियों में इसे कैसे संभालना है।

इस लेख को पढ़ने के बाद, आप तय कर सकते हैं कि खोज परिणामों के लिए क्वाड या रेक्ट का उपयोग करना है या नहीं, जानें कि खोज करते समय नो हिट्स, क्रॉस-रो, मल्टीपल हिट्स और क्रॉपबॉक्स क्रॉपिंग को कैसे संभालना है, और समझें कि कौन सी समस्याएं ज्यामितीय स्थिति के दायरे से परे हैं।

पूरा पाठ सिंथेटिक नमूनों के साथ प्रदर्शित किया गया है, और कोड ने एक पृथक वातावरण में नमूना जांच पास कर ली है, लेकिन यह सभी वास्तविक फ़ाइलों या उत्पाद प्रभावों की गारंटी का प्रतिनिधित्व नहीं करता है। महत्वपूर्ण दस्तावेज़ों को संसाधित करने से पहले, कृपया मूल दस्तावेज़ अपने पास रखें और फिर नीचे दी गई सीमाओं और स्वीकृति मदों के अनुसार उनकी समीक्षा करें।

इटैलिक टेक्स्ट की खोज हाइलाइटिंग के लिए, क्वाड या रेक्ट चुनें? एक वाक्य का निष्कर्ष

इटैलिक फ़ॉन्ट आवश्यक रूप से खोज द्वारा प्राप्त क्वाड क्षेत्र को संलग्न आयत से छोटा नहीं बनाता है। जब चार-कोने की दिशा की जानकारी बनाए रखना आवश्यक हो, तो हाइलाइट्स जोड़ने के लिए सीधे quads=True के परिणामों का उपयोग करें। हाइलाइटिंग सही है या नहीं यह निर्धारित करने के लिए किसी भी क्षेत्र अंतर सीमा का उपयोग न करें।

आपकी स्थितिअनुशंसित प्रथाएँकारण
इटैलिक या घुमाया गया पाठ, चार कोने वाले अभिविन्यास को संरक्षित करने की आवश्यकता हैहाइलाइट्स जोड़ने के लिए सीधे quads=True के परिणामों का उपयोग करेंक्वाड चार-कोने की ओरिएंटेशन जानकारी को बरकरार रखता है
मैं यह निर्धारित करने के लिए क्षेत्र अंतर सीमा का उपयोग करना चाहता हूं कि हाइलाइटिंग सही है या नहीं।ऐसा मत करोइटैलिक फ़ॉन्ट आवश्यक रूप से क्वाड क्षेत्र को छोटा नहीं बनाता है, और थ्रेशोल्ड निर्णय अविश्वसनीय है।
खोज शब्द सभी पंक्तियों में फैले हुए हैं और इंजन उन्हें समान शब्दावली इकाई के रूप में नहीं पहचानता है।सभी लौटाए गए क्वाड टुकड़े रखें और हाइलाइट्स को अलग-अलग बनाएंजबरन एक रेक्ट में विलय करने से बीच में सफेद स्थान का शब्दार्थ खो जाएगा।
पेज में क्रॉपबॉक्स क्रॉपिंग हैसत्यापित करें कि क्रॉपबॉक्स को पुनर्स्थापित करने के बाद भी सामग्री देखने योग्य क्षेत्र में हैsearch_for द्वारा लौटाए गए निर्देशांक अनियंत्रित मूल पृष्ठ स्थान पर आधारित हैं और यह नहीं माना जा सकता है कि get_text डिफ़ॉल्ट रूप से क्रॉप किए गए क्षेत्र को अनदेखा करता है
एकाधिक हिटपृष्ठ संख्याएँ आइटम दर आइटम रखें और उन्हें एक-एक करके संसाधित करेंकेवल पहले वाले को संसाधित करने से शेष स्थान चूक जाएंगे

इटैलिक टेक्स्ट ग़लत क्यों दिखाई देता है?

बहुत से लोग डिफ़ॉल्ट रूप से मान लेंगे कि इटैलिक वर्णों का संलग्न आयत क्वाड से बहुत बड़ा है, इसलिए हाइलाइट करने के लिए रेक्ट का उपयोग करने से "फ़्रेम विचलन" हो जाएगा। वास्तव में, इटैलिक फ़ॉन्ट आवश्यक रूप से खोजे गए क्वाड के क्षेत्र को संलग्न आयत से छोटा नहीं बनाता है, इसलिए यह निर्धारित करने के लिए क्षेत्र अंतर का उपयोग करना विश्वसनीय नहीं है कि हाइलाइटिंग सही है या नहीं।

वास्तव में जिस चीज़ की आवश्यकता है वह चारों कोनों की अभिविन्यास जानकारी को संरक्षित करना है। क्वाड इस जानकारी को रिकॉर्ड करता है, और आकृति का अनुमान लगाने के लिए संलग्न आयत का उपयोग करने की तुलना में सीधे हाइलाइट्स जोड़ने के लिए इसका उपयोग करना अधिक विश्वसनीय है।

स्व-निहित रचना उदाहरण

उदाहरण निर्भरता के लिए आयात सूची देखें। कोड मेमोरी में इनपुट बनाता है और चलाने के लिए बाहरी फ़ाइलों की आवश्यकता नहीं होती है। ऑपरेशन रिकॉर्ड अलग से प्रदान किए जाते हैं और यह गारंटी नहीं देते कि सभी दस्तावेज़ प्रामाणिक हैं।

import pymupdf
with pymupdf.open() as source:
    page = source.new_page(width=300, height=300)
    page.insert_text((100, 250), "Searchable", fontsize=14, rotate=90)
    hits = page.search_for("Searchable", quads=True)
    assert len(hits) == 1
    assert isinstance(hits[0], pymupdf.Quad)
    page.add_highlight_annot(hits)
    assert page.search_for("Missing", quads=True) == []
    raw = source.tobytes()
with pymupdf.open(stream=raw, filetype="pdf") as doc:
    page = doc[0]  # Keep the owning page alive while using annotations.
    annotations = list(page.annots())
    assert len(annotations) == 1
    assert len(annotations[0].vertices) == 4

सही आउटपुट और सीमा इनपुट प्रोसेसिंग

उपरोक्त सिंथेटिक उदाहरण एक इन-मेमोरी पीडीएफ उत्पन्न करता है जिसका उपयोग क्वाड के व्यवहार को सत्यापित करने के लिए किया जाता है। नीचे कई सामान्य सीमा इनपुट हैं।

1. खोज शब्द पंक्तियों में फैले हुए हैं

यदि खोज शब्द नई पंक्तियों तक फैला है और इंजन इसे समान शब्दावली इकाई के रूप में नहीं पहचानता है, तो search_for एक खाली सूची लौटा सकता है या केवल आंशिक अंशों से मेल खा सकता है।

  • कई गैर-आसन्न क्वाड्स को जबरन एक रेक्ट में मर्ज न करें, अन्यथा बीच में सफेद स्थान का शब्दार्थ खो जाएगा।
  • सभी लौटाए गए क्वाड टुकड़े रखें और हाइलाइट्स अलग से बनाएं।

2. खोज शब्द में नियमित विशेष वर्ण शामिल हैं

यदि किसी खोज शब्द में नियमित विशेष वर्ण शामिल हैं और उनसे बचा नहीं गया है, तो परिणाम अपेक्षा के अनुरूप नहीं हो सकते हैं। कॉल करने से पहले इनपुट स्ट्रिंग को सुरक्षित रूप से संसाधित किया जाना चाहिए।

3. क्रॉपबॉक्स क्रॉपिंग

यदि पृष्ठ में क्रॉपबॉक्स क्रॉपिंग है, तो search_for द्वारा लौटाए गए निर्देशांक अभी भी बिना घुमाए गए मूल पृष्ठ स्थान पर आधारित हैं। क्रॉपबॉक्स को पुनर्स्थापित करने के बाद, आपको यह सत्यापित करना होगा कि सामग्री अभी भी दृश्य क्षेत्र में है। आप यह नहीं मान सकते कि get_text डिफ़ॉल्ट रूप से फसल क्षेत्र को अनदेखा करता है।

स्वीकृति मानदंड और मैन्युअल समीक्षा सीमाएँ

यह समाधान केवल ज्यामितीय स्थिति समस्या का समाधान करता है। निम्नलिखित स्थितियाँ क्वाड और रेक्ट के बीच चयन का विषय नहीं हैं:

  • पीडीएफ की टेक्स्ट परत स्वयं क्षतिग्रस्त है;
  • असामान्य फ़ॉन्ट एम्बेडिंग;
  • छुपी हुई परतें हैं.

इन मामलों में, search_for के परिणाम बिल्कुल भी विश्वसनीय नहीं हो सकते हैं और उन्हें मैन्युअल समीक्षा या पुनः OCR के लिए प्रस्तुत किया जाना चाहिए। नमूना कोड केवल ज्यामितीय गुणों को सत्यापित करता है, और विशिष्ट दस्तावेज़ प्रकारों के आधार पर एंड-टू-एंड प्रभाव का अभी भी मूल्यांकन करने की आवश्यकता है।

विशिष्ट अपवाद प्रबंधन निर्णय

निरीक्षणक्या करेंअनुमान नहीं लगाना चाहिए
खोजें कोई हिट नहींटेक्स्ट लेयर और कीवर्ड जांचेंखाली हाइलाइट्स न बनाएं
पाठ घुमाएँचौकोर कोने रखेंक्षेत्र अंतर के बिना सटीकता का अनुमान लगाना
एकाधिक हिटपृष्ठ संख्याएँ आइटम दर आइटम रखेंकेवल पहले वाले से निपटें नहीं

📊 कोर तुलना

वस्तुवह जानकारी जिसे बरकरार रखा जा सकता हैलागू परिदृश्यध्यान देने योग्य बातें
Quadचार कोनेइटैलिक, घुमाए गए टेक्स्ट के लिए सटीक हाइलाइटिंग की आवश्यकता होती हैसीधे quads=True के परिणामों का उपयोग करें
आयताकार (आयत को घेरते हुए)बाहरी सीमाक्षैतिज पाठ के लिए सरल फ़्रेम चयनइटैलिकाइज़्ड या घुमाया गया टेक्स्ट फ़्रेम से बाहर हो सकता है और शुद्धता का आकलन करने के लिए उपयुक्त नहीं है।
मर्ज किया गया रेक्टसमग्र दायराक्रॉस-लाइन खोजों के लिए अनुशंसित नहीं हैबीच में सफेद स्थान का शब्दार्थ नष्ट हो जाएगा

🎯कौन सा तरीका आपके लिए उपयुक्त है?

अगर आप……

  • पाठ के चार कोनों को संरक्षित करने की आवश्यकता है: हाइलाइट्स जोड़ने के लिए सीधे quads=True के परिणामों का उपयोग करें।
  • यदि आप यह निर्धारित करने के लिए क्षेत्र अंतर सीमा का उपयोग करना चाहते हैं कि हाइलाइटिंग सही है या नहीं: ऐसा न करें। इटैलिक फ़ॉन्ट आवश्यक रूप से क्वाड क्षेत्र को छोटा नहीं बनाता है।
  • खोज शब्द क्रॉस्ड लाइन्स का सामना करना पड़ा: सभी क्वाड टुकड़े रखें, हाइलाइट्स अलग से बनाएं, एक रेक्ट में विलय न करें।
  • क्रॉपबॉक्स क्रॉपिंग वाले पृष्ठों को संभालना: क्रॉपबॉक्स को पुनर्स्थापित करने के बाद, सत्यापित करें कि सामग्री अभी भी देखने योग्य क्षेत्र में है।

दस्तावेज़ अनुवाद के लिए इस चेकलिस्ट का उपयोग करें

पहले पृष्ठ क्रम, स्रोत स्थान और पाठ अखंडता की जांच करें, और फिर अनुवाद प्रक्रिया के लिए वही असंवेदनशील नमूना सबमिट करें। अनुवाद के बाद, आपको अभी भी यह जांचना होगा कि शीर्षक, पाठ और चित्र सही ढंग से मेल खाते हैं या नहीं। आप केवल यह जांच नहीं कर सकते कि पाठ सहज है या नहीं।

ओमनीडॉक (उत्पाद पोर्टल) एक बहु-प्रारूप दस्तावेज़ अनुवाद पोर्टल प्रदान करता है, और आधिकारिक वेबसाइट OCR, शब्दावली और द्विभाषी तुलना कार्यों का परिचय देती है। उन टीमों के लिए जो सीधे फाइलों से काम करना चाहती हैं, यह वास्तविक जीवन के नमूनों के साथ मूल्यांकन करने लायक मार्ग है। कृपया उन डिसेन्सिटाइज़्ड फ़ाइलों का उपयोग करें जिन्हें अपलोड करने की आपके पास अनुमति है, और परिणामों की समीक्षा करने के लिए इस आलेख में चेक आइटम का उपयोग करें। यहां कोई दावा नहीं है कि ओमनीडॉक इस लेख में उल्लिखित ओपन सोर्स लाइब्रेरी या आंतरिक एल्गोरिदम का उपयोग करता है, और उदाहरण उत्पाद प्रदर्शन परीक्षण का विकल्प नहीं हैं।

सन्दर्भ

❓ अक्सर पूछे जाने वाले प्रश्न (FAQ)

1. क्या इटैलिकाइज़्ड टेक्स्ट निश्चित रूप से क्वाड क्षेत्र को छोटा कर देगा?

अनिश्चित. इटैलिक फ़ॉन्ट आवश्यक रूप से खोजे गए क्वाड के क्षेत्र को संलग्न आयत से छोटा नहीं बनाता है, इसलिए आप यह निर्धारित करने के लिए क्षेत्र अंतर पर भरोसा नहीं कर सकते कि हाइलाइटिंग सही है या नहीं।

2. क्वाड कॉर्नर की जानकारी कब रखी जानी चाहिए?

जब आपको चार-कोने की दिशा की जानकारी बनाए रखने की आवश्यकता होती है, तो आपको हाइलाइट्स जोड़ने के लिए सीधे quads=True के परिणामों का उपयोग करना चाहिए।

3. खोज शब्द रेखाओं को पार करता है और कोई हिट नहीं मिलता है। मुझे क्या करना चाहिए?

खाली हाइलाइट्स न बनाएं, पहले टेक्स्ट लेयर और कीवर्ड की जांच करें। यदि केवल कुछ टुकड़े लौटाए जाते हैं, तो सभी लौटाए गए क्वाड टुकड़े बरकरार रखे जाने चाहिए और हाइलाइट्स को एक ही रेक्ट में मजबूर करने के बजाय अलग से खींचा जाना चाहिए।

4. क्रॉपबॉक्स से पेज को क्रॉप करते समय आपको क्या ध्यान देना चाहिए?

search_for द्वारा लौटाए गए निर्देशांक अभी भी बिना घुमाए गए मूल पृष्ठ स्थान पर आधारित हैं। क्रॉपबॉक्स को पुनर्स्थापित करने के बाद, आपको यह सत्यापित करना होगा कि सामग्री अभी भी दृश्य क्षेत्र में है। आप यह नहीं मान सकते कि get_text डिफ़ॉल्ट रूप से फसल क्षेत्र को अनदेखा करता है।

📝सारांश

इटैलिक और घुमाए गए टेक्स्ट की हाइलाइटिंग क्वाड पर आधारित होनी चाहिए, और पेज नंबर और चार-कोने की जानकारी को आइटम दर आइटम बनाए रखा जाना चाहिए। टेक्स्ट परत की क्षति और असामान्य फ़ॉन्ट एम्बेडिंग जैसी समस्याओं के लिए अभी भी मैन्युअल समीक्षा या पुन: ओसीआर की आवश्यकता होती है।

ओमनीडॉक डेस्कटॉप निःशुल्क डाउनलोड करें: दस्तावेज़, स्प्रेडशीट, प्रस्तुतियाँ और पीडीएफ सभी एक ही स्थान पर

अद्यतन 2026-11-13