sgcPDF Functiematrix

Alles wat sgcPDF doet, gegroepeerd per taak. Elke functie is geïmplementeerd in Object Pascal in de sgcPDF_*.pas-units en wordt geleverd met volledige broncode. De codevoorbeelden op deze pagina zijn gecompileerd tegen de sgcPDF-bronnen en uitgevoerd.

Maken

13 functies

Bewerken

6 functies

Extraheren

5 functies

Formulieren

3 functies

Maken

FunctieDetails
Pagina'sElke pagina­grootte en -oriëntatie, A4, Letter of aangepast, en paginarotatie.
TekstDe 14 standaard PDF-lettertypen en gekleurde tekst, met alineaterugloop via de canvas- en HTML-renderers.
Ingesloten lettertypenTrueType, OpenType (TrueType- en CFF-omtrekken) en TrueType-collecties, automatisch ingesloten en gesubset, met Unicode ToUnicode-mappings zodat tekst gekopieerd en doorzocht kan worden.
Complexe schriftsystemenKerning en ligaturen, Arabische verbindingsvormen via GSUB, en het bidirectionele Unicode-algoritme voor tekst van rechts naar links.
CJK-tekstChinese, Japanse en Koreaanse tekst via ingesloten TrueType- en TrueType-collectielettertypen.
AfbeeldingenJPEG, PNG met alfa, BMP en TIFF (inclusief CCITT-faxafbeeldingen), met zachte maskers.
VectorafbeeldingenLijnen, rechthoeken, cirkels, ellipsen, Bézier-krommen, veelhoeken, streeppatronen, lijnuiteinden en -verbindingen, transparantie en verlopen.
TabellenTabellen met koppen, randen, celopvulling en kleuren die over pagina's doorlopen.
BarcodesCode 128, Code 39, EAN-13, EAN-8, UPC-A, ITF, Codabar, GS1-128, QR-code, DataMatrix (ECC200) en PDF417, getekend als vectoren.
Annotaties en linksTekstnotities, markeringen, links naar URL's en pagina's, stempels en vrije-tekstannotaties.
Bladwijzers en lagenGeneste bladwijzers (overzicht) en optionele inhoudsgroepen (lagen) die lezers kunnen tonen of verbergen.
HTML naar PDFTsgcPDFHTMLRenderer: koppen, alinea's, inline CSS-stijlen, lijsten, tabellen, afbeeldingen, links, pagina-einden, kop- en voetteksten en paginanummers.
Canvas en EMF naar PDFTsgcPDFCanvas legt tekenaanroepen vast in PDF-inhoud, en EMF-metabestanden worden teruggespeeld als PDF-vectoren, zodat bestaande rapport- en grafiekcode PDF-uitvoer produceert.

HTML naar PDF

procedure HTMLToPDF(const APDFFile: string);
var
  oHTML: TsgcPDFHTMLRenderer;
begin
  oHTML := TsgcPDFHTMLRenderer.Create(nil);
  try
    oHTML.PageWidth := 595;
    oHTML.PageHeight := 842;
    oHTML.FooterText := 'Page {page} of {pages}';
    oHTML.HTMLToPDFFile(
      '<html><head><style>h1 { color: #003366 }</style></head><body>' +
      '<h1>Invoice 2026-001</h1>' +
      '<table><tr><th>Item</th><th>Amount</th></tr>' +
      '<tr><td>Consulting</td><td>299.00</td></tr></table>' +
      '</body></html>', APDFFile);
  finally
    oHTML.Free;
  end;
end;

Bewerken

FunctieDetails
Watermerken en stempelsTekstwatermerken met lettertype, grootte, rotatie, kleur en dekking, op één of alle pagina's.
Kop-/voetteksten, paginanummersKop- en voetteksttekst en paginanummers met een formaat zoals Page %d of %d.
PaginabewerkingenDocumenten samenvoegen, splitsen, paginabereiken extraheren, invoegen, verwijderen, roteren en herordenen.
Incrementeel opslaanWijzigingen worden als nieuwe revisie aan het oorspronkelijke bestand toegevoegd, waardoor eerdere digitale handtekeningen geldig blijven.
Compacte uitvoerObjectstromen en kruisverwijzingsstromen voor kleinere bestanden, plus TsgcPDFOptimizer om duplicaten en ongebruikte objecten te verwijderen en afbeeldingen te downsamplen.
Grote bestandenOffsets zijn end-to-end 64 bit en objecten worden on demand vanuit een stream geladen, zodat bestanden groter dan 2 GB kunnen worden geopend en opgeslagen.

Renderen & viewers

