1. Продукти
  2.   PDF
  3.   C++
  4.   PoDoFo
 
  

Безплатен 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, което отговаря на вашите нужди.

Previous Next

Започване с 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 криптиране и асинхронни или отложени процеси на подписване.

 Български