1. उत्पादों
  2.   Aspose.PDF
  3.   Aspose.PDF FOSS for C++

C++ के लिए Aspose.PDF FOSS

ओपन-सोर्स C++ लाइब्रेरी जो PDF दस्तावेज़ों को बनाने, संपादित करने, रेंडर करने और सुरक्षित करने के लिए है, जिसमें शून्य रनटाइम निर्भरताएँ हैं।

Aspose.PDF FOSS — ओपन सोर्स C++ PDF लाइब्रेरी

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.

दस्तावेज़ लोडिंग और पृष्ठ प्रबंधन

  • मौजूदा PDF फ़ाइलें खोलें और संशोधनों को Document के साथ सहेजें
  • Document.Pages() (PageCollection) के माध्यम से पृष्ठों तक पहुँचें और उन्हें इटररेट करें
  • पृष्ठों को जोड़ें, डालें, और हटाएँ PageCollection.Add()/Insert()/Delete() के साथ
  • DocumentInfo (Document.Info()) के माध्यम से दस्तावेज़ मेटाडेटा पढ़ें और सेट करें
  • Document.Optimize()/OptimizeResources() के साथ दस्तावेज़ आकार को ऑप्टिमाइज़ करें

सामान्य उपयोग मामलों

  • रिपोर्ट और इनवॉइस के लिए PDF जनरेशन पाइपलाइन बनाएं
  • मौजूदा PDF दस्तावेज़ों को मर्ज, विभाजित और पुनर्गठित करें
  • प्रोग्रामेटिक रूप से दस्तावेज़ मेटाडेटा की जांच और अपडेट करें
  • आर्काइव या वितरण से पहले PDF फ़ाइल आकार कम करें

पाठ निष्कर्षण

  • एक पूरे दस्तावेज़ से साधारण पाठ निकालें Aspose::Pdf::Text::TextAbsorber का उपयोग करके
  • एकल पृष्ठ या पूरे दस्तावेज़ को TextAbsorber.Visit() के माध्यम से देखें
  • निकाले गए पाठ को TextAbsorber.Text() के माध्यम से प्राप्त करें
  • व्यक्तिगत पाठ अंशों को TextFragmentAbsorber.TextFragments() के साथ खोजें

आम उपयोग मामलों

  • खोज के लिए PDF सामग्री को सूचकांकित करें
  • चालानों और संरचित दस्तावेज़ों से डेटा निकालें
  • टेक्स्ट-खनन या कंटेंट-विश्लेषण पाइपलाइन बनाएं
  • स्वचालित परीक्षण सूट में दस्तावेज़ सामग्री को सत्यापित करें

रेस्टर इमेजेज़ में रेंडरिंग

  • PNG में पृष्ठ रेंडर करने के लिए PngDevice का उपयोग करें
  • JPEG, BMP, या TIFF में पृष्ठ रेंडर करने के लिए JpegDevice, BmpDevice, TiffDevice का उपयोग करें
  • आउटपुट रिज़ॉल्यूशन को Resolution क्लास के साथ नियंत्रित करें
  • एकल पृष्ठ को {Device}.Process() के माध्यम से प्रोसेस करें

आम उपयोग के मामले

  • दस्तावेज़ व्यूअर के लिए पेज थंबनेल बनाएं
  • वेक्टर PDFs से प्रिंट-रेडी रास्टर आउटपुट उत्पन्न करें
  • PDF-से-छवि रूपांतरण सेवाएँ बनाएं
  • उत्पन्न PDFs के लिए विज़ुअल रिग्रेशन बेज़लाइन बनाएं

एन्क्रिप्शन और सुरक्षा

  • एक उपयोगकर्ता और मालिक पासवर्ड का उपयोग करके Document.Encrypt() के साथ दस्तावेज़ एन्क्रिप्ट करें
  • CryptoAlgorithm एनम के माध्यम से RC4-40, RC4-128, AES-128, या AES-256 चुनें
  • Permissions प्रकार के साथ प्रदान की गई अनुमतियों को नियंत्रित करें
  • Document.Decrypt() के साथ पासवर्ड-संरक्षित दस्तावेज़ डिक्रिप्ट करें

