Delphi 7 a 13 y C++ Builder Sin DLL

sgcPDF, una biblioteca PDF en Object Pascal puro para Delphi y C++ Builder

Crea, edita, visualiza, renderiza, extrae, cifra, firma, tacha contenido y valida archivos PDF con componentes escritos enteramente en Object Pascal. No hay ninguna DLL que distribuir ni ningún motor PDF externo: el analizador, el escritor, las fuentes, los decodificadores de imagen, los renderizadores y la criptografía se compilan dentro de tu aplicación. El núcleo se ejecuta en Windows, Linux, macOS, iOS y Android, con un control visor VCL, un visor FireMonkey y un renderizador ráster para servidores. Un pad de firma coloca una firma manuscrita en el campo visible de una firma digital, y un editor de imágenes recorta, gira y anota fotos y escaneos antes de que pasen a un PDF. Se incluye el código fuente completo.

Código fuente completo
Windows, Linux, macOS, iOS & Android
Delphi 7 → 13, C++ Builder
Edición .NET en NuGet
Cero dependencias externas
20 componentes sgcPDF_*.pas PDF 1.0 a 2.0, lectura y escritura, en Object Pascal puro.
Crear TsgcPDFDocument
Editar TsgcPDFEditor
Visualizar TsgcPDFViewerControl
Extraer TsgcPDFTextExtractor
Firmar PAdES B-B to B-LTA
PDF/A & PDF/UA TsgcPDFAValidator
Tachar TsgcPDFRedactor
20 Componentes de la paleta Documento, editor, visores, extractores, firma
0 DLL que distribuir Analizador, renderizador, fuentes y criptografía en Pascal
5 Sistemas operativos Windows, Linux, macOS, iOS, Android
8 Niveles de conformidad PDF/A PDF/A-1, 2 y 3 (niveles a y b), PDF/A-4 y 4f, más PDF/UA-1 y PDF/UA-2

Tres cosas que conviene saber primero

Nada que instalar en la máquina de destino

sgcPDF no envuelve PDFium, Ghostscript, un servidor COM ni ninguna otra biblioteca nativa. El análisis, la escritura, la incrustación y subconjunto de fuentes, la decodificación de imágenes, el renderizado, el cifrado y la firma están implementados en las unidades sgcPDF_*.pas, de modo que tu ejecutable es todo el despliegue.

Las unidades del núcleo no tienen dependencia de VCL ni de FMX, de modo que el mismo código se ejecuta en una herramienta de consola, un servicio de Windows, un demonio de Linux o un servidor web.

Alcance de plataformas

Qué partes se ejecutan dónde

La creación, la edición, la extracción de texto e imágenes, los formularios, el cifrado, las firmas, el tachado de contenido, PDF/A y el renderizador ráster se compilan para Windows y Linux64, y para macOS, iOS y Android. El renderizador GDI, el exportador y los controles visores VCL son solo para Windows, y TsgcPDFViewerFMX tiene como destino Windows, macOS, iOS y Android. En .NET, los controles de visor están disponibles para WinForms, WPF y Avalonia.

Firmas avanzadas

PAdES a través de sgcSign, firma básica incorporada

sgcPDF firma y verifica archivos PDF por sí solo con un certificado PFX. Para los niveles PAdES baseline B-B, B-T, B-LT y B-LTA, y para claves alojadas en tarjetas inteligentes, el almacén de certificados de Windows o HSM en la nube, el puente opcional TsgcPDFPAdESSigner utiliza los proveedores de claves de sgcSign, que se licencia por separado.

Una biblioteca para todo el ciclo de vida del PDF

Desde la primera página que escribes hasta el archivo firmado, archivado y con los datos sensibles tachados que entregas, cada paso se ejecuta en la misma base de código Object Pascal.

Crear: Documentos desde código, HTML o un lienzo

Páginas, texto en las 14 fuentes estándar o fuentes TrueType y OpenType incrustadas y en subconjunto, imágenes (JPEG, PNG, BMP, TIFF), líneas, curvas, degradados, tablas que fluyen entre páginas, códigos de barras y QR, anotaciones y comentarios con respuestas en hilo, marcadores y capas de contenido opcional. Los usuarios finales también pueden añadir, editar y responder anotaciones con el ratón, directamente en los visores. TsgcPDFHTMLRenderer convierte HTML con CSS en PDF paginado, y TsgcPDFCanvas junto con la reproducción de EMF convierten código de dibujo existente.

