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

Aspose.PDF FOSS för C++

Öppen källkod C++-bibliotek för att skapa, redigera, rendera och säkra PDF-dokument utan några körningsberoenden.

Aspose.PDF FOSS — Open Source C++ PDF-bibliotek

Aspose.PDF FOSS for C++ är ett open-source, modernt C++20-bibliotek för att arbeta med PDF-dokument — öppna och spara PDF-filer, extrahera text, rasterisera sidor till bildformat och bygga dokument från grunden (text, bilder, tabeller, vektorgrafik, anteckningar, AcroForm-fält och bokmärken). Biblioteket länkar endast mot C++-standardbiblioteket: varje primitiv, inklusive TIFF-, JPEG- och PNG-codecs samt sidrasterisatorn, är implementerad från grunden utan beroende av någon kommersiell PDF-stack.

Kärnan API är byggd kring Document-klassen och dess Pages()-samling. Text extraheras med Aspose::Pdf::Text::TextAbsorber, sidor renderas till rasterbilder via enhetsklasser som PngDevice, JpegDevice, BmpDevice och TiffDevice, och dokument kan skyddas med Document.Encrypt() med RC4-40, RC4-128, AES-128 eller AES-256-algoritmer som väljs via enumen CryptoAlgorithm. Interaktiva formulärfält hanteras via Form-klassen, och anteckningar — textnoteringar, markeringar, former och stämplar — läggs till och modifieras via Annotation-klasshierarkin.

Aspose.PDF FOSS for C++ släpps under MIT-licensen utan runtime-avgifter eller användningsrestriktioner. Det byggs som ett statiskt bibliotek via CMake — lägg till det som en underkatalog i ditt bygge eller installera det fristående — och kräver en C++20-kompilator utan andra runtime-beroenden. För företagsfunktioner och support, se Aspose.PDF for C++ — Enterprise Product.

Dokumentladdning och sidhantering

  • Öppna befintliga PDF-filer och spara ändringar med Document
  • Kom åt och iterera sidor via Document.Pages() (PageCollection)
  • Lägg till, infoga och ta bort sidor med PageCollection.Add()/Insert()/Delete()
  • Läs och ange dokumentmetadata via DocumentInfo (Document.Info())
  • Optimera dokumentstorlek med Document.Optimize()/OptimizeResources()

Typiska användningsområden

  • Bygg PDF-genereringspipeline för rapporter och fakturor
  • Slå samman, dela och omorganisera befintliga PDF-dokument
  • Programmässigt inspektera och uppdatera dokumentmetadata
  • Reducera PDF-filens storlek före arkivering eller distribution

Textutdrag

  • Extrahera ren text från ett helt dokument med Aspose::Pdf::Text::TextAbsorber
  • Besök en enskild sida eller hela dokumentet via TextAbsorber.Visit()
  • Hämta extraherad text genom TextAbsorber.Text()
  • Lokalisera enskilda textfragment med TextFragmentAbsorber.TextFragments()

Typiska användningsfall

  • Indexera PDF-innehåll för sökning
  • Extrahera data från fakturor och strukturerade dokument
  • Bygg text-mining- eller innehållsanalys-pipelines
  • Verifiera dokumentinnehåll i automatiska testsatser

Rendering till rasterbilder

  • Rendera sidor till PNG med PngDevice
  • Rendera sidor till JPEG, BMP eller TIFF med JpegDevice, BmpDevice, TiffDevice
  • Styr utskriftsupplösning med Resolution-klassen
  • Bearbeta en enskild sida via {Device}.Process()

Typiska användningsområden

  • Generera sidminiatyrer för en dokumentvisare
  • Producera utskriftsklar rasterutdata från vektor-PDF-filer
  • Bygg PDF-till-bild konverteringstjänster
  • Skapa visuella regressionsbaslinjer för genererade PDF-filer

Kryptering och säkerhet

  • Kryptera dokument med Document.Encrypt() med ett användar- och ägarlösenord
  • Välj RC4-40, RC4-128, AES-128 eller AES-256 via CryptoAlgorithm-enumet
  • Styr beviljade behörigheter med Permissions-typen
  • Dekryptera lösenordsskyddade dokument med Document.Decrypt()

Typiska användningsområden

  • Skydda konfidentiella PDF-rapporter innan distribution
  • Tvinga på utskrifts-/kopierings-/redigeringsrestriktioner på delade dokument
  • Lägg till lösenordsskydd för genererade fakturor och kontoutdrag
  • Batch-kryptera dokument som en del av en dokumentpipeline

Anmärkningar och interaktiva formulär

  • Lägg till, ändra och platta ut annoteringar via Annotation och AnnotationCollection
  • Hantera AcroForm-fält via Form-klassen
  • Lägg till och ta bort fält med Form.Add()/Form.Delete()
  • Platta ut interaktiva formulär till statiskt innehåll med Form.Flatten()

Typiska användningsfall

  • Lägg till granskningskommentarer och markeringar i delade PDF-filer
  • Skapa ifyllbara PDF-formulär för datainsamling
  • Platta till inskickade formulär innan arkivering
  • Programmera för att förifylla och låsa formulärfält

Öppna en PDF, extrahera text och rendera en sida

Lägg till biblioteket som en CMake-undermapp, öppna sedan ett dokument, räkna dess sidor, extrahera text med TextAbsorber och rendera sida 1 till PNG med 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);
}

Kryptera ett dokument med AES-256

Öppna ett dokument och skydda det med ett användar- och ägarlösenord med AES-256-kryptering.

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

Läs och uppdatera dokumentmetadata

Läs befintliga /Info-poster och uppdatera dokumenttiteln via 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");
}

Vanliga Frågor

Vad är licensieringsmodellen för Aspose.PDF FOSS for C++?

Den är MIT-licensierad och fri att använda i kommersiella och icke-kommersiella produkter, utan någon aktiveringsnyckel eller API anropsgränser.

Vilken kompilator och vilka CMake-versioner krävs?

En C++20-kompilator (clang 16+, gcc 13+ eller MSVC 2022 17.5+) och CMake 3.22 eller senare. Python 3 krävs endast vid byggetiden.

Har biblioteket några körningsberoenden?

Nej. Den länkar bara mot C++ standardbiblioteket — ingen tredjeparts-PDF, bild eller komprimeringsberoende krävs vid körning.

Vilka format kan den läsa och exportera?

Den läser och sparar inhemska PDF-dokument, och exporterar renderade sidor till Bmp, Jpeg och Tiff, samt vanlig text. SVG-innehåll kan importeras.

Hur krypterar jag ett PDF-dokument?

Anropa Document.Encrypt() med ett användarlösenord, ett ägarlösenord och en CryptoAlgorithm (RC4x40, RC4x128, AESx128 eller AESx256).

Finns det några kända begränsningar i den aktuella versionen?

Ja — några XmpValue-typkontrolleringshjälpare (IsDateTime, IsField och liknande) är stubbar som alltid returnerar false; använd IsString/IsInteger/IsDouble/IsArray istället.

  

Stöd och Lärande Resurser

 Svenska