Delphi 7 à 13 et C++ Builder Aucune DLL

sgcPDF, une bibliothèque PDF en Object Pascal pur pour Delphi et C++ Builder

Crée, modifie, affiche, rends, extrais, chiffre, signe, caviarde et valide des fichiers PDF avec des composants écrits entièrement en Object Pascal. Il n’y a aucune DLL à déployer ni aucun moteur PDF externe : l’analyseur, l’écriture, les polices, les décodeurs d’image, les moteurs de rendu et la cryptographie sont compilés dans ton application. Le noyau fonctionne sous Windows, Linux, macOS, iOS et Android, avec un contrôle visionneuse VCL, une visionneuse FireMonkey et un moteur de rendu matriciel pour serveurs. Le code source complet est inclus.

Code source complet
Windows, Linux, macOS, iOS & Android
Delphi 7 → 13, C++ Builder
Édition .NET sur NuGet
Aucune dépendance externe
20 composants sgcPDF_*.pas PDF 1.0 à 2.0, lecture et écriture, en Object Pascal pur.
Créer TsgcPDFDocument
Modifier TsgcPDFEditor
Afficher TsgcPDFViewerControl
Extraire TsgcPDFTextExtractor
Signer PAdES B-B to B-LTA
PDF/A & PDF/UA TsgcPDFAValidator
Caviarder TsgcPDFRedactor
20 Composants de palette Document, éditeur, visionneuses, extracteurs, signature
0 DLL à déployer Analyseur, moteur de rendu, polices et cryptographie en Pascal
5 Systèmes d’exploitation Windows, Linux, macOS, iOS, Android
8 Niveaux de conformité PDF/A PDF/A-1, 2 et 3 (niveaux a et b), PDF/A-4 et 4f, plus PDF/UA-1 et PDF/UA-2

Trois choses à savoir avant tout

Rien à installer sur la machine cible

sgcPDF n’encapsule ni PDFium, ni Ghostscript, ni un serveur COM, ni aucune autre bibliothèque native. L’analyse, l’écriture, l’incorporation et le sous-ensemble de polices, le décodage d’image, le rendu, le chiffrement et la signature sont implémentés dans les unités sgcPDF_*.pas, de sorte que ton exécutable constitue le déploiement complet.

Les unités du noyau n’ont aucune dépendance VCL ou FMX, de sorte que le même code s’exécute dans un outil console, un service Windows, un démon Linux ou un serveur web.

Périmètre des plateformes

Quelles parties fonctionnent où

La création, la modification, l’extraction de texte et d’image, les formulaires, le chiffrement, les signatures, le caviardage, le PDF/A et le moteur de rendu matriciel se compilent pour Windows et Linux64, ainsi que pour macOS, iOS et Android. Le moteur de rendu GDI, l’exportateur et les contrôles visionneuse VCL sont réservés à Windows, et TsgcPDFViewerFMX cible Windows, macOS, iOS et Android. En .NET, les contrôles visionneuse sont disponibles pour WinForms, WPF et Avalonia.

Signatures avancées

PAdES via sgcSign, signature de base intégrée

sgcPDF signe et vérifie seul les fichiers PDF avec un certificat PFX. Pour les niveaux PAdES baseline B-B, B-T, B-LT et B-LTA, et pour les clés conservées sur cartes à puce, dans le magasin de certificats Windows ou des HSM cloud, le pont optionnel TsgcPDFPAdESSigner utilise les fournisseurs de clés de sgcSign, sous licence séparée.

Une bibliothèque pour tout le cycle de vie du PDF

De la première page que tu écris au fichier signé, archivé et caviardé que tu remets, chaque étape s’exécute dans la même base de code Object Pascal.

Créer : des documents à partir du code, du HTML ou d’un canevas

Pages, texte dans les 14 polices standard ou polices TrueType et OpenType incorporées et sous-ensembles, images (JPEG, PNG, BMP, TIFF), lignes, courbes, dégradés, tableaux qui s’étalent sur plusieurs pages, codes-barres et QR codes, annotations et commentaires avec réponses en fil, signets et calques de contenu optionnels. Les utilisateurs peuvent aussi ajouter, modifier et commenter des annotations à la souris, directement dans les visionneuses. TsgcPDFHTMLRenderer transforme du HTML avec CSS en PDF paginé, et TsgcPDFCanvas ainsi que la relecture EMF convertissent du code de dessin existant.

Voir les fonctionnalités →

Modifier : modifie des fichiers que tu n’as pas créés

Filigranes, en-têtes, pieds de page, numéros de page et tampons, fusion et division, extraction, insertion, suppression, rotation et réorganisation des pages. L’enregistrement incrémentiel ajoute une nouvelle révision au fichier d’origine, ce qui conserve la validité des signatures antérieures.

Voir les fonctionnalités →

Afficher et rendre : visionneuses VCL, FMX, WinForms, WPF et Avalonia, plus un moteur de rendu serveur

