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.
Document segítségévelDocument.Pages() (PageCollection) segítségévelPageCollection.Add()/Insert()/Delete() segítségévelDocumentInfo (Document.Info()) segítségévelDocument.Optimize()/OptimizeResources() segítségévelAspose::Pdf::Text::TextAbsorber segítségévelTextAbsorber.Visit() segítségévelTextAbsorber.Text() segítségével szerezze megTextFragmentAbsorber.TextFragments() segítségével találja megPngDevice → Készítsen oldalakat PNG formátumba a PngDevice használatávalJpegDevice, BmpDevice, TiffDevice → Készítsen oldalakat JPEG, BMP vagy TIFF formátumba a JpegDevice, BmpDevice, TiffDevice használatávalResolution class → Az kimeneti felbontást a Resolution osztállyal szabályozhatja{Device}.Process() → Egyetlen oldalt a {Device}.Process() segítségével dolgozhat felDocument.Encrypt() használatával felhasználói és tulajdonosi jelszóvalCryptoAlgorithm enum segítségévelPermissions típussalDocument.Decrypt() segítségévelAnnotation és AnnotationCollection segítségévelForm osztály segítségével kezelhetiForm.Add()/Form.Delete() használatával mezőket adhat hozzá és távolíthat elForm.Flatten() segítségével lapíthatja az interaktív űrlapokat statikus tartalommá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);
}
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");
}
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");
}
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.
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.
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.
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ó.
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).
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.