Rust में PDF जनरेशन: लाइब्रेरी और टूल्स का अवलोकन

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

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

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

Rust में PDF जनरेशन: लाइब्रेरी और टूल्स का अवलोकन



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



Rust में PDF के साथ काम करने के लिए मुख्य लाइब्रेरी



Rust इकोसिस्टम PDF जनरेशन के लिए कई परिपक्व समाधान प्रदान करता है। आइए सबसे लोकप्रिय पर नज़र डालें:



  • printpdf — वेक्टर ग्राफिक्स, इमेज और फ़ॉन्ट के समर्थन के साथ निम्न-स्तरीय लाइब्रेरी।
  • genpdf — सरल API के साथ दस्तावेज़ बनाने के लिए उच्च-स्तरीय लाइब्रेरी।
  • pdf_writer — न्यूनतम निर्भरता के साथ तेज़ और सुरक्षित PDF जनरेटर।
  • wkhtmltopdf — HTML को PDF में बदलने के लिए wkhtmltopdf उपयोगिता का रैपर।


printpdf लाइब्रेरी



printpdf Rust में PDF जनरेशन के लिए सबसे लोकप्रिय लाइब्रेरी में से एक है। यह दस्तावेज़ की सामग्री पर पूर्ण नियंत्रण प्रदान करता है: टेक्स्ट, लाइनें, आयत, चित्र और एम्बेडेड फ़ॉन्ट।



स्थापना

[dependencies]printpdf = "0.7"


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

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

fn main() { // A4 फ़ॉर्मेट का दस्तावेज़ बनाएँ 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( "Rust से PDF की दुनिया में आपका स्वागत है!", 24.0, Mm(20.0), Mm(270.0), &font );

// फ़ाइल में सहेजें let file = File::create("example.pdf").unwrap(); let writer = BufWriter::new(file); doc.save(&mut std::io::BufWriter::new(writer)).unwrap();}


genpdf लाइब्रेरी



genpdf एक उच्च-स्तरीय API प्रदान करता है, जो वर्ड प्रोसेसर के साथ काम करने जैसा है। यह पैराग्राफ, तालिकाएँ, शीर्षक और स्वचालित लाइन रैपिंग का समर्थन करता है।



स्थापना

[dependencies]genpdf = "0.2"


उदाहरण: शीर्षक और तालिका के साथ दस्तावेज़ बनाना

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

fn main() -> Result<(), Box> { // फ़ॉन्ट लोड करें (उदाहरण के लिए, DejaVu Sans) let font_family = FontFamily::from_files( "/usr/share/fonts/truetype/dejavu/", "DejaVuSans", None )?;

// दस्तावेज़ बनाएँ let mut doc = Document::new(font_family, SimplePageSettings::a4());

// शीर्षक जोड़ें doc.push(Paragraph::new("बिक्री रिपोर्ट").aligned(genpdf::Alignment::Center));

// तालिका बनाएँ let mut table = Table::new(TableLayout::new(vec![2, 3, 2])); table.row() .element(Paragraph::new("उत्पाद")) .element(Paragraph::new("मात्रा")) .element(Paragraph::new("मूल्य")); table.row() .element(Paragraph::new("लैपटॉप")) .element(Paragraph::new("10")) .element(Paragraph::new("50,000 रुपये")); table.row() .element(Paragraph::new("माउस")) .element(Paragraph::new("50")) .element(Paragraph::new("1,500 रुपये"));

doc.push(table);

// सहेजें doc.render_to_file("report.pdf")?; Ok(())}


pdf_writer लाइब्रेरी



pdf_writer — एक न्यूनतम और तेज़ लाइब्रेरी है, जो PDF संरचनाओं के साथ निम्न-स्तरीय कार्य पर केंद्रित है। यह

अनुशंसाएँ