Rust के लिए PDF: पूर्ण गाइड उदाहरणों के साथ

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Rust में PDF: printpdf लाइब्रेरी से डॉक्यूमेंट बनाने की पूरी गाइड

1. यह क्या है और क्यों ज़रूरी है

printpdf Rust प्रोग्रामिंग भाषा के लिए एक शक्तिशाली और लचीली लाइब्रेरी है, जो खरोंच से PDF डॉक्यूमेंट बनाने के लिए डिज़ाइन की गई है। कई अन्य टूल्स के विपरीत, जो सिर्फ HTML या Markdown को PDF में बदलते हैं, printpdf एक लो-लेवल API प्रदान करता है जो डॉक्यूमेंट के हर पहलू पर पूर्ण नियंत्रण देता है: टेक्स्ट और वेक्टर ग्राफिक्स रखने से लेकर फॉन्ट और इमेज एम्बेड करने तक। यह लाइब्रेरी शुद्ध Rust में बिना किसी बाहरी डिपेंडेंसी (स्टैंडर्ड लाइब्रेरी को छोड़कर) लिखी गई है, जो इसे उन सिस्टम्स के लिए आदर्श बनाती है जहाँ मेमोरी सुरक्षा, परफॉरमेंस और पोर्टेबिलिटी महत्वपूर्ण हैं।

printpdf का उपयोग क्यों करें? आज की दुनिया में PDF डॉक्यूमेंट एक्सचेंज का सार्वभौमिक फॉर्मेट है। सर्वर-साइड PDF जनरेशन कई परिदृश्यों में आवश्यक है: ERP सिस्टम में इनवॉइस और बिल बनाना, रिपोर्ट और एनालिटिकल डैशबोर्ड तैयार करना, सर्टिफिकेट और डिप्लोमा जनरेट करना, प्रिंट फॉर्म और ब्लैंक बनाना। Rust, अपनी परफॉरमेंस और विश्वसनीयता पर जोर देने के साथ, ऐसे कार्यों के लिए एकदम सही है। printpdf आपको बाहरी प्रोसेस चलाने (जैसे wkhtmltopdf) या भारी ब्राउज़र इंजन का उपयोग करने के ओवरहेड के बिना कुशलतापूर्वक ऐसा करने की अनुमति देता है।

लाइब्रेरी की प्रमुख विशेषताओं में शामिल हैं: सभी मानक PDF ऑब्जेक्ट्स (पेज, फॉन्ट, इमेज, ग्राफिक्स) का समर्थन, Unicode और TrueType/OpenType फॉन्ट एम्बेड करना, मल्टी-पेज डॉक्यूमेंट बनाना, RGB, CMYK और Grayscale कलर स्पेस का उपयोग, और PDF कोऑर्डिनेट सिस्टम के साथ एलिमेंट्स की सटीक पोजिशनिंग। यह 'ऑन-द-फ्लाई' कन्वर्ट करने का टूल नहीं है, बल्कि पेशेवर डॉक्यूमेंट बनाने के लिए एक 'कंस्ट्रक्टर' है।

2. इंस्टॉलेशन

अपने Rust प्रोजेक्ट में printpdf लाइब्रेरी इंस्टॉल करने के लिए, स्टैंडर्ड पैकेज मैनेजर Cargo का उपयोग करें। आपको अपने प्रोजेक्ट के Cargo.toml फ़ाइल में डिपेंडेंसी जोड़नी होगी।

अपने प्रोजेक्ट की रूट फ़ोल्डर में टर्मिनल खोलें और यह कमांड चलाएँ:

cargo add printpdf

या, मैन्युअल रूप से अपने Cargo.toml के [dependencies] सेक्शन में निम्नलिखित लाइन जोड़ें:

[dependencies]
printpdf = "0.7"

इसके बाद, अगली बार जब आप प्रोजेक्ट बिल्ड करेंगे, Cargo स्वचालित रूप से लाइब्रेरी और उसकी सभी आंतरिक डिपेंडेंसी डाउनलोड कर लेगा। सुनिश्चित करें कि आपके पास Rust (rustc) और Cargo इंस्टॉल है। यदि नहीं, तो इंस्टॉलेशन के लिए rustup.rs पर जाएँ।

3. त्वरित शुरुआत — न्यूनतम कार्यशील उदाहरण

आइए एक साधारण PDF डॉक्यूमेंट बनाएँ जिसमें एक पेज और टेक्स्ट हो। यह उदाहरण लाइब्रेरी के साथ काम करने के बुनियादी चक्र को दिखाएगा: डॉक्यूमेंट बनाना, पेज जोड़ना, फॉन्ट चुनना, टेक्स्ट लिखना और फ़ाइल सेव करना।

use printpdf::*;
use std::fs::File;
use std::io::BufWriter;

fn main() {
    // नया PDF डॉक्यूमेंट बनाएँ
    let (doc, page1, layer1) = PdfDocument::new(
        "Rust में मेरा पहला PDF",
        Mm(210.0), // पेज की चौड़ाई (A4)
        Mm(297.0), // पेज की ऊँचाई (A4)
        "Layer 1", // लेयर का नाम
    );

    // डिफ़ॉल्ट फॉन्ट प्राप्त करें (बिल्ट-इन Helvetica)
    let font = doc.add_builtin_font(BuiltinFont::Helvetica).unwrap();

    // लेयर के साथ काम शुरू करें
    let current_layer = doc.get_page(page1).get_layer(layer1);

    // 48pt साइज़ का फॉन्ट, काले रंग में उपयोग करें
    current_layer.use_text("Hello, Rust PDF!", 48.0, Mm(50.0), Mm(200.0), &font);

    // डॉक्यूमेंट को फ़ाइल में सेव करें
    let file =                    

अनुशंसाएँ