Un contrôle visionneuse VCL avec vignettes, plan, panneau de commentaires, sélection de texte, recherche, remplissage de formulaires et impression, une visionneuse FireMonkey pour Windows, macOS, iOS et Android avec zoom par rectangle, des visionneuses .NET pour WinForms, WPF et Avalonia, et un moteur de rendu matriciel en Object Pascal pur qui transforme les pages en PNG sur des serveurs Windows et Linux sans GDI.

Voir les fonctionnalités →

Extraire : texte, positions et images

Texte brut par page ou pour tout le document, fragments de texte avec coordonnées, police et taille, et les images d’une page décodées en PNG, JPEG ou BMP. Les décodeurs couvrent Flate, LZW, ASCII85, RunLength, JPEG (baseline et progressif), JPEG 2000, CCITT G3/G4 et JBIG2.

Voir les fonctionnalités →

Sécuriser et signer : chiffrement, signatures, caviardage

Chiffrement par mot de passe RC4 40/128, AES-128 et AES-256, chiffrement par certificat (clé publique), signatures numériques avec champs visibles et horodatage, PAdES B-B, B-T, B-LT et B-LTA via le pont sgcSign, vérification des signatures, et un véritable caviardage qui supprime le contenu au lieu de le masquer.

Voir les fonctionnalités →

Se conformer : PDF/A, PDF/UA, PDF balisé, Factur-X

Sortie PDF/A-1, PDF/A-2 et PDF/A-3 aux niveaux a et b, PDF/A-4 et PDF/A-4f, avec un validateur intégré, PDF balisé avec arborescence de structure et texte alternatif, sortie et contrôles PDF/UA-1 et PDF/UA-2, fichiers incorporés avec relations PDF/A-3 et PDF/A-4f, et incorporation de factures électroniques Factur-X, ZUGFeRD et XRechnung.

Voir les fonctionnalités →

Impression : zones de page, imposition, repères

Zones de média, de recadrage, de fond perdu, de rognage et de contenu, pages d’autres documents placées comme formulaires pour l’imposition, repères de coupe, de fond perdu et de repérage, couleurs Separation et DeviceN, aperçu de surimpression et intention de sortie PDF/X, dans Delphi et .NET.

Voir les fonctionnalités →

Quelques lignes de Delphi

Chaque exemple de cette page provient d’un programme compilé avec les sources sgcPDF et exécuté. Les coordonnées sont exprimées en points PDF (1/72e de pouce), l’origine étant le coin inférieur gauche de la page.

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-barres Code 128 dans une boîte de 250 x 60 points, noir sur blanc
    oSymbol.Symbology := bcCode128;
    oSymbol.Text := 'TKT-2026-001';
    oSymbol.DrawToPDF(oPage, 50, 680, 250, 60, $000000, $FFFFFF);
    // QR Code dans une boîte de 120 x 120 points
    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;

Dessine le code-barres en graphiques vectoriels directement sur la page. Unités : sgcPDF_Document, sgcPDF_Barcodes, sgcPDF_Barcode_Symbol. Voir TsgcPDFBarcodeSymbol et le guide des codes-barres.

#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-barres Code 128 dans une boîte de 250 x 60 points, noir sur blanc
    oSymbol->Symbology = bcCode128;
    oSymbol->Text = "TKT-2026-001";
    oSymbol->DrawToPDF(oPage, 50, 680, 250, 60, 0x000000, 0xFFFFFF);
    // QR Code dans une boîte de 120 x 120 points
    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;
  }
}

Compilé avec les en-têtes C++ Builder générés à partir des sources de sgcPDF. Voir la rubrique TsgcPDFBarcodeSymbol et les notes 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-barres Code 128 dans une boîte de 250 x 60 points, noir sur blanc
            TsgcPDFBarcodeSymbol oSymbol = new TsgcPDFBarcodeSymbol();
            oSymbol.Symbology = TsgcPDFBarcodeType.bcCode128;
            oSymbol.Text = "TKT-2026-001";
            oSymbol.DrawToPDF(oPage, 50, 680, 250, 60, 0x000000, 0xFFFFFF);

            // QR Code dans une boîte de 120 x 120 points
            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 classe .NET n’a aucune dépendance à WinForms ni à GDI, elle fonctionne donc aussi sur des serveurs et dans des outils en console. Voir les différences de l’API .NET.

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 affichant les symboles Code 128, Code 39, EAN-13, EAN-8, UPC-A, ITF, Codabar, QR Code, DataMatrix, PDF417 et GS1-128
Un seul contrôle de code-barres, onze symbologies dont QR Code, DataMatrix et PDF417

20 composants dans la palette sgcPDF

Dépose-les sur une fiche ou un module de données, ou crée-les en code. Chaque composant est également utilisable sans fiche, depuis des applications console et des services.

Tous les composants

Essai et licences

sgcPDF est concédé sous licence séparément, à partir de €249 pour un développeur unique. Chaque licence inclut le code source complet, 1 an de mises à jour et 50 % à 70 % de réduction sur le renouvellement. Pour l’évaluer d’abord, télécharge l’essai gratuit. sgcPDF fait aussi partie de sgcUI Enterprise et du pack All-Access.

sgcPDF

€249

