1. Produse
  2.   Aspose.PDF
  3.   Aspose.PDF FOSS for C++

Aspose.PDF FOSS pentru C++

Bibliotecă C++ open-source pentru crearea, editarea, redarea și securizarea documentelor PDF fără dependențe la runtime.

Aspose.PDF FOSS — Bibliotecă PDF C++ cu sursă deschisă

Aspose.PDF FOSS for C++ este o bibliotecă open-source, modernă C++20 pentru lucrul cu documente PDF — deschiderea și salvarea PDF-urilor, extragerea textului, rasterizarea paginilor în formate de imagine și construirea documentelor de la zero (text, imagini, tabele, grafică vectorială, adnotări, câmpuri AcroForm și semne de carte). Biblioteca se leagă doar de biblioteca standard C++: fiecare primitiv, inclusiv codecurile TIFF, JPEG și PNG și rasterizatorul de pagină, este implementat de la zero fără dependență de niciun stiv PDF comercial.

Componenta de bază API este construită în jurul clasei Document și a colecției sale Pages(). Textul este extras cu Aspose::Pdf::Text::TextAbsorber, paginile sunt redate în imagini raster prin clase de dispozitiv cum ar fi PngDevice, JpegDevice, BmpDevice și TiffDevice, iar documentele pot fi securizate cu Document.Encrypt() utilizând algoritmii RC4-40, RC4-128, AES-128 sau AES-256 selectați prin enumul CryptoAlgorithm. Câmpurile de formular interactive sunt gestionate prin clasa Form, iar adnotările — note text, evidențieri, forme și ștampile — sunt adăugate și modificate prin ierarhia de clase Annotation.

Aspose.PDF FOSS for C++ este lansat sub licența MIT fără taxe de rulare sau restricții de utilizare. Se compilează ca bibliotecă statică prin CMake — adăugați-l ca subdirector al construcției dvs. sau instalați-l independent — și necesită un compilator C++20 fără alte dependențe de runtime. Pentru funcționalități și suport enterprise, vedeți Aspose.PDF for C++ — Enterprise Product.

Încărcarea documentului și gestionarea paginilor

  • Deschide fișiere PDF existente și salvează modificările cu Document
  • Accesează și iterează paginile prin Document.Pages() (PageCollection)
  • Adaugă, inserează și șterge pagini cu PageCollection.Add()/Insert()/Delete()
  • Citește și setează metadatele documentului prin DocumentInfo (Document.Info())
  • Optimizează dimensiunea documentului cu Document.Optimize()/OptimizeResources()

Cazuri tipice de utilizare

  • Construiește fluxuri de generare PDF pentru rapoarte și facturi
  • Fuzionează, împarte și reorganizează documentele PDF existente
  • Inspectează și actualizează programatic metadatele documentului
  • Redu dimensiunea fișierului PDF înainte de arhivare sau distribuție

Extracție de text

  • Extrage text simplu dintr-un document întreg cu Aspose::Pdf::Text::TextAbsorber
  • Accesează o singură pagină sau întregul document prin TextAbsorber.Visit()
  • Recuperează textul extras prin TextAbsorber.Text()
  • Găsește fragmente individuale de text cu TextFragmentAbsorber.TextFragments()

Cazuri tipice de utilizare

  • Indexați conținutul PDF pentru căutare
  • Extrageți date din facturi și documente structurate
  • Construiți pipeline-uri de text-mining sau analiză de conținut
  • Verificați conținutul documentului în suite de teste automate

Redare în imagini raster

  • Redă paginile în PNG cu PngDevice
  • Redă paginile în JPEG, BMP sau TIFF cu JpegDevice, BmpDevice, TiffDevice
  • Controlează rezoluția de ieșire cu clasa Resolution
  • Procesează o singură pagină prin {Device}.Process()

Cazuri de utilizare tipice

  • Generează miniaturi de pagină pentru un vizualizator de documente
  • Produce ieșire raster pregătită pentru tipărire din PDF-uri vectoriale
  • Construiește servicii de conversie PDF-la-imagine
  • Creează linii de bază pentru regresia vizuală a PDF-urilor generate

Criptare și securitate

  • Criptează documentele cu Document.Encrypt() utilizând o parolă de utilizator și de proprietar
  • Alege RC4-40, RC4-128, AES-128 sau AES-256 prin enumul CryptoAlgorithm
  • Controlează permisiunile acordate cu tipul Permissions
  • Decriptează documentele protejate prin parolă cu Document.Decrypt()

Cazuri tipice de utilizare

  • Protejați rapoartele PDF confidențiale înainte de distribuție
  • Impuneți restricții de tipărire/copiere/editare asupra documentelor partajate
  • Adăugați protecție prin parolă la facturile și extrasele generate
  • Criptați în lot documentele ca parte a unui flux de lucru al documentelor

Adnotări și Formulare Interactive

  • Adăugați, modificați și aplatizați adnotările prin Annotation și AnnotationCollection
  • Gestionați câmpurile AcroForm prin clasa Form
  • Adăugați și eliminați câmpuri cu Form.Add()/Form.Delete()
  • Aplatizați formularele interactive în conținut static cu Form.Flatten()

Cazuri tipice de utilizare

  • Adăugați comentarii de revizuire și evidențieri la PDF-urile partajate
  • Creați formulare PDF completabile pentru colectarea datelor
  • Aplatizați formularele trimise înainte de arhivare
  • Completați și blocați programatic câmpurile formularului

Deschideți un PDF, Extrageți Text și Redați o Pagină

Adăugați biblioteca ca subdirector CMake, apoi deschideți un document, numărați paginile sale, extrageți textul cu TextAbsorber și redați pagina 1 în PNG la 150 DPI.

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);
}

Criptați un Document cu AES-256

Deschideți un document și protejați-l cu o parolă de utilizator și una de proprietar utilizând criptarea 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");
}

Citește și actualizează metadatele documentului

Citește intrările existente /Info și actualizează titlul documentului prin 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");
}

Întrebări Frecvente

Care este modelul de licențiere pentru Aspose.PDF FOSS for C++?

Este licențiat sub MIT și este gratuit pentru utilizare în produse comerciale și necomerciale, fără cheie de activare sau limitări ale apelurilor API.

Ce versiuni de compilator și CMake sunt necesare?

Un compilator C++20 (clang 16+, gcc 13+, sau MSVC 2022 17.5+) și CMake 3.22 sau o versiune ulterioară. Python 3 este necesar doar în timpul construirii.

Are biblioteca dependențe la rulare?

Nu. Se leagă doar de biblioteca standard C++ — nu este necesară nicio dependență terță parte pentru PDF, imagine sau comprimare la rulare.

Ce formate poate citi și exporta?

Citește și salvează documente PDF native și exportă paginile randate în Bmp, Jpeg și Tiff, plus text simplu. Conținutul SVG poate fi importat.

Cum criptez un document PDF?

Apelaţi Document.Encrypt() cu o parolă de utilizator, o parolă de proprietar şi un CryptoAlgorithm (RC4x40, RC4x128, AESx128 sau AESx256).

Există limitări cunoscute în versiunea curentă?

Da — câțiva ajutoare de verificare a tipului XmpValue (IsDateTime, IsField și altele) sunt stuburi care întotdeauna returnează false; folosiți IsString/IsInteger/IsDouble/IsArray în schimb.

  

Resurse de Suport și Învățare

 Română