Swift (iOS/macOS) में PDF निर्माण: उपकरणों का अवलोकन और उदाहरण

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

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

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

Swift (iOS/macOS) में PDF निर्माण: पूरी गाइड

\n\n

PDF दस्तावेज़ बनाना iOS और macOS के लिए ऐप डेवलपमेंट में एक प्रमुख कार्य है। रिपोर्ट, चालान, प्रमाणपत्र, ई-पुस्तकें - इन सबके लिए PDF निर्माण के लिए एक विश्वसनीय और लचीले उपकरण की आवश्यकता होती है। Swift इकोसिस्टम में कई दृष्टिकोण हैं: Apple के अंतर्निहित फ्रेमवर्क से लेकर उन्नत सुविधाओं वाली तृतीय-पक्ष लाइब्रेरी तक। इस लेख में, हम PDF निर्माण के मुख्य तरीकों, उनके फायदे और नुकसान पर चर्चा करेंगे, और काम करने वाले कोड उदाहरण भी देंगे।

\n\n

1. PDFKit — Apple का अंतर्निहित फ्रेमवर्क

\n\n

PDFKit Apple का एक शक्तिशाली फ्रेमवर्क है, जो iOS 11+ और macOS 10.13+ पर उपलब्ध है। यह PDF दस्तावेज़ बनाने, प्रदर्शित करने और संपादित करने के लिए एक उच्च-स्तरीय API प्रदान करता है। मुख्य विशेषताएं:

\n
    \n
  • UIView, UIImage या टेक्स्ट से PDF बनाना
  • \n
  • एनोटेशन, फॉर्म और हाइपरलिंक जोड़ना
  • \n
  • बहु-पृष्ठ दस्तावेज़ों के साथ काम करना
  • \n
  • कस्टम ड्राइंग के लिए Core Graphics का समर्थन
  • \n
\n\n

UIView से PDF बनाने का उदाहरण:

\n
import PDFKit\n\nfunc generatePDF(from view: UIView) -> Data? {\n    let pdfData = NSMutableData()\n    UIGraphicsBeginPDFContextToData(pdfData, view.bounds, nil)\n    UIGraphicsBeginPDFPage()\n    guard let context = UIGraphicsGetCurrentContext() else { return nil }\n    view.layer.render(in: context)\n    UIGraphicsEndPDFContext()\n    return pdfData as Data\n}\n
\n\n

यह विधि तब उपयुक्त है जब आपको मौजूदा इंटरफ़ेस को जल्दी से "फ़ोटो" लेना हो। हालांकि, जटिल लेआउट (टेबल, हेडर-फुटर, कस्टम फ़ॉन्ट) के लिए सीधे Core Graphics का उपयोग करना बेहतर है।

\n\n

2. Core Graphics (Quartz 2D) — निम्न-स्तरीय समाधान

\n\n

Core Graphics ड्राइंग प्रक्रिया पर पूर्ण नियंत्रण देता है। आप PDF कॉन्टेक्स्ट के साथ काम करते हैं, लाइनें, टेक्स्ट, इमेज बनाते हैं, पेजों को प्रबंधित करते हैं। यह सबसे लचीला, लेकिन सबसे अधिक श्रम-गहन तरीका भी है।

\n\n

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

\n
import UIKit\n\nfunc createPDFWithText() -> Data? {\n    let pageSize = CGRect(x: 0, y: 0, width: 612, height: 792) // A4\n    let data = NSMutableData()\n    UIGraphicsBeginPDFContextToData(data, pageSize, nil)\n    UIGraphicsBeginPDFPage()\n    \n    guard let context = UIGraphicsGetCurrentContext() else { return nil }\n    let text = "नमस्ते, PDF दुनिया!"\n    let attributes: [NSAttributedString.Key: Any] = [\n        .font: UIFont.systemFont(ofSize: 24),\n        .foregroundColor: UIColor.black\n    ]\n    text.draw(at: CGPoint(x: 50, y: 50), withAttributes: attributes)\n    \n    UIGraphicsEndPDFContext()\n    return data as Data\n}\n
\n\n

जटिल दस्तावेज़ों (टेबल, इमेज, पेज नंबरिंग) के लिए आपको बहुत सारा सहायक कोड लिखना होगा। लेकिन इसके बदले आपको अधिकतम प्रदर्शन और न्यूनतम फ़ाइल आकार मिलता है।

\n\n

3. TPPDF — ओपन सोर्स तृतीय-पक्ष लाइब्रेरी

\n\n

TPPDF (GitHub: techprimate/TPPDF) एक Swift लाइब्रेरी है जो घोषणात्मक सिंटैक्स के साथ PDF निर्माण के लिए है। यह समर्थन करती है:

\n
    \n
  • टेक्स्ट, इमेज, टेबल, सूचियाँ
  • \n
  • हेडर-फुटर, पेज नंबरिंग
  • \n
  • पृष्ठों के बीच सामग्री का स्वचालित स्थानांतरण
  • \n
  • कस्टम फ़ॉन्ट, रंग, सीमाएँ
  • \n
\n\n

Swift Package Manager के माध्यम से इंस्टॉलेशन:

\n
// Package.swift\ndependencies: [\n    .package(url: "https://github.com/techprimate/TPPDF.git", from: "2.0.0")\n]\n
\n\n

टेबल के साथ दस्तावेज़ बनाने का उदाहरण:

\n
import TPPDF\n\nfunc generateInvoice() -> Data? {\n    let document = PDFDocument(format: .a4)\n    \n    // शीर्षक जोड़ें\n    document.add(text: "चालान #123", style: PDFTextStyle.heading1)\n    \n    // एक टेबल बनाएँ\n    let table = PDFTable(rows: 3, columns: 2)\n    table[0][0].content = "उत्पाद"\n    table[0][1].content = "मूल्य"\n    table[1][                    

अनुशंसाएँ