Licences Single, Team et Site disponibles.

  • Les 20 composants et les unités sgcPDF_*.pas
  • Delphi 7 à 13 et C++ Builder
  • Windows, Linux, macOS, iOS et Android
  • Code source complet
  • 1 an de mises à jour

sgcPDF .NET

€249

Licences Single, Team et Site disponibles.

  • NuGet: esegece.sgcPDF
  • .NET Standard 2.0, .NET Framework 4.7.2, .NET 6, .NET 8, .NET 9, .NET 10
  • Code source complet
  • 1 an de mises à jour

sgcPDF pour .NET

sgcPDF est également disponible pour .NET sous la forme d'un portage C# entièrement managé, avec les mêmes noms de classes que la bibliothèque Delphi. Il est distribué sous forme de paquets NuGet pour .NET Standard 2.0, .NET Framework 4.7.2, .NET 6, .NET 8, .NET 9 et .NET 10, sans DLL native.

esegece.sgcPDF

La bibliothèque : modèle de document, analyseur, générateur, éditeur, moteur de rendu, polices, images, formulaires, signatures, chiffrement, extraction de texte et d'images, prépresse, PDF/A (dont PDF/A-4) et PDF/UA-2.

esegece.sgcPDF.WinForms

Extension Windows Forms : moteur de rendu GDI et canevas, lecture EMF, export des pages en images, et les contrôles TsgcPDFViewerControl (avec annotations interactives et réponses aux commentaires), TsgcPDFThumbnailView et TsgcPDFOutlineView, avec zones de page et outil de mesure.

esegece.sgcPDF.Wpf

Visionneuse WPF : TsgcWpfPDFViewer, TsgcWpfPDFThumbnailView et TsgcWpfPDFOutlineView, avec modes de zoom, zoom par rectangle, sélection de texte, recherche, liens, zones de page et outil de mesure. Les annotations et les champs de formulaire sont affichés.

esegece.sgcPDF.Avalonia

Visionneuse Avalonia : TsgcAvaloniaPDFViewer, TsgcAvaloniaPDFThumbnailView et TsgcAvaloniaPDFOutlineView, avec les mêmes fonctions de visualisation que la visionneuse WPF, plus le zoom par pincement.

esegece.sgcPDF.sgcSign

Passerelle optionnelle vers sgcSign .NET : TsgcPDFPAdESSigner signe au format PAdES B-B, B-T, B-LT et B-LTA avec n'importe quel fournisseur de clés 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

Chaque paquet est également disponible en édition Community gratuite avec le suffixe .Community, par exemple dotnet add package esegece.sgcPDF.Community. Les deux éditions offrent les mêmes fonctionnalités. L'édition Community est gratuite pour les particuliers et les organisations dont le chiffre d'affaires brut annuel est inférieur à 1 million d'euros et qui comptent au maximum 5 développeurs, et affiche une brève notification au démarrage. L'édition enregistrée supprime cette notification et inclut la licence commerciale.

Voir sur NuGet Téléchargements .NET

sgcPDF fait partie de sgcUI Enterprise

sgcPDF appartient à la suite de composants Delphi et C++ Builder sgcUI et il est inclus dans l’édition sgcUI Enterprise, avec tous les autres produits sgcUI. Il est aussi disponible en pack individuel. Les prix figurent sur la page des tarifs sgcUI et sur la page des tarifs sgcPDF.

sgcReports

Concepteur et moteur de rapports qui exporte les rapports terminés en PDF via sgcPDF.

Découvrir sgcReports →

sgcGrid

Grille de données hautes performances pour Delphi et C++ Builder.

Découvrir sgcGrid →

sgcCharts

Graphiques pour tableaux de bord et rapports.

Découvrir sgcCharts →

sgcDashboard

Tuiles, KPI et dispositions pour tableaux de bord.

Découvrir sgcDashboard →

Aide en ligne : introduction, démarrage rapide, installation et installation .NET.

Autres produits eSeGeCe

Associe sgcPDF à nos autres bibliothèques de composants Delphi et C++ Builder.

sgcSign

Signatures numériques d’entreprise. XAdES, PAdES, CAdES et ASiC avec 10 fournisseurs de clés et 21 profils de pays de l’UE.

En savoir plus →

sgcWebSockets

Composants WebSocket, HTTP/2, MQTT, AMQP et WebRTC d’entreprise pour Delphi, C++ Builder et .NET.

En savoir plus →

sgcHTML

Composants HTML et UI côté serveur pour Delphi et C++ Builder, construits sur Bootstrap et htmx.

En savoir plus →

sgcCrypto

Cryptographie moderne en Object Pascal pur : AES-GCM, SHA-3, Ed25519, X.509 et post-quantique ML-KEM et ML-DSA.

En savoir plus →
3,000+Développeurs
20+Ans
761+Composants
30+Intégrations d'API
5Plateformes
Garantie satisfait ou remboursé de 30 joursPas satisfait ? Demandez un remboursement intégral dans les 30 jours suivant l'achat. Voir la politique de remboursement

Du PDF sans la DLL

Crée, affiche, signe et archive des fichiers PDF avec le code Delphi ou C++ Builder que tu as déjà.