Безплатен C++ API за създаване, манипулиране & парсиране на PDF файлове.
Водеща отворена библиотека за манипулиране на PDF позволява на C++ разработчиците без усилие да създават, манипулират, криптират, управляват шрифтове и парсират PDF документи в C++ приложения.
Какво е библиотеката PoDoFo?
В света на C++ разработката способността да създаваме, модифицираме и извличаме данни от PDF файлове програмно е често срещано изискване. Библиотеката PoDoFo, отворен код и преносима C++17 библиотека, се явява мощно и гъвкаво решение за всичко, свързано с PDF. PoDoFo е свободно достъпна и е проектирана за работа с PDF файловия формат. Тя позволява на софтуерните разработчици да анализират PDF файлове, да инспектират високонивоови PDF обекти (като анотации и полета за формуляри), да ги модифицират в паметта и да записват промените обратно на диска в своите приложения. Библиотеката също така улеснява създаването на нови PDF файлове от нулата без външни зависимости.
PoDoFo е мощна C++ библиотека, която дава възможност на софтуерните разработчици да работят с формата Portable Document Format (PDF) програмно. Лицензирана под LGPL v2.0 или по-нова за библиотеката и GPL v2.0 или по-нова за съпътстващите инструменти, библиотеката PoDoFo осигурява гъвкавост и откритост както за комерсиални, така и за проекти с отворен код. Тя предоставя богата гама от инструменти за парсиране, манипулиране и създаване на PDF документи от нулата. Независимо дали трябва да автоматизирате генерирането на отчети, извличате текст за анализ на данни или добавяте цифрови подписи за сигурност, PoDoFo предлага цялостно и гъвкаво API, което отговаря на вашите нужди.
Започване с PoDoFo
Препоръчителният начин за инсталиране на PoDoFo е чрез CMake. Моля, използвайте следната команда за гладка инсталация.
Инсталиране на PPTXTemplater от 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
Инсталиране на PPTXTemplater от GitHub
git clone https://github.com/podofo/podofo.gitМожете също да го инсталирате ръчно; изтеглете последните файлове на версията директно от GitHub хранилището.
Създаване и модифициране на PDF
Отвореният код PoDoFo библиотека включва пълна поддръжка за създаване и манипулиране на PDF документи в C++ библиотеката. В сърцевината си PoDoFo се отличава в създаването на нови PDF документи и модифицирането на съществуващи. Софтуерните разработчици могат да добавят нови страници, да рисуват текст и да вмъкват различни графични елементи, като лесно отварят криптирани документи. Следният прост пример демонстрира как софтуерните разработчици могат да създадат прост PDF документ в C++ приложения
Как да създадем прост PDF чрез C++ библиотека?
#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;
}
Извличане на текст от PDF файлове чрез C++
Библиотеката PoDoFo включва мощен механизъм за зареждане и извличане на текст от PDF документи с няколко реда C++ код. Тази функция е безценна за приложения, които изискват индексиране на съдържание, извличане на данни или анализ на документи. В следния пример с код, разработчиците могат да заредят PDF в PdfMemDocument, да обхождат неговите стра
Как да заредим и извлечем текст от PDF файлове чрез 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
}
}
}
Добавяне на цифрови подписи към PDF чрез C++ API?
Сигурността е от първостепенно значение при работа с официални документи. Библиотеката PoDoFo поддържа добавянето на цифрови подписи към PDF файлове, осигурявайки автентичността и целостта на вашите документи. Това е особено полезно за договори, фактури и други правни документи. Въпреки че пълен пример за цифров подпис е сложен и изисква валиден сертификат, следният концептуален код илюстрира процеса.
Как да добавим цифров подпис към PDF чрез 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;
}
Обработка на шрифтове и поддръжка на Unicode
Безплатната библиотека PoDoFo предоставя стабилна поддръжка за различни типове шрифтове, включително TrueType и Type1 шрифтове. Библиотеката също така обработва подмножество на шрифтовете, което помага за намаляване на размера на генерираните PDF файлове. Освен това, отличната й поддръжка на Unicode гарантира, че можете да работите с широк спектър от езици и набори от символи. Пълна поддръжка за подписване на PDF (съответствие с PAdES-B), RSA/ECDSA криптиране и асинхронни или отложени процеси на подписване.