Ver las funciones →

Editar: Modifica archivos que no escribiste

Marcas de agua, encabezados, pies de página, números de página y sellos, combinar y dividir, extraer, insertar, eliminar, rotar y reordenar páginas. El guardado incremental añade una nueva revisión al archivo original, lo que mantiene válidas las firmas anteriores.

Ver las funciones →

Visualizar y renderizar: visores VCL, FMX, WinForms, WPF y Avalonia, más un renderizador de servidor

Un control visor VCL con miniaturas, esquema, panel de comentarios, selección de texto, búsqueda, relleno de formularios e impresión, un visor FireMonkey para Windows, macOS, iOS y Android con zoom por rectángulo y búsqueda de texto con las coincidencias resaltadas, visores .NET para WinForms, WPF y Avalonia, y un renderizador ráster en Object Pascal puro que convierte páginas en PNG en servidores Windows y Linux sin GDI.

Ver las funciones →

Extraer: Texto, posiciones e imágenes

Texto plano por página o de todo el documento, fragmentos de texto con coordenadas, fuente y tamaño, y las imágenes de una página decodificadas a PNG, JPEG o BMP. Los decodificadores cubren Flate, LZW, ASCII85, RunLength, JPEG (baseline y progresivo), JPEG 2000, CCITT G3/G4 y JBIG2.

Ver las funciones →

Proteger y firmar: Cifrado, firmas, tachado de contenido

Cifrado con contraseña RC4 40/128, AES-128 y AES-256, cifrado por certificado (clave pública), firmas digitales con campos visibles y sellos de tiempo, PAdES B-B, B-T, B-LT y B-LTA a través del puente sgcSign, verificación de firmas y tachado real que elimina el contenido en lugar de cubrirlo.

Ver las funciones →

Capturar: Firmas manuscritas e imágenes anotadas

Un pad de firma registra una firma con el ratón, un dedo o un lápiz, con presión del lápiz, un grosor que sigue la velocidad, trazos suavizados y deshacer, y la guarda como PNG, SVG o JSON. ApplyToSignature la coloca en el campo visible de una firma digital. Un visor y editor de imágenes amplía, gira, voltea y recorta fotos y escaneos, dibuja flechas, recuadros, notas de texto y resaltados sobre ellos, y exporta el resultado a una página PDF con anotaciones vectoriales. En VCL, FireMonkey, WinForms, WPF y Avalonia, en todas las ediciones de sgcPDF.

Ver las funciones →

Cumplir: PDF/A, PDF/UA, PDF etiquetado, Factur-X

Salida PDF/A-1, PDF/A-2 y PDF/A-3 en niveles a y b, PDF/A-4 y PDF/A-4f, con un validador incorporado, PDF etiquetado con árbol de estructura y texto alternativo, salida y comprobaciones PDF/UA-1 y PDF/UA-2, archivos incrustados con relaciones PDF/A-3 y PDF/A-4f, e incrustación de facturas electrónicas Factur-X, ZUGFeRD y XRechnung.

Ver las funciones →

Preimpresión: cuadros de página, imposición, marcas

Cuadros de página (Media, Crop, Bleed, Trim y Art), páginas de otros documentos colocadas como formularios para la imposición, marcas de corte, de sangrado y de registro, colores Separation y DeviceN, vista previa de sobreimpresión e intención de salida PDF/X, en Delphi y .NET.

Ver las funciones →

Unas pocas líneas de Delphi

Cada muestra de esta página procede de un programa compilado con las fuentes de sgcPDF y ejecutado. Las coordenadas están en puntos PDF (1/72 de pulgada), con el origen en la esquina inferior izquierda de la página.

procedure CreateHelloPDF(const AFileName: string);
var
  oPDF: TsgcPDFDocument;
  oPage: TsgcPDFPage;
begin
  oPDF := TsgcPDFDocument.Create;
  try
    oPDF.Info.Title := 'Hello sgcPDF';
    // A4 portrait: 595 x 842 points, origin at the bottom left corner
    oPage := oPDF.AddPage(595, 842);
    oPage.DrawTextColor('Hello sgcPDF', 50, 780, sfHelveticaBold, 24, 0, 0.2, 0.6);
    oPage.DrawLine(50, 770, 545, 770, 1.5);
    oPage.DrawText('A PDF written in pure Pascal.', 50, 740, sfHelvetica, 12);
    oPDF.SaveToFile(AFileName);
  finally
    oPDF.Free;
  end;