FunctieDetails
VCL-viewerTsgcPDFViewerControl met scrollen, zoommodi, paginanavigatie, tekstselectie en kopiëren, zoeken met markering, formuliervelden invullen, linknavigatie en afdrukken, plus TsgcPDFThumbnailView en TsgcPDFOutlineView.
FireMonkey-viewerTsgcPDFViewerFMX tekent via het FMX-canvas op Windows, macOS, iOS en Android.
Raster-renderer voor serversTsgcPDFRendererRaster is een raster-engine in puur Object Pascal die pagina's zonder GDI naar pixels of PNG rendert, op Windows en Linux.
GDI-renderer en exportRenderen naar een bitmap of apparaatcontext op Windows, en pagina's en miniaturen exporteren naar BMP, PNG of JPEG met TsgcPDFExporter.
Grafisch modelDeviceGray-, DeviceRGB-, DeviceCMYK-, geïndexeerde, ICCBased- en Lab-kleurruimtes, axiale en radiale verlopen, tegelpatronen, zachte maskers, meng-dekking en formulier-XObjects.
LettertypenIngesloten TrueType-, CFF-, OpenType- en Type 1-lettertypeprogramma's worden gerenderd vanuit hun omtrekken, met de standaardcoderingen en Identity-H CID-lettertypen.
BeelddecodersFlate, LZW, ASCII85, ASCIIHex, RunLength, JPEG (baseline en progressief, CMYK), JPEG 2000, CCITT groep 3 en 4, en JBIG2.

Extraheren

FunctieDetails
TekstPaginatekst of tekst van het hele document, met Unicode-mapping van ingesloten en CID-lettertypen.
TekstpositiesTsgcPDFTextExtractor geeft elk tekstfragment terug met X, Y, lettertypenaam en -grootte.
ZoekenTekst vinden op een pagina of in het document.
AfbeeldingenTsgcPDFImageExtractor somt de afbeeldingen van een pagina op, inclusief inline afbeeldingen en die in formulier-XObjects, en decodeert ze naar PNG, JPEG of BMP.
Metadata en bijlagenDocumentinformatie, XMP-metadata, bladwijzers, lagen en ingesloten bestanden.

Formulieren

FunctieDetails
Formulieren makenTekstvelden, selectievakjes, keuzerondjes, keuzelijsten, lijstvakken en drukknoppen met verschijningsstromen.
Invullen en plettenStel veldwaarden in via code of de viewer, en plet vervolgens het formulier tot statische pagina-inhoud.
FDF en XFDFImporteer en exporteer formuliergegevens als FDF en XFDF.

Beveiliging & handtekeningen

