1. Produkter
  2.   PDF
  3.   C++
  4.   PoDoFo
 
  

Gratis C++ API til at oprette, manipulere & parse PDF-filer.

Et førende open source PDF-manipuleringsbibliotek gør det muligt for C++-udviklere nemt at oprette, manipulere, kryptere, håndtere skrifttyper og parse PDF-dokumenter i C++-apps.

Hvad er PoDoFo-biblioteket?

I C++-udviklingens verden er evnen til programmatisk at oprette, ændre og udtrække data fra PDF-filer et almindeligt krav. PoDoFo-biblioteket, et open-source og bærbart C++17-bibliotek, fremstår som en kraftfuld og alsidig løsning til alt inden for PDF. PoDoFo er frit tilgængeligt og er designet til at arbejde med PDF-filformatet. Det gør det muligt for softwareudviklere at parse PDF-filer, inspicere høj‑niveau PDF‑enheder (såsom annotationer og formularfelter), ændre dem i hukommelsen og skrive ændringerne tilbage til disken i deres egne applikationer. Biblioteket gør det også nemt at bygge nye PDF‑filer fra bunden uden eksterne afhængigheder.

PoDoFo er et robust C++-bibliotek, der giver softwareudviklere mulighed for at arbejde med Portable Document Format (PDF) programmatisk. Licenseret under LGPL v2.0 eller senere for biblioteket, og GPL v2.0 eller senere for de tilhørende værktøjer, sikrer PoDoFo-biblioteket fleksibilitet og åbenhed for både kommercielle og open‑source projekter. Det leverer et rigt sæt værktøjer til at parse, manipulere og generere PDF-dokumenter fra bunden. Uanset om du har brug for at automatisere rapportgenerering, udtrække tekst til dataanalyse eller tilføje digitale signaturer for sikkerhed, tilbyder PoDoFo et omfattende og fleksibelt API, der opfylder dine behov.

Previous Next

Kom i gang med PoDoFo

Den anbefalede måde at installere PoDoFo på er ved at bruge CMake. Brug venligst følgende kommando for en problemfri installation.

Installer PPTXTemplater fra GitHub

 vcpkg install fontconfig freetype libxml2 openssl libjpeg-turbo libpng tiff zlib
mkdir build
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake -DCMAKE_BUILD_TYPE=Debug ..
cmake --build . --config Debug

Installer PPTXTemplater fra GitHub

 git clone https://github.com/podofo/podofo.git

Du kan også installere det manuelt; download de seneste udgivelsesfiler direkte fra GitHub-repository.

PDF-oprettelse og -modificering

Det open source PoDoFo-bibliotek har inkluderet fuld support til oprettelse og manipulation af PDF-dokumenter i C++-biblioteket. I sin kerne udmærker PoDoFo sig i at oprette nye PDF-dokumenter og ændre eksisterende. Softwareudviklere kan tilføje nye sider, tegne tekst og indsætte forskellige grafiske elementer, samt åbne krypterede dokumenter med lethed. Det følgende enkle eksempel demonstrerer, hvordan softwareudviklere kan oprette et simpelt PDF-dokument i C++-applikationer

Hvordan opretter man et simpelt PDF via C++-biblioteket?

#include 

using namespace PoDoFo;

int main() {
    PdfStreamedDocument document("HelloWorld.pdf");
    PdfPainter painter;
    PdfPage* pPage;

    try {
        pPage = document.CreatePage(PdfPage::CreateStandardPageSize(ePdfPageSize_A4));
        painter.SetPage(pPage);
        PdfFont* pFont = document.CreateFont("Arial");
        pFont->SetFontSize(18.0);
        painter.SetFont(pFont);
        painter.DrawText(56.69, pPage->GetPageSize().GetHeight() - 56.69, "Hello World!");
        painter.FinishPage();
        document.Close();
    } catch (const PdfError & e) {
        e.PrintErrorMsg();
        return e.GetCode();
    }

    return 0;
}
 

Tekstudtræk fra PDF-filer via C++

PoDoFo-biblioteket har inkluderet en kraftfuld mekanisme til at indlæse og udtrække tekst fra PDF-dokumenter med kun et par linjer C++-kode. Denne funktion er uvurderlig for applikationer, der kræver indholdsindeksering, data mining eller dokumentanalyse. I det følgende kodeeksempel kan udviklere indlæse en PDF i et PdfMemDocument, iterere gennem dets sider og bruge ExtractTextTo-metoden til at hente tekstindholdet.

Hvordan indlæser og udtrækker tekst fra PDF-filer via C++ API?

#include 
using namespace PoDoFo;

PdfMemDocument pdf("document.pdf");
int pageCount = pdf.GetPageCount();
for (int i = 0; i < pageCount; ++i) {
    PdfPage* page = pdf.GetPage(i);
    PdfContentsTokenizer tokenizer(page);

    const char* token = nullptr;
    PdfVariant var;
    EPdfContentsType type;

    while (tokenizer.ReadNext(type, token, var)) {
        if (type == ePdfContentsType_Keyword) {
            printf("Operator: %s\n", token);
        } else if (type == ePdfContentsType_Variant) {
            // Examine var as needed
        }
    }
}

 

Tilføj digitale signaturer til PDF via C++ API?

Sikkerhed er altafgørende, når man håndterer officielle dokumenter. PoDoFo-biblioteket understøtter tilføjelse af digitale signaturer til PDF-filer, hvilket sikrer ægtheden og integriteten af dine dokumenter. Dette er særligt nyttigt for kontrakter, fakturaer og andre juridiske dokumenter. Selvom et fuldt eksempel på digital signatur er komplekst og kræver et gyldigt certifikat, illustrerer den følgende konceptuelle kode processen.

Hvordan tilføjer man en digital signatur til PDF via C++?

 // Conceptual Code - Not a complete working example
#include 

using namespace PoDoFo;

int main() {
    PdfMemDocument document("unsigned.pdf");
    PdfPage* pPage = document.GetPage(0);

    // Create a signature field
    PdfSignatureField sigField(pPage,
        PdfRect(100, pPage->GetPageSize().GetHeight() - 100, 200, 50),
        &document);

    // Set signature properties
    // ...

    // Sign the document using a custom signer implementation
    // MySigner signer("my_certificate.pfx", "password");
    // document.Sign(sigField, signer);

    document.Write("signed.pdf");

    return 0;
}
 

Håndtering af skrifttyper og Unicode-understøttelse

Det gratis PoDoFo-bibliotek giver robust support for forskellige skrifttyper, herunder TrueType- og Type1-skrifter. Biblioteket håndterer også skrifttype‑subsetting, hvilket hjælper med at reducere filstørrelsen på de genererede PDF‑filer. Desuden sikrer det fremragende Unicode‑support, at du kan arbejde med et bredt udvalg af sprog og tegnsæt. Fuld support for PDF‑signering (PAdES‑B‑overensstemmelse), RSA/ECDSA‑kryptering og asynkrone eller udskudte signatur‑arbejdsgange.

 Dansk