Skip to content

Best Practices hi

Hammad Maqbool edited this page Oct 29, 2026 · 1 revision

English · 简体中文 · 繁體中文 · Español · العربية · Français · Português (Brasil) · Deutsch · हिन्दी · 日本語 · 한국어 · Русский · Bahasa Indonesia · Türkçe · Italiano · Tiếng Việt

docxi के बेहतरीन तरीके: आम गड़बड़ियों से बचें

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

पेज सेटअप

  • चारों मार्जिन एक साथ दें। Docxi::Document.new को दिया गया hash डिफ़ॉल्ट की जगह ले लेता है, और top, right, bottom और left में से जो भी छूट जाए, वह खाली लिखा जाता है।
  • पहले पेज का हेडर और फ़ुटर सेट करें। docxi हमेशा अलग पहला पेज चालू रखता है। अगर पेज 1 पर हेडर या फ़ुटर चाहिए, तो add_first_header और add_first_footer भी कॉल करें।

टेक्स्ट

  • शुरुआत या आखिर के स्पेस के लिए space: true इस्तेमाल करें। नहीं तो Word उन्हें हटा देता है और दो रन के शब्द आपस में सट जाते हैं।
  • साझा फ़ॉर्मैटिंग पैराग्राफ पर रखें। p को दिए गए विकल्प, जैसे size: या font:, उसके अंदर के हर रन पर लागू होते हैं, इसलिए कम दोहराना पड़ता है।
  • लाइन ब्रेक के लिए p.br और पेज ब्रेक के लिए document.br(page: true) इस्तेमाल करें। page: true के बिना document.br अमान्य XML बनाता है।

टेबल

  • बॉर्डर पंक्तियों या सेल पर सेट करें, टेबल पर नहीं। 0.1.0 में टेबल स्तर के borders: टेबल के बाहरी किनारों की जगह हर सेल पर लागू होते हैं।
  • हर कॉलम के लिए columns_width दें। सेल अपनी चौड़ाई इसी से लेते हैं, इसलिए टेबल का लेआउट वैसा ही रहता है जैसा आप चाहते हैं।

इमेज

  • PNG फ़ाइलें इस्तेमाल करें। हर इमेज PNG पार्ट के रूप में स्टोर होती है।
  • इनलाइन इमेज का साइज़ style: से सेट करें, जैसे style: { width: "120pt", height: "60pt" }। 0.1.0 में यही एक इमेज साइज़ है जो उम्मीद के मुताबिक काम करता है।
  • अगर डॉक्यूमेंट एक से ज़्यादा बार रेंडर हो सकता है, तो खुले File की जगह पाथ दें। IO इमेज render के दौरान पढ़ी जाती हैं, और दूसरी बार रेंडर करने पर खाली इमेज मिलती है।
  • 0.2.0 तक हेडर, टेबल सेल और पोज़िशन की गई इमेज। इनकी चौड़ाई और ऊंचाई दोनों width * height * 14.92 EMU के रूप में निकाली जाती हैं, इसलिए ये चौकोर बनती हैं। S इंच की चौकोर इमेज के लिए width और height दोनों को Math.sqrt(S * 914400 / 14.92).round के बराबर रखें, जो एक इंच के लिए लगभग 248 होता है।

सुरक्षा

  • add_media को अविश्वसनीय स्ट्रिंग न दें। पाथ देने पर docxi आपके सर्वर से वह फ़ाइल पढ़ता है, और URL देने पर आपका सर्वर उसे डाउनलोड करता है। अपना खोला हुआ IO दें, या पहले मान की जांच करें। सुरक्षा देखें।
  • टेक्स्ट अपने-आप एस्केप होता है। text को दी गई स्ट्रिंग XML टेक्स्ट के रूप में लिखी जाती हैं, इसलिए यूज़र इनपुट डॉक्यूमेंट का ढांचा नहीं बदल सकता।

परफ़ॉर्मेंस और भरोसेमंदी

  • बड़े डॉक्यूमेंट बैकग्राउंड जॉब में बनाएं। render कॉल करने पर पूरा डॉक्यूमेंट मेमोरी में बनता है। इंटीग्रेशन देखें।
  • एक बार रेंडर करें, फिर बाइट दोबारा इस्तेमाल करें। अगर डॉक्यूमेंट एक से ज़्यादा बार भेजना या स्टोर करना है, तो word.render.string को रख लें।
  • संगत वर्शन पिन करें, gem "docxi", "~> 0.1" के साथ।
  • जो बनाते हैं, उसे टेस्ट करें। .docx XML फ़ाइलों का zip है, इसलिए टेस्ट इसे अनज़िप करके XML जांच सकते हैं। docxi के अपने टेस्ट इसी तरह काम करते हैं। आर्किटेक्चर देखें।

संबंधित पेज


← विकी होम · README

Clone this wiki locally