FunctieDetails
WachtwoordversleutelingRC4 40-bit en 128-bit, AES-128 en AES-256 (revisies 5 en 6), met gebruikers- en eigenaarswachtwoord en machtigingsvlaggen. Versleutelde bestanden worden bij het laden ontsleuteld.
CertificaatversleutelingPublieke-sleutelversleuteling voor een of meer ontvangercertificaten (adbe.pkcs7.s4 en adbe.pkcs7.s5).
Digitale handtekeningenOndertekenen met een PFX-certificaat, zichtbare of onzichtbare handtekeningvelden, SHA-256, SHA-384 en SHA-512, RFC 3161-tijdstempels en documenttijdstempels.
PAdES via sgcSignTsgcPDFPAdESSigner produceert ETSI.CAdES.detached-handtekeningen op de niveaus B-B, B-T, B-LT en B-LTA, met DSS-validatiegegevens, met behulp van elke sleutelprovider van sgcSign (PEM, PFX, PKCS#11, Windows-certificaatarchief, cloud-HSM's). sgcSign wordt apart gelicentieerd.
VerificatieTsgcPDFSignatureVerifier controleert de integriteit, dekking van het bytebereik, ondertekenaarscertificaat en certificaatketen van elke handtekening.
RedigerenTsgcPDFRedactor verwijdert tekst op glyfniveau, beeldpixels, vectorpaden en annotaties onder een gebied of die overeenkomen met tekst, voegt een overlay toe en kan metadata verwijderen. De verwijderde tekst kan niet uit de uitvoer worden geëxtraheerd.

AES-256-wachtwoordversleuteling

procedure CreateEncryptedPDF(const AFileName: string);
var
  oPDF: TsgcPDFDocument;
begin
  oPDF := TsgcPDFDocument.Create;
  try
    oPDF.AddPage(595, 842).DrawText('Secret', 50, 780, sfHelveticaBold, 24);
    // user password opens the file, owner password grants full rights
    oPDF.SetEncryption(emAES_256, 'user123', 'owner456');
    oPDF.SaveToFile(AFileName);
  finally
    oPDF.Free;
  end;
end;

Ondertekenen met een PFX-certificaat

procedure SignPDF(const AInput, AOutput: string);
var
  oSigner: TsgcPDFSignatureHandler;
begin
  oSigner := TsgcPDFSignatureHandler.Create;
  try
    oSigner.LoadCertificateFromPFX('signer.pfx', 'test123');
    oSigner.Reason := 'Document approval';
    oSigner.Location := 'Barcelona';
    oSigner.HashAlgorithm := shaSHA256;
    // visible signature field on page 1: Left, Bottom, Right, Top
    oSigner.SetField('Signature1', 0, 50, 50, 250, 100);
    oSigner.SignDocument(AInput, AOutput);
  finally
    oSigner.Free;
  end;
end;

PAdES via de sgcSign-brug

procedure SignPAdES(const AInput, AOutput: string);
var
  oKey: TsgcPEMKeyProvider;
  oSigner: TsgcPDFPAdESSigner;
begin
  oKey := TsgcPEMKeyProvider.Create(nil);
  oSigner := TsgcPDFPAdESSigner.Create(nil);
  try
    // any sgcSign key provider: PEM, PFX, PKCS#11, Windows store, cloud HSM
    oKey.LoadFromFile('signer.pem', 'signer.key');
    oSigner.KeyProvider := oKey;
    // paBB, paBT (timestamp), paBLT and paBLTA (long term validation)
    oSigner.Level := paBB;
    // signature field and appearance through the sgcPDF handler
    oSigner.Handler.SetField('Signature1', 0, 350, 50, 550, 110);
    oSigner.Handler.SignerName := 'John Smith';
    oSigner.Handler.Reason := 'Approved';
    oSigner.SignPDFFile(AInput, AOutput);
    oSigner.KeyProvider := nil;
  finally
    oSigner.Free;
    oKey.Free;
  end;
end;

Een naam en een gebied redigeren

procedure RedactFile(const AInput, AOutput: string);
var
  oRedactor: TsgcPDFRedactor;
  vOptions: TsgcPDFRedactionOptions;
begin
  oRedactor := TsgcPDFRedactor.Create;
  try
    // every occurrence of a text, on all pages
    oRedactor.AddText('John Smith');
    // an area of page 0: left, bottom, right, top in points
    oRedactor.AddArea(0, 50, 500, 250, 650);
    vOptions := oRedactor.Options;
    vOptions.OverlayText := 'REDACTED';
    vOptions.RemoveMetadata := True;
    oRedactor.Options := vOptions;
    oRedactor.Apply(AInput, AOutput);
  finally
    oRedactor.Free;
  end;
end;

Archivering & toegankelijkheid

FunctieDetails
PDF/APDF/A-1-, PDF/A-2- en PDF/A-3-uitvoer in niveaus a en b, met XMP-metadata, output intent en ingesloten lettertypen.
ValidatorTsgcPDFAValidator controleert een bestand tegen het geselecteerde PDF/A-niveau en rapporteert fouten en waarschuwingen.
Getagde PDFStructuurboom met Document, Part, Sect, H1 tot en met H6, P, L, LI, Table, TR, TH, TD en Figure met alternatieve tekst, gemarkeerde inhoud, rolmapping, taal en MarkInfo.
PDF/UA-1Toegankelijke uitvoer samen met PDF/A-2a of PDF/A-3a, en PDF/UA-1-controles in de validator.
BijlagenIngesloten bestanden met MIME-type, datums en PDF/A-3 gerelateerde bestandsrelaties.
Factur-X en ZUGFeRDSluit de factuur-XML in met het Factur-X XMP-uitbreidingsschema voor de profielen Minimum, Basic WL, Basic, EN 16931, Extended en XRechnung, en slaat het bestand op als PDF/A-3b.

Factur-X-factuur als PDF/A-3b

procedure CreateFacturX(const AInvoiceXML, AFileName: string);
var
  oPDF: TsgcPDFDocument;
  oXML: TMemoryStream;
  vXML: TBytes;
  vFont: Integer;
begin
  oPDF := TsgcPDFDocument.Create;
  oXML := TMemoryStream.Create;
  try
    // the invoice XML (CII) is created by your application
    oXML.LoadFromFile(AInvoiceXML);
    SetLength(vXML, oXML.Size);
    Move(oXML.Memory^, vXML[0], oXML.Size);
    oPDF.Info.Title := 'Invoice 2026-001';
    // PDF/A requires embedded fonts
    vFont := oPDF.AddTrueTypeFont('Arial', False, False);
    oPDF.AddPage(595, 842).DrawTextTT('Invoice 2026-001', 50, 780, vFont, 18);
    // embeds factur-x.xml, adds the Factur-X XMP schema, saves as PDF/A-3b
    oPDF.Attachments.AddFacturX(vXML, fxpEN16931);
    oPDF.SaveToFile(AFileName);
  finally
    oXML.Free;
    oPDF.Free;
  end;
end;

PDF/A valideren

procedure ValidatePDFA(const AFileName: string);
var
  oParser: TsgcPDFParser;
  oValidator: TsgcPDFAValidator;
  i: Integer;
begin
  oParser := TsgcPDFParser.Create;
  oValidator := TsgcPDFAValidator.Create(paA3b);
  try
    oParser.LoadFromFile(AFileName);
    oParser.Parse;
    if oValidator.Validate(oParser) then
      WriteLn('PDF/A-3b: no errors')
    else
      for i := 0 to oValidator.Errors.Count - 1 do
        WriteLn('Error: ', oValidator.Errors[i]);
  finally
    oValidator.Free;
    oParser.Free;
  end;
end;
De beste deal: All-AccessElk eSeGeCe-product, inclusief Premium-ondersteuning, vanaf €1,059 per jaar.
Bekijk de All-Access-prijzen

Bouw met sgcPDF

Vraag een proefversie aan en voeg PDF-functies toe aan uw Delphi- of C++Builder-toepassing.