end;
procedure StampExistingPDF(const AInput, AOutput: string);
var
  oEditor: TsgcPDFEditor;
  oWatermark: TsgcPDFWatermarkOptions;
begin
  oEditor := TsgcPDFEditor.Create;
  try
    oEditor.LoadFromFile(AInput);
    oWatermark.Text := 'CONFIDENTIAL';
    oWatermark.Font := sfHelveticaBold;
    oWatermark.FontSize := 48;
    oWatermark.Rotation := 45;
    oWatermark.Opacity := 0.3;
    oWatermark.R := 0.5;
    oWatermark.G := 0.5;
    oWatermark.B := 0.5;
    oEditor.AddWatermarkAllPages(oWatermark);
    oEditor.AddPageNumbers(sfHelvetica, 10, 'Page %d of %d');
    oEditor.SaveToFile(AOutput);
  finally
    oEditor.Free;
  end;
end;
procedure PrintAllText(const AFileName: string);
var
  oPDF: TsgcPDFDocument;
  i: Integer;
begin
  oPDF := TsgcPDFDocument.Create;
  try
    oPDF.LoadFromFile(AFileName);
    for i := 0 to oPDF.PageCount - 1 do
      WriteLn(string(oPDF.ExtractTextW(i)));
  finally
    oPDF.Free;
  end;
end;
procedure RenderPageToPNG(const APDFFile, APNGFile: string; ADPI: Integer);
var
  oPDF: TsgcPDFDocument;
  oRenderer: TsgcPDFRendererRaster;
  oPage: TsgcPDFPage;
begin
  oPDF := TsgcPDFDocument.Create;
  try
    oPDF.LoadFromFile(APDFFile);
    oPage := oPDF.Pages[0];
    // pure Pascal rasterizer: no GDI, runs on Windows and Linux servers
    oRenderer := TsgcPDFRendererRaster.Create;
    try
      oRenderer.RenderPageToPNG(oPDF.Parser, oPage.PageDict,
        Round(oPage.Width * ADPI / 72), Round(oPage.Height * ADPI / 72),
        APNGFile);
    finally
      oRenderer.Free;
    end;
  finally
    oPDF.Free;
  end;
end;
procedure CreateTicketPDF(const aFileName: string);
var
  oPDF: TsgcPDFDocument;
  oPage: TsgcPDFPage;
  oSymbol: TsgcPDFBarcodeSymbol;
begin
  oPDF := TsgcPDFDocument.Create(nil);
  oSymbol := TsgcPDFBarcodeSymbol.Create;
  try
    oPDF.Info.Title := 'Ticket';
    oPage := oPDF.AddPage(595, 842);
    oPage.DrawText('Ticket 2026-001', 50, 780, sfHelveticaBold, 24);
    oPage.DrawLine(50, 770, 545, 770, 1.5);
    // Code 128 barcode in a 250 x 60 point box, black on white
    oSymbol.Symbology := bcCode128;
    oSymbol.Text := 'TKT-2026-001';
    oSymbol.DrawToPDF(oPage, 50, 680, 250, 60, $000000, $FFFFFF);
    // QR Code in a 120 x 120 point box
    oSymbol.Symbology := bcQRCode;
    oSymbol.QRErrorLevel := qrecQ;
    oSymbol.Text := 'https://www.esegece.com';
    oSymbol.DrawToPDF(oPage, 50, 540, 120, 120, $000000, $FFFFFF);
    oPDF.SaveToFile(aFileName);
  finally
    oSymbol.Free;
    oPDF.Free;
  end;
end;

Dibuja el código de barras como gráficos vectoriales directamente sobre la página. Unidades: sgcPDF_Document, sgcPDF_Barcodes, sgcPDF_Barcode_Symbol. Consulta TsgcPDFBarcodeSymbol y la guía de códigos de barras.

#include <System.hpp>
#include "sgcPDF_Document.hpp"
#include "sgcPDF_Barcodes.hpp"
#include "sgcPDF_Barcode_Symbol.hpp"

