Безкоштовне 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, перебрати його сторінки та використати метод ExtractTextTo для отримання текстового вмісту.
Як завантажити та витягнути текст з 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 та асинхронних або відкладених процесів підпису.