1. Termékek
  2.   Aspose.PDF
  3.   Aspose.PDF FOSS for C++

Aspose.PDF FOSS C++ platformhoz

Nyílt forráskódú C++ könyvtár PDF dokumentumok létrehozásához, szerkesztéséhez, rendereléséhez és védelméhez, nulla futásidejű függőséggel.

Aspose.PDF FOSS — nyílt forráskódú C++ PDF könyvtár

Aspose.PDF FOSS for C++ egy nyílt forráskódú, modern C++20 könyvtár PDF dokumentumokkal való munkához — PDF-ek megnyitása és mentése, szöveg kinyerése, oldalak raszterizálása képfájlformátumokra, és dokumentumok építése a semmiből (szöveg, képek, táblázatok, vektorgrafikák, annotációk, AcroForm mezők és könyvjelzők). A könyvtár csak a C++ szabványos könyvtárra hivatkozik: minden primitív, beleértve a TIFF, JPEG és PNG kodekeket és az oldalraszterizálót, teljesen saját implementáció, semmilyen kereskedelmi PDF stackre való függőség nélkül.

A core API a Document osztály és annak Pages() gyűjteménye köré épül. A szöveget a Aspose::Pdf::Text::TextAbsorber segítségével nyerik ki, az oldalakat raszteres képekké renderelik olyan eszközosztályokkal, mint a PngDevice, JpegDevice, BmpDevice és TiffDevice, és a dokumentumok Document.Encrypt() metódussal biztosíthatók RC4-40, RC4-128, AES-128 vagy AES-256 algoritmusokkal, amelyeket a CryptoAlgorithm enum határoz meg. Az interaktív űrlapmezőket a Form osztály kezeli, és az annotációkat — szöveges jegyzetek, kiemelések, alakzatok és bélyegek — a Annotation osztályhierarchián keresztül adják hozzá és módosítják.

Aspose.PDF FOSS for C++ az MIT licenc alatt kerül kiadásra, futásidejű díjak vagy használati korlátozások nélkül. Statikus könyvtárként épül CMake segítségével — add hozzá a build alkönyvtáraként vagy telepítsd önállóan — és C++20 fordítót igényel további futásidejű függőségek nélkül. Vállalati funkciók és támogatás esetén lásd a Aspose.PDF for C++ — Enterprise Product oldalt.

Dokumentum betöltése és oldalkezelés

  • Nyissa meg a meglévő PDF-fájlokat, és mentse a módosításokat a Document segítségével
  • Hozzáférés és az oldalak bejárása a Document.Pages() (PageCollection) segítségével
  • Oldalak hozzáadása, beszúrása és törlése a PageCollection.Add()/Insert()/Delete() segítségével
  • Dokumentum metaadatai olvasása és beállítása a DocumentInfo (Document.Info()) segítségével
  • Dokumentum méretének optimalizálása a Document.Optimize()/OptimizeResources() segítségével

Tipikus felhasználási esetek

  • PDF generálási csővezetékek létrehozása jelentésekhez és számlákhoz
  • Meglévő PDF dokumentumok egyesítése, felosztása és újraszervezése
  • Programozottan ellenőrizni és frissíteni a dokumentum metaadatait
  • PDF fájlméret csökkentése archiválás vagy terjesztés előtt

Szövegkinyerés

  • Egész dokumentumból nyerjen ki egyszerű szöveget a Aspose::Pdf::Text::TextAbsorber segítségével
  • Egyetlen oldalt vagy az egész dokumentumot látogassa meg a TextAbsorber.Visit() segítségével
  • A kinyert szöveget a TextAbsorber.Text() segítségével szerezze meg
  • Az egyes szövegrészeket a TextFragmentAbsorber.TextFragments() segítségével találja meg

Tipikus felhasználási esetek

  • PDF tartalom indexelése kereséshez
  • Adatok kinyerése számlákból és strukturált dokumentumokból
  • Szövegbányászati vagy tartalomelemzési folyamatok felépítése
  • Dokumentumtartalom ellenőrzése automatizált tesztesetekben

Renderelés raster képekre

  • Render pages to PNG with PngDevice → Készítsen oldalakat PNG formátumba a PngDevice használatával
  • Render pages to JPEG, BMP, or TIFF with JpegDevice, BmpDevice, TiffDevice → Készítsen oldalakat JPEG, BMP vagy TIFF formátumba a JpegDevice, BmpDevice, TiffDevice használatával
  • Control output resolution with the Resolution class → Az kimeneti felbontást a Resolution osztállyal szabályozhatja
  • Process a single page via {Device}.Process() → Egyetlen oldalt a {Device}.Process() segítségével dolgozhat fel