void __fastcall CreateTicketPDF(const String aFileName)
{
  TsgcPDFDocument *oPDF = new TsgcPDFDocument(NULL);
  TsgcPDFBarcodeSymbol *oSymbol = new TsgcPDFBarcodeSymbol();
  try
  {
    oPDF->Info->Title = "Ticket";
    TsgcPDFPage *oPage = oPDF->AddPage(595, 842);
    oPage->DrawText("Ticket 2026-001", 50, 780, sfHelveticaBold, 24);
    oPage->DrawLine(50, 770, 545, 770, 1.5);
    // Code 128 barcode in a 250 x 60 point box, black on white
    oSymbol->Symbology = bcCode128;
    oSymbol->Text = "TKT-2026-001";
    oSymbol->DrawToPDF(oPage, 50, 680, 250, 60, 0x000000, 0xFFFFFF);
    // QR Code in a 120 x 120 point box
    oSymbol->Symbology = bcQRCode;
    oSymbol->QRErrorLevel = qrecQ;
    oSymbol->Text = "https://www.esegece.com";
    oSymbol->DrawToPDF(oPage, 50, 540, 120, 120, 0x000000, 0xFFFFFF);
    oPDF->SaveToFile(aFileName);
  }
  __finally
  {
    delete oSymbol;
    delete oPDF;
  }
}

Compilado con las cabeceras de C++ Builder generadas a partir de los fuentes de sgcPDF. Consulta el tema TsgcPDFBarcodeSymbol y las notas de C++ Builder.

using System;
using esegece.sgcPDF;

class Program
{
    static void Main()
    {
        using (TsgcPDFDocument oDoc = new TsgcPDFDocument())
        {
            oDoc.Info.Title = "Ticket";
            TsgcPDFPage oPage = oDoc.AddPage(595, 842);
            oPage.DrawText("Ticket 2026-001", 50, 780, TsgcPDFStandardFont.sfHelveticaBold, 24);
            oPage.DrawLine(50, 770, 545, 770, 1.5);

            // Code 128 barcode in a 250 x 60 point box, black on white
            TsgcPDFBarcodeSymbol oSymbol = new TsgcPDFBarcodeSymbol();
            oSymbol.Symbology = TsgcPDFBarcodeType.bcCode128;
            oSymbol.Text = "TKT-2026-001";
            oSymbol.DrawToPDF(oPage, 50, 680, 250, 60, 0x000000, 0xFFFFFF);

            // QR Code in a 120 x 120 point box
            oSymbol.Symbology = TsgcPDFBarcodeType.bcQRCode;
            oSymbol.QRErrorLevel = TsgcPDFQRErrorLevel.qrecQ;
            oSymbol.Text = "https://www.esegece.com";
            oSymbol.DrawToPDF(oPage, 50, 540, 120, 120, 0x000000, 0xFFFFFF);

            oDoc.SaveToFile("ticket.pdf");
        }
    }
}

La clase .NET no depende de WinForms ni de GDI, así que también funciona en servidores y en herramientas de consola. Consulta las diferencias de la API .NET.

procedure SignWithPad(aPad: TsgcPDFSignaturePad; const aInput, aOutput: string);
var
  oSigner: TsgcPDFSignatureHandler;
begin
  oSigner := TsgcPDFSignatureHandler.Create;
  try
    oSigner.LoadCertificateFromPFX('signer.pfx', 'test123');
    oSigner.Reason := 'Contract approval';
    oSigner.Location := 'Barcelona';
    // visible signature field on page 1: Left, Bottom, Right, Top
    oSigner.SetField('Signature1', 0, 50, 50, 300, 120);
    // the ink in the left half of the field, the text lines in the right half
    aPad.ApplyToSignature(oSigner);
    oSigner.SignDocument(aInput, aOutput);
  finally
    oSigner.Free;
  end;
end;

Firma con la firma que el usuario dibujó en un TsgcPDFSignaturePad: el campo muestra la tinta vectorial en su mitad izquierda y el nombre del firmante y la fecha en la mitad derecha. Unidades: sgcPDF_Signatures, sgcPDF_SignaturePad_VCL. Consulta TsgcPDFSignaturePad y la guía de firmas digitales.

using System;
using esegece.sgcPDF;

