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

Aspose.PDF FOSS pro C++

Open-source C++ knihovna pro vytváření, úpravu, vykreslování a zabezpečování PDF dokumentů bez runtime závislostí.

Aspose.PDF FOSS — Open Source C++ PDF knihovna

Aspose.PDF FOSS for C++ je open-source, moderní knihovna C++20 pro práci s PDF dokumenty — otevírání a ukládání PDF, extrahování textu, rasterizaci stránek do obrazových formátů a vytváření dokumentů od nuly (text, obrázky, tabulky, vektorová grafika, anotace, pole AcroForm a záložky). Knihovna se váže pouze na standardní knihovnu C++: každý primitivní prvek, včetně kodeků TIFF, JPEG a PNG a rasterizátoru stránek, je implementován od začátku bez závislosti na jakémkoli komerčním PDF stacku.

Jádro API je postaveno kolem třídy Document a její kolekce Pages(). Text se extrahuje pomocí Aspose::Pdf::Text::TextAbsorber, stránky se renderují do rastrových obrázků pomocí zařízení jako PngDevice, JpegDevice, BmpDevice a TiffDevice a dokumenty lze zabezpečit pomocí Document.Encrypt() s algoritmy RC4-40, RC4-128, AES-128 nebo AES-256, které se vybírají přes výčtový typ CryptoAlgorithm. Interaktivní formulářová pole jsou spravována třídou Form a anotace — textové poznámky, zvýraznění, tvary a razítka — se přidávají a upravují prostřednictvím hierarchie tříd Annotation.

Aspose.PDF FOSS for C++ je vydáno pod licencí MIT bez poplatků za běh ani omezení používání. Vytváří se jako statická knihovna pomocí CMake — přidejte ji jako podadresář vašeho buildu nebo ji nainstalujte samostatně — a vyžaduje kompilátor C++20 bez dalších runtime závislostí. Pro podnikové funkce a podporu navštivte Aspose.PDF for C++ — Enterprise Product.

Načítání dokumentu a správa stránek

  • Otevřete existující PDF soubory a uložte úpravy pomocí Document
  • Přistupujte k stránkám a procházejte je pomocí Document.Pages() (PageCollection)
  • Přidávejte, vkládejte a odstraňujte stránky pomocí PageCollection.Add()/Insert()/Delete()
  • Čtěte a nastavujte metadata dokumentu přes DocumentInfo (Document.Info())
  • Optimalizujte velikost dokumentu pomocí Document.Optimize()/OptimizeResources()

Typické případy použití

  • Vytvářejte pipeline pro generování PDF pro zprávy a faktury
  • Sloučujte, rozdělujte a reorganizujte existující PDF dokumenty
  • Programově kontrolujte a aktualizujte metadata dokumentů
  • Snižte velikost souboru PDF před archivací nebo distribucí

Extrahování textu

  • Extrahujte prostý text z celého dokumentu pomocí Aspose::Pdf::Text::TextAbsorber
  • Navštivte jednu stránku nebo celý dokument pomocí TextAbsorber.Visit()
  • Získejte extrahovaný text přes TextAbsorber.Text()
  • Najděte jednotlivé textové fragmenty pomocí TextFragmentAbsorber.TextFragments()

Typické případy použití

  • Indexovat obsah PDF pro vyhledávání
  • Extrahovat data z faktur a strukturovaných dokumentů
  • Vytvářet pipeline pro text-mining nebo analýzu obsahu
  • Ověřovat obsah dokumentů v automatizovaných testovacích sadách

Vykreslování do rastrových obrázků

  • Vykreslete stránky do PNG pomocí PngDevice
  • Vykreslete stránky do JPEG, BMP nebo TIFF pomocí JpegDevice, BmpDevice, TiffDevice
  • Ovládejte rozlišení výstupu pomocí třídy Resolution
  • Zpracujte jednu stránku pomocí {Device}.Process()

Typické případy použití

  • Vytvořit miniatury stránek pro prohlížeč dokumentů
  • Vygenerovat tiskové rasterové výstupy z vektorových PDF
  • Vytvořit služby konverze PDF na obrázek
  • Vytvořit vizuální regresní základny pro generované PDF

Šifrování a zabezpečení

  • Zašifrujte dokumenty pomocí Document.Encrypt() s uživatelským a vlastníckým heslem
  • Vyberte RC4-40, RC4-128, AES-128 nebo AES-256 pomocí výčtu CryptoAlgorithm
  • Řiďte udělená oprávnění pomocí typu Permissions
  • Dešifrujte dokumenty chráněné heslem pomocí Document.Decrypt()

Typické případy použití

  • Chraňte důvěrné PDF zprávy před distribucí
  • Vynutí omezení tisku/kopírování/úprav na sdílených dokumentech
  • Přidejte ochranu heslem k vygenerovaným fakturám a výpisům
  • Hromadně šifrujte dokumenty jako součást dokumentového pracovního postupu

Poznámky a interaktivní formuláře

  • Přidávejte, upravujte a zplošťujte anotace pomocí Annotation a AnnotationCollection
  • Spravujte pole AcroForm pomocí třídy Form
  • Přidávejte a odstraňujte pole pomocí Form.Add()/Form.Delete()
  • Zploštěte interaktivní formuláře na statický obsah pomocí Form.Flatten()

Typické případy použití

  • Přidávejte recenzní komentáře a zvýraznění do sdílených PDF
  • Vytvářejte vyplnitelné PDF formuláře pro sběr dat
  • Zploštěte odeslané formuláře před archivací
  • Programově předvyplňujte a zamkněte pole formuláře

Otevřete PDF, extrahujte text a vykreslete stránku

Přidejte knihovnu jako podadresář CMake, poté otevřete dokument, spočítejte jeho stránky, extrahujte text pomocí TextAbsorber a vykreslete stránku 1 do PNG při 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);
}

Zašifrovat dokument pomocí AES-256

Otevřete dokument a ochraňte jej uživatelským a vlastnickým heslem pomocí šifrování 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");
}

Číst a aktualizovat metadata dokumentu

Přečtěte existující položky /Info a aktualizujte název dokumentu pomocí 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");
}

Často kladené dotazy

Jaký je licenční model pro Aspose.PDF FOSS for C++?

Je licencováno pod MIT a je zdarma k použití v komerčních i nekomerčních produktech, bez aktivačního klíče nebo omezení volání API.

Jaké verze kompilátoru a CMake jsou vyžadovány?

Kompilátor C++20 (clang 16+, gcc 13+ nebo MSVC 2022 17.5+) a CMake 3.22 nebo novější. Python 3 je vyžadován pouze během sestavení.

Má knihovna nějaké runtime závislosti?

Ne. Propojuje se pouze se standardní knihovnou C++ — není vyžadována žádná třetí strana PDF, obrázková ani kompresní závislost za běhu.

Jaké formáty může číst a exportovat?

Čte a ukládá nativní PDF dokumenty a exportuje vykreslené stránky do Bmp, Jpeg a Tiff, plus prostý text. Obsah SVG lze importovat.

Jak zašifruji PDF dokument?

Zavolejte Document.Encrypt() s uživatelským heslem, heslem vlastníka a CryptoAlgorithm (RC4x40, RC4x128, AESx128 nebo AESx256).

Existují nějaká známá omezení v aktuálním vydání?

Ano — několik pomocných funkcí pro kontrolu typu XmpValue (IsDateTime, IsField a podobně) jsou pouze zástupci, kteří vždy vrací false; místo nich použijte IsString/IsInteger/IsDouble/IsArray.

  

Podpora a vzdělávací materiály

 Čeština