Delphi 7 à 13 et C++ Builder Aucune DLL

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

Créez, modifiez, affichez, rendez, extrayez, chiffrez, signez, caviardez et validez 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 votre 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
Aucune dépendance externe
15 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
15 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
6 Niveaux de conformité PDF/A PDF/A-1, 2 et 3, niveaux a et b, plus PDF/UA-1

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 votre 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 couvre Windows, macOS, iOS et Android.

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 vous écrivez au fichier signé, archivé et caviardé que vous remettez, 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, signets et calques de contenu optionnels. 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 : modifiez des fichiers que vous n’avez 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 et FMX, plus un moteur de rendu serveur

Un contrôle visionneuse VCL avec vignettes, plan, sélection de texte, recherche, remplissage de formulaires et impression, une visionneuse FireMonkey pour Windows, macOS, iOS et Android, 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 avec un validateur intégré, PDF balisé avec arborescence de structure et texte alternatif, contrôles PDF/UA-1, fichiers incorporés avec relations PDF/A-3, et incorporation de factures électroniques Factur-X, ZUGFeRD et XRechnung.

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;

15 composants dans la palette sgcPDF

Déposez-les sur une fiche ou un module de données, ou créez-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 un nouveau produit. Contactez eSeGeCe pour demander un essai ou un devis. Comme pour chaque bibliothèque eSeGeCe, la licence inclut le code source complet.

sgcPDF

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

Autres produits eSeGeCe

Associez 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éez, affichez, signez et archivez des fichiers PDF avec le code Delphi ou C++ Builder que vous avez déjà.