Rust में PDF रिपोर्ट जनरेशन: लाइब्रेरीज़ और व्यावहारिक उदाहरण

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

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

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

Rust में PDF रिपोर्ट जनरेशन: लाइब्रेरीज़ का अवलोकन और व्यावहारिक उदाहरण



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



Rust में PDF क्यों जनरेट करें?

PDF दस्तावेज़ों, रिपोर्टों और चालानों के आदान-प्रदान के लिए एक सार्वभौमिक प्रारूप है। Rust प्रदान करता है:

  • उच्च प्रदर्शन और कम मेमोरी खपत।
  • गार्बेज कलेक्टर के बिना मेमोरी सुरक्षा।
  • वेब फ्रेमवर्क (Actix, Rocket, Axum) के साथ आसान एकीकरण।
  • क्रॉस-प्लेटफ़ॉर्म समर्थन (Windows, Linux, macOS)।


Rust के लिए मुख्य PDF लाइब्रेरीज़



1. printpdf — PDF के साथ निम्न-स्तरीय कार्य

printpdf "स्क्रैच" से PDF दस्तावेज़ बनाने के लिए सबसे लोकप्रिय लाइब्रेरी है। यह आपको लाइनें, टेक्स्ट, इमेज और टेबल बनाने की अनुमति देता है, हर पिक्सेल पर नियंत्रण रखते हुए। यह कस्टम लेआउट वाली जटिल रिपोर्टों के लिए उपयुक्त है।



स्थापना:

[dependencies]printpdf = "0.7"


उदाहरण: टेक्स्ट के साथ सरल PDF

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

fn main() { let (doc, page1, layer1) = PdfDocument::new( "मेरी पहली रिपोर्ट", Mm(210.0), Mm(297.0), "Layer 1", );

let font = doc.add_builtin_font(BuiltinFont::Helvetica).unwrap();

let current_layer = doc.get_page(page1).get_layer(layer1); current_layer.use_text("नमस्ते, दुनिया!", 24.0, Mm(20.0), Mm(280.0), &font);

doc.save(&mut File::create("output.pdf").unwrap()).unwrap();}


2. genpdf — उच्च-स्तरीय रिपोर्ट जनरेशन

genpdf printpdf के ऊपर बनाया गया है और टेबल, हेडिंग, पैराग्राफ और स्टाइल के साथ दस्तावेज़ बनाने के लिए एक सुविधाजनक API प्रदान करता है। यह उन रिपोर्टों के लिए आदर्श है जहाँ संरचना महत्वपूर्ण है, न कि मैन्युअल पोजीशनिंग।



स्थापना:

[dependencies]genpdf = "0.3"


उदाहरण: टेबल के साथ रिपोर्ट

use genpdf::{Document, SimplePageSettings};use genpdf::elements::{Paragraph, Table, TableLayout};use genpdf::fonts::FontFamily;

fn main() { let font_family = FontFamily::from_files( "/usr/share/fonts/truetype/dejavu/", "DejaVuSans", None, ).unwrap();

let mut doc = Document::new(font_family); doc.set_title("बिक्री रिपोर्ट");

let mut table = Table::new(TableLayout::new(vec![2, 3, 3])); table.row() .element(Paragraph::new("उत्पाद")) .element(Paragraph::new("मात्रा")) .element(Paragraph::new("मूल्य"));

table.row() .element(Paragraph::new("लैपटॉप")) .element(Paragraph::new("10")) .element(Paragraph::new("1200$"));

doc.push(table); doc.render_to_file("report.pdf").unwrap();}


3. wkhtmltopdf — WebKit के माध्यम से HTML को PDF में

यदि आप HTML/CSS पर रिपोर्ट डिज़ाइन करना पसंद करते हैं, तो wkhtmltopdf उपयोगिता के रैपर का उपयोग करें। यह HTML टेम्पलेट को PDF में बदलता है, स्टाइल, इमेज और JavaScript का समर्थन करता है।



स्थापना:

[dependencies]wkhtmltopdf = "0.4"


उदाहरण: HTML रूपांतरण

use wkhtmltopdf::*;

fn main() { let html = r#" <h1>मासिक रिपोर्ट</h1> <p>बिक्री: <strong>150 000 ₽</strong></p> <table border="1"> <tr><td>जनवरी</td><td>50 000</td></tr> <tr><td>फरवरी</td><td>100 000</td></tr&g

अनुशंसाएँ