Swift में PDF जनरेशन: iOS और macOS के लिए दस्तावेज़ बनाना

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

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

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

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



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



Apple के अंतर्निहित फ्रेमवर्क



Apple का इकोसिस्टम बिना तृतीय-पक्ष निर्भरता के PDF के साथ काम करने के लिए शक्तिशाली टूल प्रदान करता है। इनमें से मुख्य हैं:



  • UIGraphicsPDFRenderer (iOS 10+) — UIKit में PDF बनाने के लिए आधुनिक API।
  • PDFKit — PDF प्रदर्शित करने, संपादित करने और बनाने के लिए फ्रेमवर्क (iOS 11+ और macOS 10.13+ पर उपलब्ध)।
  • Core Graphics (Quartz 2D) — PDF ड्राइंग और जनरेशन के लिए निम्न-स्तरीय C-आधारित API।


1. UIGraphicsPDFRenderer — सरल और तेज़ शुरुआत



यह iOS के लिए सबसे सुविधाजनक तरीका है। यह UIKit (UIView, UIImage, टेक्स्ट आदि) का उपयोग करके ड्राइंग करके बहु-पृष्ठ PDF बनाने की अनुमति देता है।



import UIKit

func generatePDF() -> Data? { let pageSize = CGRect(x: 0, y: 0, width: 595.2, height: 841.8) // A4 let renderer = UIGraphicsPDFRenderer(bounds: pageSize)

let data = renderer.pdfData { context in context.beginPage()

// टेक्स्ट ड्रा करें let text = "नमस्ते, PDF दुनिया!" let attributes: [NSAttributedString.Key: Any] = [ .font: UIFont.systemFont(ofSize: 24), .foregroundColor: UIColor.black ] text.draw(at: CGPoint(x: 50, y: 100), withAttributes: attributes)

// इमेज ड्रा करें if let image = UIImage(named: "logo") { image.draw(in: CGRect(x: 50, y: 200, width: 200, height: 100)) }

// दूसरा पृष्ठ context.beginPage() let text2 = "यह दूसरा पृष्ठ है" text2.draw(at: CGPoint(x: 50, y: 50), withAttributes: attributes) }

return data}

// फ़ाइल में सहेजेंif let pdfData = generatePDF() { let documentsPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0] let pdfURL = documentsPath.appendingPathComponent("document.pdf") try? pdfData.write(to: pdfURL) print("PDF सहेजा गया: \\(pdfURL)")}


2. PDFKit — उन्नत दस्तावेज़ कार्य के लिए



PDFKit PDFDocument और PDFPage क्लास प्रदान करता है। यह फ़ॉर्मेटिंग, टेबल और इमेज के साथ टेक्स्ट से PDF बनाने के लिए आदर्श है। यह एनोटेशन, बुकमार्क और फ़ॉर्म के साथ काम करने का समर्थन करता है।



import PDFKit

func createPDFWithPDFKit() -> PDFDocument { let document = PDFDocument()

// NSAttributedString के माध्यम से पृष्ठ बनाएँ let pageRect = CGRect(x: 0, y: 0, width: 612, height: 792) // US Letter let text = NSAttributedString(string: "PDFKit के साथ उदाहरण PDFदूसरी पंक्ति") let page = PDFPage()

// पृष्ठ संदर्भ में रेंडरिंग let renderer = UIGraphicsImageRenderer(bounds: pageRect) let image = renderer.image { ctx in text.draw(at: CGPoint(x: 72, y: 72)) }

// इमेज से पृष्ठ बनाएँ (सरलीकृत) // वास्तविक प्रोजेक्ट में drawBlock के साथ PDFPage का उपयोग करें let finalPage = PDFPage(image: image) ?? PDFPage() document.insert(finalPage, at: 0)

return document}

// सहेजेंif let document = createPDFWithPDFKit() as? PDFDocument { let url = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0].appendingPathComponent("pdfkit_example.pdf") document.write(to: url)}


महत्वपूर्ण: PDFKit केवल iOS 11+/macOS 10.13+ पर उपलब्ध है। पुराने संस्करणों के लिए UIGraphicsPDFRenderer का उपयोग करें।



3. Core Graphics (Quartz 2D) — अधिकतम नियंत्रण



यदि आप

अनुशंसाएँ