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

Darmowe API C++ do tworzenia, manipulacji i analizowania plików PDF.

Wiodąca otwarto‑źródłowa biblioteka do manipulacji PDF umożliwia programistom C++ bez wysiłku tworzyć, manipulować, szyfrować, zarządzać czcionkami i analizować dokumenty PDF w aplikacjach C++.

Czym jest biblioteka PoDoFo?

W świecie programowania w C++ możliwość programowego tworzenia, modyfikowania i wyodrębniania danych z plików PDF jest powszechnym wymogiem. Biblioteka PoDoFo, otwarto‑źródłowa i przenośna biblioteka C++17, stanowi potężne i wszechstronne rozwiązanie dla wszystkiego, co związane z PDF. PoDoFo jest dostępna bezpłatnie i została zaprojektowana do pracy z formatem plików PDF. Umożliwia programistom analizowanie plików PDF, przeglądanie wysokopoziomowych elementów PDF (takich jak adnotacje i pola formularzy), modyfikowanie ich w pamięci oraz zapisywanie zmian na dysku w ramach własnych aplikacji. Biblioteka ułatwia także tworzenie nowych plików PDF od podstaw, bez żadnych zewnętrznych zależności.

PoDoFo to solidna biblioteka C++, która umożliwia programistom pracę z formatem Portable Document Format (PDF) w sposób programistyczny. Licencjonowana na warunkach LGPL v2.0 lub nowszej dla biblioteki oraz GPL v2.0 lub nowszej dla towarzyszących narzędzi, biblioteka PoDoFo zapewnia elastyczność i otwartość zarówno dla projektów komercyjnych, jak i open‑source. Dostarcza bogaty zestaw narzędzi do parsowania, manipulacji i generowania dokumentów PDF od podstaw. Niezależnie od tego, czy potrzebujesz automatyzować generowanie raportów, wyodrębniać tekst do analizy danych, czy dodawać podpisy cyfrowe w celu zwiększenia bezpieczeństwa, PoDoFo oferuje kompleksowe i elastyczne API spełniające Twoje potrzeby.

Previous Next

Rozpoczęcie pracy z PoDoFo

Zalecanym sposobem instalacji PoDoFo jest użycie CMake. Proszę użyć poniższego polecenia, aby przeprowadzić płynną instalację.

Zainstaluj PPTXTemplater z 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

Zainstaluj PPTXTemplater z GitHub

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

Możesz również zainstalować go ręcznie; pobierz najnowsze pliki wydania bezpośrednio z repozytorium GitHub.

Tworzenie i modyfikacja PDF

Biblioteka open source PoDoFo zawiera pełne wsparcie dla tworzenia i manipulacji dokumentami PDF w bibliotece C++. W swojej istocie PoDoFo wyróżnia się w tworzeniu nowych dokumentów PDF oraz modyfikowaniu istniejących. Programiści mogą dodawać nowe strony, rysować tekst i wstawiać różne elementy graficzne, a także łatwo otwierać zaszyfrowane dokumenty. Poniższy prosty przykład pokazuje, jak programiści mogą stworzyć prosty dokument PDF w aplikacjach C++\n\n\n

\n

Jak stworzyć prosty PDF przy użyciu biblioteki C++?

\n
#include \n\nusing namespace PoDoFo;\n\nint main() {\n    PdfStreamedDocument document(\"HelloWorld.pdf\");\n    PdfPainter painter;\n    PdfPage* pPage;\n\n    try {\n        pPage = document.CreatePage(PdfPage::CreateStandardPageSize(ePdfPageSize_A4));\n        painter.SetPage(pPage);\n        PdfFont* pFont = document.CreateFont(\"Arial\");\n        pFont->SetFontSize(18.0);\n        painter.SetFont(pFont);\n        painter.DrawText(56.69, pPage->GetPageSize().GetHeight() - 56.69, \"Hello World!\");\n        painter.FinishPage();\n        document.Close();\n    } catch (const PdfError & e) {\n        e.PrintErrorMsg();\n        return e.GetCode();\n    }\n\n    return 0;\n}\n 
\n
\n\n \n\n\n

Ekstrakcja tekstu z plików PDF przy użyciu C++

\n

Biblioteka PoDoFo zawiera potężny mechanizm umożliwiający ładowanie i wyodrębnianie tekstu z dokumentów PDF przy użyciu zaledwie kilku linii kodu C++. Ta funkcja jest nieoceniona dla aplikacji wymagających indeksowania treści, eksploracji danych lub analizy dokumentów. W poniższym przykładzie kodu programiści mogą wczytać PDF do obiektu PdfMemDocument, iterować po jego stronach i użyć metody ExtractTextTo, aby uzyskać zawartość tekstową.

Jak wczytać i wyodrębnić tekst z plików PDF za pomocą API C++?

#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
        }
    }
}

 

Dodawanie podpisów cyfrowych do PDF za pomocą API C++?

Bezpieczeństwo jest najważniejsze przy pracy z dokumentami urzędowymi. Biblioteka PoDoFo obsługuje dodawanie podpisów cyfrowych do plików PDF, zapewniając autentyczność i integralność Twoich dokumentów. Jest to szczególnie przydatne w przypadku umów, faktur i innych dokumentów prawnych. Chociaż pełny przykład podpisu cyfrowego jest skomplikowany i wymaga ważnego certyfikatu, poniższy kod koncepcyjny ilustruje proces.

Jak dodać podpis cyfrowy do PDF za pomocą 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;
}
 

Obsługa czcionek i wsparcie Unicode

Darmowa biblioteka PoDoFo zapewnia solidne wsparcie dla różnych typów czcionek, w tym czcionek TrueType i Type1. Biblioteka obsługuje także podzbiory czcionek, co pomaga zmniejszyć rozmiar plików generowanych PDFów. Ponadto jej doskonałe wsparcie Unicode zapewnia możliwość pracy z szeroką gamą języków i zestawów znaków. Pełne wsparcie dla podpisywania PDF (zgodność z PAdES‑B), szyfrowania RSA/ECDSA oraz asynchronicznych lub odroczonych procesów podpisywania.

 Polski