class Program
{
    static void Main()
    {
        // Create a one page A4 document and save it
        using (TsgcPDFDocument oDoc = new TsgcPDFDocument())
        {
            TsgcPDFPage oPage = oDoc.AddPage(595, 842);
            oPage.DrawText("Hello from sgcPDF", 50, 780, TsgcPDFStandardFont.sfHelveticaBold, 24);
            oPage.DrawLine(50, 770, 545, 770, 1.0);
            oPage.DrawText("Created with sgcPDF .NET.", 50, 740, TsgcPDFStandardFont.sfHelvetica, 12);
            oDoc.SaveToFile("hello.pdf");
        }

        // Load it again and extract the text of every page
        using (TsgcPDFDocument oDoc = new TsgcPDFDocument())
        {
            oDoc.LoadFromFile("hello.pdf");
            for (int i = 0; i < oDoc.PageCount(); i++)
                Console.WriteLine(oDoc.ExtractTextW(i));
        }
    }
}
TsgcPDFBarcodeControl mostrando los símbolos Code 128, Code 39, EAN-13, EAN-8, UPC-A, ITF, Codabar, QR Code, DataMatrix, PDF417 y GS1-128
Un solo control de código de barras, once simbologías, entre ellas QR Code, DataMatrix y PDF417

24 componentes en la paleta de sgcPDF

Colócalos en un formulario o un módulo de datos, o créalos en código. Cada componente también se puede usar sin formulario, desde aplicaciones de consola y servicios.

Todos los componentes

Prueba y licencias

sgcPDF se licencia por separado, desde €249 para un solo desarrollador. Cada licencia incluye código fuente completo, 1 año de actualizaciones y un 50% al 70% de descuento de renovación. Para evaluarlo primero, descarga la prueba gratuita. sgcPDF también forma parte de sgcUI Enterprise y del pack All-Access.

sgcPDF

€249

Licencias Single, Team y Site disponibles.

  • Los 20 componentes y las unidades sgcPDF_*.pas
  • Delphi 7 a 13 y C++ Builder
  • Windows, Linux, macOS, iOS y Android
  • Código fuente completo
  • 1 año de actualizaciones

sgcPDF .NET

€249

Licencias Single, Team y Site disponibles.

  • NuGet: esegece.sgcPDF
  • .NET Standard 2.0, .NET Framework 4.7.2, .NET 6, .NET 8, .NET 9, .NET 10
  • Código fuente completo
  • 1 año de actualizaciones

sgcPDF para .NET

sgcPDF también está disponible para .NET como un port en C# totalmente gestionado, con los mismos nombres de clase que la biblioteca Delphi. Se distribuye como paquetes NuGet para .NET Standard 2.0, .NET Framework 4.7.2, .NET 6, .NET 8, .NET 9 y .NET 10, sin DLL nativa.

esegece.sgcPDF

La biblioteca: modelo de documento, analizador, escritor, editor, núcleo de renderizado, fuentes, imágenes, formularios, firmas, cifrado, extracción de texto e imágenes, preimpresión, PDF/A (incluido PDF/A-4) y PDF/UA-2.

esegece.sgcPDF.WinForms

Complemento Windows Forms: renderizador GDI y lienzo, reproducción de EMF, exportación de páginas a imágenes, y los controles TsgcPDFViewerControl (con anotaciones interactivas y respuestas a comentarios), TsgcPDFThumbnailView y TsgcPDFOutlineView, con cuadros de página y una herramienta de medición, además de los controles TsgcPDFSignaturePad y TsgcPDFImageEditor.

esegece.sgcPDF.Wpf

Visor WPF: TsgcWpfPDFViewer, TsgcWpfPDFThumbnailView y TsgcWpfPDFOutlineView, con modos de zoom, zoom por rectángulo, selección de texto, búsqueda, enlaces, cuadros de página y la herramienta de medición. Los usuarios editan anotaciones y rellenan campos de formulario, como en el visor de WinForms. TsgcWpfPDFSignaturePad lee la presión del lápiz del stylus, y TsgcWpfPDFImageEditor edita y anota imágenes. TsgcWpfPDFBarcodeControl muestra códigos de barras y códigos QR como módulos vectoriales nítidos.

esegece.sgcPDF.Avalonia