Tipikus felhasználási esetek

  • Oldal bélyegképek generálása egy dokumentumnézőhöz
  • Nyomtatásra kész raszteres kimenet előállítása vektor PDF-ekből
  • PDF-kép konverziós szolgáltatások építése
  • Vizuális regressziós alapvonalak létrehozása a generált PDF-ekhez

Titkosítás és biztonság

  • Titkosítsa a dokumentumokat a Document.Encrypt() használatával felhasználói és tulajdonosi jelszóval
  • Válasszon RC4-40, RC4-128, AES-128 vagy AES-256 algoritmust a CryptoAlgorithm enum segítségével
  • Szabályozza a megadott jogosultságokat a Permissions típussal
  • Dekódolja a jelszóval védett dokumentumokat a Document.Decrypt() segítségével

Tipikus felhasználási esetek

  • Védje meg a bizalmas PDF jelentéseket a terjesztés előtt
  • Kényszerítse a nyomtatás/másolás/szerkesztés korlátozásait a megosztott dokumentumokon
  • Jelszóval védje a generált számlákat és kimutatásokat
  • Csoportosan titkosítsa a dokumentumokat egy dokumentumfolyamat részeként

Megjegyzések és interaktív űrlapok

  • Hozzáadhat, módosíthat és lapíthat megjegyzéseket a Annotation és AnnotationCollection segítségével
  • Az AcroForm mezőket a Form osztály segítségével kezelheti
  • Form.Add()/Form.Delete() használatával mezőket adhat hozzá és távolíthat el
  • Form.Flatten() segítségével lapíthatja az interaktív űrlapokat statikus tartalommá

Tipikus felhasználási esetek

  • Hozzáadja a felülvizsgálati megjegyzéseket és kiemeléseket a megosztott PDF-ekhez
  • Kitölthető PDF-űrlapok létrehozása adatgyűjtéshez
  • A benyújtott űrlapok laposítása archiválás előtt
  • Programozottan előre kitölti és zárolja az űrlapmezőket

PDF megnyitása, szöveg kinyerése és oldal renderelése

Add a könyvtárat CMake alkönyvtárként, majd nyiss meg egy dokumentumot, számold meg az oldalait, vonj ki szöveget a TextAbsorber segítségével, és rendereld az 1. oldalt PNG formátumban 150 DPI-n.

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

Dokumentum titkosítása AES-256-tal

Nyisson meg egy dokumentumot, és védje felhasználói és tulajdonosi jelszóval AES-256 titkosítással.

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

Dokumentum metaadatok olvasása és frissítése

Olvassa el a meglévő /Info bejegyzéseket, és frissítse a dokumentum címét a DocumentInfo segítségével.

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

Gyakran ismételt kérdések

Mi a Aspose.PDF FOSS for C++ licencelési modellje?

MIT licenc alatt áll, és ingyenesen használható kereskedelmi és nem kereskedelmi termékekben, aktivációs kulcs vagy API hívási korlát nélkül.

Milyen fordító és CMake verziók szükségesek?

C++20 fordító (clang 16+, gcc 13+, vagy MSVC 2022 17.5+) és CMake 3.22 vagy újabb. Python 3 csak fordítási időben szükséges.

Van a könyvtárnak bármilyen futásidejű függősége?

Nem. Csak a C++ standard library-hez linkel — nem szükséges semmilyen harmadik féltől származó PDF, kép vagy tömörítési függőség a futásidőben.

Milyen formátumokat tud olvasni és exportálni?

Natív PDF dokumentumokat olvas és ment, valamint renderelt oldalakat exportál Bmp, Jpeg és Tiff formátumba, illetve egyszerű szövegként. SVG tartalom importálható.

Hogyan titkosíthatok egy PDF-dokumentumot?

Hívja meg a Document.Encrypt() függvényt egy felhasználói jelszóval, egy tulajdonosi jelszóval és egy CryptoAlgorithm-mal (RC4x40, RC4x128, AESx128 vagy AESx256).

Vannak ismert korlátozások az aktuális kiadásban?

Igen — néhány XmpValue típusellenőrző segédfüggvény (IsDateTime, IsField és hasonlók) csak álszerkezet, amelyek mindig hamis értéket adnak vissza; használd az IsString/IsInteger/IsDouble/IsArray-t helyette.

  

Támogatás és tanulási források

 Magyar