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

API C++ Gratuita para Criar, Manipular & Analisar Arquivos PDF.

Uma Biblioteca de Manipulação de PDF de Código Aberto de Destaque permite que desenvolvedores C++ criem, manipulem, criptografem, gerenciem fontes e analisem documentos PDF com facilidade dentro de aplicativos C++.

O que é a Biblioteca PoDoFo?

No mundo do desenvolvimento em C++, a capacidade de criar, modificar e extrair dados de arquivos PDF programaticamente é uma necessidade comum. A biblioteca PoDoFo, uma biblioteca open-source e portátil C++17, surge como uma solução poderosa e versátil para tudo relacionado a PDF. PoDoFo está disponível gratuitamente e foi projetada para trabalhar com o formato de arquivo PDF. Ela permite que desenvolvedores de software analisem arquivos PDF, inspecionem entidades PDF de alto nível (como anotações e campos de formulário), as modifiquem na memória e gravem as alterações de volta ao disco dentro de suas próprias aplicações. A biblioteca também facilita a criação de novos PDFs do zero sem quaisquer dependências externas.

PoDoFo é uma biblioteca C++ robusta que capacita desenvolvedores de software a trabalhar com o Portable Document Format (PDF) programaticamente. Licenciada sob LGPL v2.0 ou posterior para a biblioteca, e GPL v2.0 ou posterior para suas ferramentas auxiliares, a biblioteca PoDoFo garante flexibilidade e abertura tanto para projetos comerciais quanto de código aberto. Ela fornece um conjunto rico de ferramentas para analisar, manipular e gerar documentos PDF do zero. Seja para automatizar a geração de relatórios, extrair texto para análise de dados ou adicionar assinaturas digitais para segurança, o PoDoFo oferece uma API abrangente e flexível para atender às suas necessidades.

Previous Next

Começando com PoDoFo

A forma recomendada de instalar o PoDoFo é usando CMake. Por favor, use o comando a seguir para uma instalação tranquila.

Instalar PPTXTemplater do 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

Instalar PPTXTemplater do GitHub

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

Você também pode instalá-lo manualmente; baixe os arquivos da versão mais recente diretamente do repositório GitHub.

Criação e Modificação de PDF

A biblioteca de código aberto PoDoFo incluiu suporte completo para criação e manipulação de documentos PDF dentro da biblioteca C++. Em seu núcleo, o PoDoFo se destaca na criação de novos documentos PDF e na modificação dos existentes. Desenvolvedores de software podem adicionar novas páginas, desenhar texto e inserir vários elementos gráficos, abrir documentos criptografados com facilidade. O exemplo simples a seguir demonstra como desenvolvedores de software podem criar um documento PDF simples dentro de aplicações C++

Como Criar um PDF Simples via Biblioteca 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;
}
 

Extração de Texto de Arquivos PDF via C++

A biblioteca PoDoFo incluiu um mecanismo poderoso para carregar e extrair texto de documentos PDF com apenas algumas linhas de código C++. Esse recurso é inestimável para aplicações que requerem indexação de conteúdo, mineração de dados ou análise de documentos. No exemplo de código a seguir, os desenvolvedores podem carregar um PDF em um PdfMemDocument, percorrer suas páginas e usar o método ExtractTextTo para recuperar o conteúdo textual.

Como Carregar e Extrair Texto de Arquivos PDF via 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
        }
    }
}

 

Adicionar Assinaturas Digitais a PDF via API C++?

A segurança é fundamental ao lidar com documentos oficiais. A biblioteca PoDoFo suporta a adição de assinaturas digitais a arquivos PDF, garantindo a autenticidade e integridade dos seus documentos. Isso é particularmente útil para contratos, faturas e outros documentos legais. Embora um exemplo completo de assinatura digital seja complexo e exija um certificado válido, o código conceitual a seguir ilustra o processo.

Como Adicionar uma Assinatura Digital a 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;
}
 

Manipulação de Fontes e Suporte a Unicode

A biblioteca gratuita PoDoFo oferece suporte robusto a vários tipos de fontes, incluindo fontes TrueType e Type1. A biblioteca também lida com subconfiguração de fontes, o que ajuda a reduzir o tamanho dos arquivos PDF gerados. Além disso, seu excelente suporte a Unicode garante que você possa trabalhar com uma ampla variedade de idiomas e conjuntos de caracteres. Suporte total para assinatura de PDF (conformidade PAdES-B), criptografia RSA/ECDSA e fluxos de trabalho de assinatura assíncrona ou diferida.

 Português