Gratis C++ API om PDF-bestanden te maken, bewerken en parseren.
Een toonaangevende open source PDF-bewerkingsbibliotheek stelt C++-ontwikkelaars in staat om moeiteloos PDF-documenten te maken, bewerken, versleutelen, lettertypen te beheren en te parseren binnen C++-apps.
Wat is de PoDoFo-bibliotheek?
In de wereld van C++-ontwikkeling is de mogelijkheid om programmatisch PDF-bestanden te maken, te wijzigen en gegevens eruit te extraheren een veelvoorkomende eis. De PoDoFo-bibliotheek, een open‑source en draagbare C++17-bibliotheek, blijkt een krachtige en veelzijdige oplossing te zijn voor alles wat met PDF te maken heeft. PoDoFo is vrij beschikbaar en is ontworpen voor het werken met het PDF‑bestandsformaat. Het stelt softwareontwikkelaars in staat PDF-bestanden te parseren, high‑level PDF‑entiteiten (zoals annotaties en formuliervelden) te inspecteren, ze in het geheugen te wijzigen en wijzigingen terug naar de schijf te schrijven binnen hun eigen toepassingen. De bibliotheek maakt het ook eenvoudig om nieuwe PDF’s vanaf nul te bouwen zonder externe afhankelijkheden.
PoDoFo is een robuuste C++-bibliotheek die softwareontwikkelaars in staat stelt om programmatisch met het Portable Document Format (PDF) te werken. Gelicentieerd onder LGPL v2.0 of later voor de bibliotheek, en GPL v2.0 of later voor de bijbehorende tools, zorgt de PoDoFo-bibliotheek voor flexibiliteit en openheid voor zowel commerciële als open‑sourceprojecten. Het biedt een rijke set gereedschappen om PDF‑documenten vanaf nul te parseren, te manipuleren en te genereren. Of u nu rapportgeneratie wilt automatiseren, tekst wilt extraheren voor data‑analyse, of digitale handtekeningen wilt toevoegen voor beveiliging, PoDoFo biedt een uitgebreide en flexibele API die aan uw behoeften voldoet.
Aan de slag met PoDoFo
De aanbevolen manier om PoDoFo te installeren is met CMake. Gebruik alstublieft de volgende opdracht voor een soepele installatie.
Installeer PPTXTemplater vanaf 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
Installeer PPTXTemplater vanaf GitHub
git clone https://github.com/podofo/podofo.gitU kunt het ook handmatig installeren; download de nieuwste release‑bestanden rechtstreeks van de GitHub-repository.
PDF-creatie en -bewerking
De open source PoDoFo-bibliotheek heeft volledige ondersteuning voor het maken en manipuleren van PDF-documenten in een C++-bibliotheek opgenomen. In de kern blinkt PoDoFo uit in het creëren van nieuwe PDF-documenten en het aanpassen van bestaande. Softwareontwikkelaars kunnen nieuwe pagina's toevoegen, tekst tekenen en verschillende grafische elementen invoegen, en versleutelde documenten gemakkelijk openen. Het volgende eenvoudige voorbeeld laat zien hoe softwareontwikkelaars een eenvoudig PDF-document kunnen maken binnen C++-toepassingen
Hoe maak je een eenvoudig PDF via de C++-bibliotheek?
#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;
}
Tekstextractie uit PDF-bestanden via C++
De PoDoFo-bibliotheek heeft een krachtig mechanisme toegevoegd om tekst uit PDF-documenten te laden en te extraheren met slechts een paar regels C++-code. Deze functie is van onschatbare waarde voor toepassingen die inhoudsindexering, data‑mining of documentanalyse vereisen. In het volgende code‑voorbeeld kunnen ontwikkelaars een PDF laden in een PdfMemDocument, door de pagina's itereren en de ExtractTextTo‑methode gebruiken om de tekstinhoud op te halen.
Hoe PDF-bestanden laden en tekst extraheren via de 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
}
}
}
Digitale handtekeningen toevoegen aan PDF via C++ API?
Beveiliging staat voorop bij het omgaan met officiële documenten. De PoDoFo-bibliotheek ondersteunt het toevoegen van digitale handtekeningen aan PDF‑bestanden, waardoor de authenticiteit en integriteit van uw documenten gewaarborgd zijn. Dit is bijzonder nuttig voor contracten, facturen en andere juridische documenten. Hoewel een volledig voorbeeld van een digitale handtekening complex is en een geldig certificaat vereist, illustreert de volgende conceptuele code het proces.
Hoe een digitale handtekening toevoegen aan 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;
}
Lettertypeverwerking en Unicode-ondersteuning
De gratis PoDoFo-bibliotheek biedt robuuste ondersteuning voor verschillende lettertype‑typen, waaronder TrueType‑ en Type1‑lettertypen. De bibliotheek verwerkt ook lettertype‑subsetting, wat helpt de bestandsgrootte van de gegenereerde PDF’s te verkleinen. Bovendien zorgt de uitstekende Unicode‑ondersteuning ervoor dat u kunt werken met een breed scala aan talen en tekensets. Volledige ondersteuning voor PDF‑ondertekening (PAdES‑B‑conformiteit), RSA/ECDSA‑versleuteling en asynchrone of uitgestelde ondertekeningsworkflows.