सामान्य उपयोग मामलों

  • वितरण से पहले गोपनीय PDF रिपोर्ट की सुरक्षा करें
  • साझा दस्तावेज़ों पर प्रिंट/कॉपी/एडिट प्रतिबंध लागू करें
  • जनरेट किए गए इनवॉइस और स्टेटमेंट्स में पासवर्ड सुरक्षा जोड़ें
  • दस्तावेज़ पाइपलाइन का हिस्सा के रूप में दस्तावेज़ों को बैच-एन्क्रिप्ट करें

एनोटेशन और इंटरैक्टिव फ़ॉर्म

  • Annotation और AnnotationCollection के माध्यम से एनोटेशन जोड़ें, संशोधित करें और समतल करें
  • Form क्लास के माध्यम से AcroForm फ़ील्ड प्रबंधित करें
  • Form.Add()/Form.Delete() के साथ फ़ील्ड जोड़ें और हटाएँ
  • Form.Flatten() का उपयोग करके इंटरैक्टिव फ़ॉर्म को स्थैतिक सामग्री में समतल करें

सामान्य उपयोग मामलों

  • साझा PDFs में समीक्षा टिप्पणियाँ और हाइलाइट जोड़ें
  • डेटा संग्रह के लिए भरने योग्य PDF फ़ॉर्म बनाएं
  • संग्रहण से पहले सबमिट किए गए फ़ॉर्म को फ़्लैट करें
  • प्रोग्रामेटिक रूप से फ़ॉर्म फ़ील्ड को पूर्व-भरे और लॉक करें

PDF खोलें, टेक्स्ट निकालें, और एक पेज रेंडर करें

लाइब्रेरी को 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 के साथ एक दस्तावेज़ को एन्क्रिप्ट करें

एक दस्तावेज़ खोलें और इसे उपयोगकर्ता और मालिक पासवर्ड के साथ 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");
}

अक्सर पूछे जाने वाले प्रश्न

Aspose.PDF FOSS for C++ के लिए लाइसेंसिंग मॉडल क्या है?

यह MIT-लाइसेंस प्राप्त है और व्यावसायिक तथा गैर-व्यावसायिक उत्पादों में उपयोग के लिए मुफ्त है, बिना किसी सक्रियण कुंजी या API कॉल सीमाओं के।

किस कंपाइलर और CMake संस्करणों की आवश्यकता है?

एक C++20 कंपाइलर (clang 16+, gcc 13+, या MSVC 2022 17.5+) और CMake 3.22 या बाद का संस्करण। Python 3 केवल निर्माण समय पर आवश्यक है।

क्या लाइब्रेरी में कोई रनटाइम निर्भरताएँ हैं?

नहीं। यह केवल C++ मानक लाइब्रेरी के विरुद्ध लिंक करता है — रनटाइम पर कोई थर्ड-पार्टी PDF, इमेज, या कंप्रेशन डिपेंडेंसी आवश्यक नहीं है।

यह कौन-से फ़ॉर्मेट पढ़ सकता है और निर्यात कर सकता है?

यह मूल PDF दस्तावेज़ों को पढ़ता और सहेजता है, और रेंडर किए गए पृष्ठों को Bmp, Jpeg, और Tiff में, साथ ही साधारण टेक्स्ट में निर्यात करता है। SVG सामग्री आयात की जा सकती है।

मैं PDF दस्तावेज़ को कैसे एन्क्रिप्ट करूँ?

Document.Encrypt() को एक उपयोगकर्ता पासवर्ड, एक मालिक पासवर्ड, और एक CryptoAlgorithm (RC4x40, RC4x128, AESx128, या AESx256) के साथ कॉल करें।

क्या वर्तमान रिलीज़ में कोई ज्ञात सीमाएँ हैं?

हाँ — कुछ XmpValue प्रकार-जाँच हेल्पर (IsDateTime, IsField, और समान) स्टब हैं जो हमेशा false लौटाते हैं; इसके बजाय IsString/IsInteger/IsDouble/IsArray का उपयोग करें।

  

समर्थन और सीखने के संसाधन

 हिन्दी