Visor Avalonia: TsgcAvaloniaPDFViewer, TsgcAvaloniaPDFThumbnailView y TsgcAvaloniaPDFOutlineView, con las mismas funciones de visualización y edición que el visor WPF y además zoom por pellizco, y los controles TsgcAvaloniaPDFBarcodeControl, TsgcAvaloniaPDFSignaturePad y TsgcAvaloniaPDFImageEditor en Windows, Linux y macOS.

esegece.sgcPDF.sgcSign

Puente opcional con sgcSign .NET: TsgcPDFPAdESSigner firma en PAdES B-B, B-T, B-LT y B-LTA con cualquier proveedor de claves de sgcSign.

dotnet add package esegece.sgcPDF
dotnet add package esegece.sgcPDF.WinForms
dotnet add package esegece.sgcPDF.Wpf
dotnet add package esegece.sgcPDF.Avalonia
dotnet add package esegece.sgcPDF.sgcSign

Cada paquete también se distribuye como edición Community gratuita con el sufijo .Community, por ejemplo dotnet add package esegece.sgcPDF.Community. Ambas ediciones tienen las mismas funciones. La edición Community es gratuita para particulares y organizaciones con menos de 1 millón de euros de facturación bruta anual y no más de 5 desarrolladores, y muestra un breve aviso al iniciar. La edición registrada elimina el aviso e incluye la licencia comercial.

Ver en NuGet Descargas .NET

¿Migras?

¿Vienes de Quick PDF Library o PdfiumViewer?

Un kit de migración relaciona las funciones de Quick PDF Library de una aplicación Delphi y las clases de PdfiumViewer de una aplicación WinForms con sgcPDF, con código de demos compiladas, pasos de migración numerados y las diferencias conocidas.

Migrar desde Quick PDF Library y PdfiumViewer →
Todos los kits de migración de sgcUI →

Aprende sgcPDF paso a paso

Guía Getting Started

Cinco demos QuickStart para Delphi (VCL) se incluyen en Demos\PDF\Delphi\00.QuickStart. La guía en PDF las recorre paso a paso: un primer PDF de una página, dibujo con fuentes, formas e imágenes, una tabla de varias páginas, un visor de PDF y un generador de facturas.

Descargar la guía (PDF, en inglés) →

sgcPDF forma parte de sgcUI Enterprise

sgcPDF pertenece a la suite sgcUI de componentes para Delphi y C++ Builder y está incluido en la edición sgcUI Enterprise, junto con el resto de productos sgcUI. También está disponible como paquete individual. Los precios están en la página de precios de sgcUI y en la página de precios de sgcPDF.

sgcReports

Diseñador y motor de informes que exporta los informes terminados a PDF mediante sgcPDF.

Explorar sgcReports →

sgcRichEdit

Editor de documentos de texto enriquecido que exporta los documentos a PDF mediante sgcPDF.

Explorar sgcRichEdit →

sgcGrid

Cuadrícula de datos de alto rendimiento para Delphi y C++ Builder.

Explorar sgcGrid →

sgcCharts

Gráficos para paneles e informes.

Explorar sgcCharts →

sgcDashboard

Mosaicos, KPI y diseños para paneles.

Explorar sgcDashboard →

Ayuda en línea: introducción, inicio rápido, instalación e instalación de .NET.

Otros productos de eSeGeCe

Combina sgcPDF con nuestras otras bibliotecas de componentes para Delphi y C++ Builder.

sgcSign

Firmas digitales empresariales. XAdES, PAdES, CAdES y ASiC con 10 proveedores de claves y 21 perfiles de país de la UE.

Más información →

sgcWebSockets

Componentes empresariales de WebSocket, HTTP/2, MQTT, AMQP y WebRTC para Delphi, C++ Builder y .NET.

Más información →

sgcHTML

Componentes HTML y de interfaz de usuario del lado del servidor para Delphi y C++ Builder, construidos sobre Bootstrap y htmx.

Más información →

sgcCrypto

Criptografía moderna en Object Pascal puro: AES-GCM, SHA-3, Ed25519, X.509 y post-cuánticos ML-KEM y ML-DSA.

Más información →
3,000+Desarrolladores
20+Años
761+Componentes
30+Integraciones de API
5Plataformas
Garantía de devolución de 30 días¿No estás satisfecho? Solicita un reembolso completo en los 30 días posteriores a la compra. Ver política de reembolso

PDF sin la DLL

Crea, visualiza, firma y archiva archivos PDF con el código Delphi o C++ Builder que ya tienes.