Aspose.PDF FOSS for C++ एक ओपन-सोर्स, आधुनिक C++20 लाइब्रेरी है जो PDF दस्तावेज़ों के साथ काम करने के लिए बनाई गई है — PDF खोलना और सहेजना, टेक्स्ट निकालना, पृष्ठों को इमेज फ़ॉर्मेट में रास्टराइज़ करना, और शून्य से दस्तावेज़ बनाना (टेक्स्ट, इमेज, टेबल, वेक्टर ग्राफ़िक्स, एनोटेशन, AcroForm फ़ील्ड, और बुकमार्क)। यह लाइब्रेरी केवल C++ मानक लाइब्रेरी के खिलाफ लिंक करती है: प्रत्येक प्रिमिटिव, जिसमें TIFF, JPEG, और PNG कोडेक्स तथा पेज रास्टराइज़र शामिल हैं, को शून्य से लागू किया गया है और किसी भी व्यावसायिक PDF स्टैक पर निर्भर नहीं है।
कोर API Document क्लास और उसकी Pages() कलेक्शन के इर्द-गिर्द निर्मित है। टेक्स्ट को Aspose::Pdf::Text::TextAbsorber के साथ निकाला जाता है, पृष्ठों को PngDevice, JpegDevice, BmpDevice, और TiffDevice जैसे डिवाइस क्लासों के माध्यम से रास्टर इमेज में रेंडर किया जाता है, और दस्तावेज़ों को Document.Encrypt() द्वारा RC4-40, RC4-128, AES-128, या AES-256 एल्गोरिद्म का उपयोग करके सुरक्षित किया जा सकता है, जो CryptoAlgorithm एनोम के माध्यम से चयनित होते हैं। इंटरैक्टिव फ़ॉर्म फ़ील्ड को Form क्लास के द्वारा प्रबंधित किया जाता है, और एनोटेशन — टेक्स्ट नोट्स, हाइलाइट्स, शैप्स, और स्टैम्प्स — को Annotation क्लास हाइरार्की के माध्यम से जोड़ा और संशोधित किया जाता है।
Aspose.PDF FOSS for C++ MIT लाइसेंस के तहत जारी किया गया है, जिसमें कोई रन-टाइम शुल्क या उपयोग प्रतिबंध नहीं है। यह CMake के द्वारा एक स्टैटिक लाइब्रेरी के रूप में बनता है — इसे अपने बिल्ड की एक सबडायरेक्टरी के रूप में जोड़ें या स्वतंत्र रूप से इंस्टॉल करें — और इसे एक C++20 कंपाइलर की आवश्यकता होती है, बिना किसी अतिरिक्त रन-टाइम डिपेंडेंसी के। एंटरप्राइज़ फीचर्स और समर्थन के लिए देखें Aspose.PDF for C++ — Enterprise Product.
Document के साथ सहेजेंDocument.Pages() (PageCollection) के माध्यम से पृष्ठों तक पहुँचें और उन्हें इटररेट करेंPageCollection.Add()/Insert()/Delete() के साथDocumentInfo (Document.Info()) के माध्यम से दस्तावेज़ मेटाडेटा पढ़ें और सेट करेंDocument.Optimize()/OptimizeResources() के साथ दस्तावेज़ आकार को ऑप्टिमाइज़ करेंAspose::Pdf::Text::TextAbsorber का उपयोग करकेTextAbsorber.Visit() के माध्यम से देखेंTextAbsorber.Text() के माध्यम से प्राप्त करेंTextFragmentAbsorber.TextFragments() के साथ खोजेंPngDevice का उपयोग करेंJpegDevice, BmpDevice, TiffDevice का उपयोग करेंResolution क्लास के साथ नियंत्रित करें{Device}.Process() के माध्यम से प्रोसेस करेंDocument.Encrypt() के साथ दस्तावेज़ एन्क्रिप्ट करेंCryptoAlgorithm एनम के माध्यम से RC4-40, RC4-128, AES-128, या AES-256 चुनेंPermissions प्रकार के साथ प्रदान की गई अनुमतियों को नियंत्रित करेंDocument.Decrypt() के साथ पासवर्ड-संरक्षित दस्तावेज़ डिक्रिप्ट करेंAnnotation और AnnotationCollection के माध्यम से एनोटेशन जोड़ें, संशोधित करें और समतल करेंForm क्लास के माध्यम से AcroForm फ़ील्ड प्रबंधित करेंForm.Add()/Form.Delete() के साथ फ़ील्ड जोड़ें और हटाएँForm.Flatten() का उपयोग करके इंटरैक्टिव फ़ॉर्म को स्थैतिक सामग्री में समतल करेंलाइब्रेरी को CMake सबडायरेक्टरी के रूप में जोड़ें, फिर एक दस्तावेज़ खोलें, उसके पृष्ठों की गिनती करें, TextAbsorber के साथ टेक्स्ट निकालें, और पेज 1 को 150 DPI पर PNG के रूप में रेंडर करें।
add_subdirectory(aspose.pdf-foss-for-cpp)
target_link_libraries(your_app PRIVATE aspose_pdf_foss)
#include <aspose/pdf/document.hpp>
#include <aspose/pdf/page_collection.hpp>
#include <aspose/pdf/text_absorber.hpp>
#include <aspose/pdf/png_device.hpp>
#include <aspose/pdf/resolution.hpp>
#include <fstream>
#include <iostream>
int main() {
Aspose::Pdf::Document doc("input.pdf");
std::cout << "Pages: " << doc.Pages().Count() << "\n";
Aspose::Pdf::Text::TextAbsorber absorber;
absorber.Visit(doc);
std::cout << absorber.Text() << "\n";
Aspose::Pdf::Devices::PngDevice png(Aspose::Pdf::Devices::Resolution(150));
std::ofstream out("page1.png", std::ios::binary);
png.Process(doc.Pages()[1], out);
}
एक दस्तावेज़ खोलें और इसे उपयोगकर्ता और मालिक पासवर्ड के साथ AES-256 एन्क्रिप्शन का उपयोग करके सुरक्षित करें।
#include <aspose/pdf/document.hpp>
int main() {
Aspose::Pdf::Document doc("input.pdf");
doc.Encrypt("user-password", "owner-password",
Aspose::Pdf::Permissions(),
Aspose::Pdf::CryptoAlgorithm::AESx256);
doc.Save("encrypted.pdf");
}
मौजूदा /Info प्रविष्टियों को पढ़ें और DocumentInfo के माध्यम से दस्तावेज़ शीर्षक को अपडेट करें।
#include <aspose/pdf/document.hpp>
#include <aspose/pdf/document_info.hpp>
#include <iostream>
int main() {
Aspose::Pdf::Document doc("input.pdf");
auto& info = doc.Info();
std::cout << "Title: " << info.Title() << "\n";
std::cout << "Author: " << info.Author() << "\n";
doc.SetTitle("Updated Report Title");
doc.Save("output.pdf");
}
यह MIT-लाइसेंस प्राप्त है और व्यावसायिक तथा गैर-व्यावसायिक उत्पादों में उपयोग के लिए मुफ्त है, बिना किसी सक्रियण कुंजी या API कॉल सीमाओं के।
एक C++20 कंपाइलर (clang 16+, gcc 13+, या MSVC 2022 17.5+) और CMake 3.22 या बाद का संस्करण। Python 3 केवल निर्माण समय पर आवश्यक है।
नहीं। यह केवल C++ मानक लाइब्रेरी के विरुद्ध लिंक करता है — रनटाइम पर कोई थर्ड-पार्टी PDF, इमेज, या कंप्रेशन डिपेंडेंसी आवश्यक नहीं है।
यह मूल PDF दस्तावेज़ों को पढ़ता और सहेजता है, और रेंडर किए गए पृष्ठों को Bmp, Jpeg, और Tiff में, साथ ही साधारण टेक्स्ट में निर्यात करता है। SVG सामग्री आयात की जा सकती है।
Document.Encrypt() को एक उपयोगकर्ता पासवर्ड, एक मालिक पासवर्ड, और एक CryptoAlgorithm (RC4x40, RC4x128, AESx128, या AESx256) के साथ कॉल करें।
हाँ — कुछ XmpValue प्रकार-जाँच हेल्पर (IsDateTime, IsField, और समान) स्टब हैं जो हमेशा false लौटाते हैं; इसके बजाय IsString/IsInteger/IsDouble/IsArray का उपयोग करें।