C / C ++ एप्लिकेशन के लिए ओपन सोर्स पीडीएफ लाइब्रेरी? [बन्द है]


91

मैं अपने (देशी) C ++ विंडोज एप्लिकेशन से पीडीएफ आउटपुट उत्पन्न करने में सक्षम होना चाहता हूं। क्या ऐसा करने के लिए कोई निःशुल्क / खुला स्रोत पुस्तकालय उपलब्ध हैं?

मैंने इस प्रश्न के उत्तर को देखा , लेकिन वे ज्यादातर .Net से संबंधित थे।

जवाबों:


61

LibHaru

एएनएसआई-सी में लिखे गए पीडीएफ को जनरेट करने के लिए हरू एक स्वतंत्र, क्रॉस प्लेटफॉर्म, ओपन-सोर्स सॉफ्टवेयर है। यह एक स्थिर-पुस्तकालय (.a, .lib) और एक साझा-पुस्तकालय (.so, .dll) दोनों के रूप में काम कर सकता है।

स्वयं इसे आज़माएं नहीं, लेकिन शायद यह आपकी मदद कर सकता है


क्या हम LibHaru के साथ पीडीएफ फाइलों को पढ़ सकते हैं या हम केवल बना सकते हैं?
रुई कारनेइरो

5
@ रुई: केवल बनाएँ, दुर्भाग्य से।
मार्क रैनसम

2
FWIW, मैंने libHaru ( github.com/pocoproject/poco/tree/master/PDF ) के लिए एक POCO आवरण लिखा है । हमने इसे कभी जारी नहीं किया, लेकिन यह उत्पादन-उत्पादन-कोड कोड है।
एलेक्स

दुर्भाग्य से LibHaru पीडीएफ पढ़ने और संपादन का समर्थन नहीं करता है। इसलिए मेरे लिए बेकार है।
फ्रीज करें

19

मैंने एक परियोजना पर काम किया जिसमें एक पीडीएफ रिपोर्ट की आवश्यकता थी। ऑनलाइन खोज करने के बाद मुझे PoDoFo लाइब्रेरी मिली। बहुत मजबूत लग रहा था। मुझे सभी विशेषताओं की आवश्यकता नहीं थी, इसलिए मैंने कुछ जटिलता को दूर करने के लिए एक आवरण बनाया। बहुत मुश्किल नहीं था। आप पुस्तकालय यहाँ पा सकते हैं:

http://podofo.sourceforge.net/

का आनंद लें!


मैक पर PdDoFo का निर्माण एक बहुत बड़ा दर्द है इसलिए मैंने आखिरकार कोशिश करना छोड़ दिया। लिबहारू का निर्माण बहुत आसान था।

पोडोफ़ो को 2 संकलक मुद्दे मिले, दो फ़ाइलों में #include <चढ़ाई>, <num_limits> जोड़ने के बाद, पैकेज बनाने में सक्षम था। लेकिन किसी भी तरह, cmake सिस्टम मेरे लिनक्स पर अच्छा नहीं खेलता है जहां मेरे पास GCC के दो संस्करण हैं (पुराना वाला मेरे Centos6.5 के साथ आया था, और एक नवीनतम 5.3 जिसे मैं बनाता हूं)। लिंकिंग एक मुद्दा है। मैं हेलोवर्ल्ड को जोड़ने में कामयाब रहा, लेकिन परीक्षण कार्यक्रम ने एक रिक्त दस्तावेज़ तैयार किया। इस समस्या को हल करना बहुत कठिन है।
केमिन झोउ

1
लेकिन पॉडूफो REQUIRES freetype2 लाइब्रेरी जो कि GPL है, LGPL नहींयदि आप अपने स्रोत को सार्वजनिक नहीं करना चाहते हैं तो आप
18C

@ 18C: Freetype वाणिज्यिक बंद स्रोत अनुप्रयोगों में शामिल करने की अनुमति देता है। देखें इस
जन्मजात आशावादी

17

यदि आप बहादुर हैं और अपना स्वयं का रोल करने के लिए तैयार हैं, तो आप पोस्टस्क्रिप्ट लाइब्रेरी के साथ शुरुआत कर सकते हैं और एडोब के मुफ्त ऑनलाइन पीडीएफ संदर्भ का लाभ उठाते हुए पीडीएफ से निपटने के लिए इसे बढ़ा सकते हैं ।


8

पीडीएफ Hummus। http://pdfhummus.com/ के लिए देखें - इसमें रेंडरिंग को छोड़कर पीडीएफ फाइलों के साथ हेरफेर के लिए सभी आवश्यक सुविधाएँ हैं।


1
मैंने हाल ही में हम्मस के साथ एक बड़ा पीडीएफ-एक्सपोर्ट किया है और इसकी सिफारिश कर सकता हूं। संभवतः वर्तमान PDFSpec की सभी विशेषताओं को कवर करने के मामले में पूरा नहीं हुआ है (जो काफी संपूर्ण है), लेकिन कॉलबैक क्लास के माध्यम से कई वर्चुअल फ़ंक्शंस ( github.com/galkahana/PDF-Writer/blob/) के माध्यम से समझने में आसान और अच्छा एक्स्टेंसिबल मास्टर / PDFWriter /… )। इसमें TIFF / JPEG हैंडलिंग और फ़ॉन्ट हैंडलिंग के लिए freetype लाइब्रेरी शामिल है।
RED सॉफ्ट ADAIR

क्या आप इसे गतिशील लिंक्ड लाइब्रेरी के रूप में संकलित कर पाए हैं? या यह सिर्फ स्टैटिक लिंक्ड लाइब्रेरी का समर्थन करता है?
सैम


7

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


5

muPdf पुस्तकालय बहुत आशाजनक लगता है: http://mupdf.com/

एक खुला स्रोत दर्शक भी है: http://blog.kowalczyk.info/software/sumatrapdf/free-pdf-reader.html


1
ऐसा लगता है कि muPdf PDF को रेंडर करने के लिए है, उन्हें उत्पन्न करने के लिए नहीं?
vy32

@ vy32 स्रोत को देखते हुए मैं कहूंगा कि पीडीएफ-फाइलें तैयार करना प्रगति पर सबसे अच्छा काम है और प्राथमिक लक्ष्य नहीं हैmuPdf
matec


1

Wkhtmltopdf आज़माएं

सॉफ्टवेयर सुविधाएँ

क्रॉस प्लेटफॉर्म। खुला स्त्रोत। वेबकिट का उपयोग करके किसी भी वेब पेज को पीडीएफ दस्तावेजों में परिवर्तित करें। आप शीर्ष लेख और पाद लेख जोड़ सकते हैं। TOC पीढ़ी। बैच मोड रूपांतरण। एक xsverver के साथ लिनक्स सर्वर पर चला सकते हैं (X11 क्लाइंट काम स्थापित होना चाहिए)। PHP या Python द्वारा सीधे libwkhtmltox के लिए बाइंडिंग के माध्यम से उपयोग किया जा सकता है।


यह अच्छा है। लेकिन, जैसा कि यह दिनांकित वेबकिट का उपयोग करता है, कुछ पेज शिकायत कर सकते हैं (उदाहरण के लिए यूट्यूब)
swdev

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.