sgcPDF Özellik Matrisi

sgcPDF’nin yaptığı her şey, göreve göre gruplandırılmıştır. Her özellik sgcPDF_*.pas birimlerinde Object Pascal ile uygulanır ve tam kaynak koduyla birlikte gelir. Bu sayfadaki kod örnekleri sgcPDF kaynaklarına karşı derlenip çalıştırılmıştır.

Oluşturma

14 Özellik

Düzenleme

7 Özellik

Çıkarma

5 Özellik

Formlar

4 Özellik

Baskı Öncesi

7 Özellik

.NET

5 NuGet Paketi

Oluşturma

ÖzellikAyrıntılar
SayfalarA4, Letter veya özel herhangi bir sayfa boyutu ve yönü, ayrıca sayfa döndürme.
Metin14 standart PDF yazı tipi ve renkli metin; kanvas ve HTML işleyicileri aracılığıyla paragraf kaydırma.
Gömülü yazı tipleriTrueType, OpenType (TrueType ve CFF anahatları) ve TrueType koleksiyonları otomatik olarak gömülür ve alt kümelenir; Unicode ToUnicode eşlemeleriyle metin kopyalanabilir ve aranabilir.
Karmaşık Yazı SistemleriKerning ve ligatürler, GSUB aracılığıyla Arapça bağlama biçimleri ve sağdan sola metin için Unicode çift yönlü algoritması.
CJK MetniGömülü TrueType ve TrueType koleksiyon yazı tipleri aracılığıyla Çince, Japonca ve Korece metin.
GörüntülerJPEG, alfa kanallı PNG, BMP ve TIFF (CCITT faks görüntüleri dahil), yumuşak maskelerle.
Vektörel GrafiklerÇizgiler, dikdörtgenler, daireler, elipsler, Bézier eğrileri, çokgenler, kesikli çizgi desenleri, çizgi uçları ve birleşimleri, saydamlık ve gradyanlar.
TablolarSayfalar arasında devam eden başlıklara, kenarlıklara, hücre boşluğuna ve renklere sahip tablolar.
BarkodlarCode 128, Code 39, EAN-13, EAN-8, UPC-A, ITF, Codabar, GS1-128, QR Kod, DataMatrix (ECC200) ve PDF417; vektör olarak çizilir. TsgcPDFBarcodeControl (VCL) ve TsgcPDFBarcodeFMX (FireMonkey) denetimleri ile .NET içinde TsgcPDFBarcodeControl (WinForms), TsgcWpfPDFBarcodeControl ve TsgcAvaloniaPDFBarcodeControl bunları formlarda gösterir, PNG veya SVG olarak kaydeder ve Symbol.DrawToPDF ile bir PDF sayfasına çizer. WPF ve Avalonia denetimleri modülleri tam cihaz pikselleri üzerinde vektör geometri olarak çizer ve her özellik bir bağımlılık özelliği ya da biçimlendirilmiş özellik olduğundan metin XAML içinde bağlanabilir. Hepsi sgcPDF sürümlerinin tümünde bulunur.
Notlar ve BağlantılarYapışkan notlar, serbest metin, vurgu, altı çizili ve üstü çizili metin, çizgiler ve oklar, kareler ve daireler, serbest çizim (mürekkep) ve damgalar, ayrıca URL’lere ve sayfalara bağlantılar. Görünüm akışları (appearance streams) oluşturulur, böylece notlar Adobe Acrobat’ta, tarayıcılarda ve diğer görüntüleyicilerde görüntülenir.
Yorum YanıtlarıHerhangi bir nota eklenen yanıtlar, her biri kendi yazarı, tarihi ve içeriğiyle, konu zincirli bir tartışma oluşturur.
Yer İmleri ve Katmanlarİç içe yer imleri (ana hat) ve okuyucuların gösterip gizleyebileceği isteğe bağlı içerik grupları (katmanlar).
HTML'den PDF'yeTsgcPDFHTMLRenderer: başlıklar, paragraflar, satır içi CSS stilleri, listeler, tablolar, görüntüler, bağlantılar, sayfa sonları, başlık/altbilgi ve sayfa numaraları.
Kanvas ve EMF'den PDF'yeTsgcPDFCanvas çizim çağrılarını PDF içeriğine kaydeder ve EMF meta dosyaları PDF vektörlerine yeniden oynatılır; böylece mevcut rapor ve grafik kodu PDF çıktısı üretir.

HTML'den PDF'ye

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;

Düzenleme

ÖzellikAyrıntılar
Filigranlar ve DamgalarYazı tipi, boyut, döndürme, renk ve opaklık ile bir sayfada veya tüm sayfalarda metin filigranları.
Başlık/Altbilgi, Sayfa NumaralarıPage %d of %d gibi bir biçimle başlık ve altbilgi metni ve sayfa numaraları.
Sayfa İşlemleriBelgeleri birleştirme, bölme, sayfa aralıklarını çıkarma, ekleme, silme, döndürme ve sayfaları yeniden sıralama.
Artımlı KaydetmeDeğişiklikler orijinal dosyaya yeni bir revizyon olarak eklenir, böylece önceki dijital imzalar geçerli kalır.
Mevcut NotlarMevcut bir PDF’nin notları; yazar, tarih, yanıtlar ve geometriyle birlikte türlendirilmiş nesneler olarak yüklenir. Bunları kodda veya görüntüleyicide düzenleyip kaydedin ya da orijinal baytlara dokunmadan değişiklikleri eklemek için SaveIncremental çağırın; böylece mevcut imzalar bozulmaz.
Kompakt ÇıktıDaha küçük dosyalar için nesne akışları ve çapraz başvuru akışları, ayrıca yinelenenleri ve kullanılmayan nesneleri kaldırmak ve görüntüleri alt örneklemek için TsgcPDFOptimizer.
Büyük DosyalarOfsetler uçtan uca 64 bittir ve nesneler bir akıştan isteğe bağlı olarak yüklenir; böylece 2 GB’ın üzerindeki dosyalar açılabilir ve kaydedilebilir.

İşleme & Görüntüleyiciler

ÖzellikAyrıntılar
VCL GörüntüleyiciKaydırma, yakınlaştırma modları, sayfa gezinmesi, metin seçimi ve kopyalama, vurgulamalı arama, form alanı doldurma, bağlantı gezinmesi ve yazdırma içeren TsgcPDFViewerControl, ayrıca TsgcPDFThumbnailView ve TsgcPDFOutlineView.
FireMonkey GörüntüleyiciTsgcPDFViewerFMX, Windows, macOS, iOS ve Android üzerinde FMX kanvası aracılığıyla çizer. Kutu yakınlaştırma (SelectionMode psmZoom, OnMarqueeZoom), fareyle veya uzun basıp sürükleyerek çizilen bir dikdörtgene yakınlaştırır. Metin arama: FindText her eşleşmeyi bulur ve vurgular, ilkine kaydırır, FindNext ve FindPrevious eşleşmeler arasında geçiş yapar, OnSearchProgress her sayfayı bildirir ve uzun bir aramayı durdurabilir. SearchColor ve SearchCurrentColor vurgu renklerini belirler. Görünüm modları: ViewMode tek sayfa (fvmSinglePage, fare tekerleği ile ve Page Up ile Page Down tuşlarıyla sayfa değiştirir), sürekli (fvmContinuous, varsayılan) veya iki sayfa (fvmTwoPage, yan yana, sağdan sola desteğiyle) seçer.
.NET GörüntüleyicilerWinForms için TsgcPDFViewerControl, WPF için TsgcWpfPDFViewer ve Avalonia için TsgcAvaloniaPDFViewer; her biri küçük resim ve ana hat görünümleriyle. WPF ve Avalonia görüntüleyicileri yakınlaştırma modları, Ctrl+tekerlek ve kutu yakınlaştırma (Avalonia’da çimdik), metin seçimi ve kopyalama, vurgulu arama, bağlantılar ve ana hat gezinmesi, sayfa kutuları ve ölçüm aracına sahiptir. WinForms görüntüleyici gibi, notları düzenler ve formları doldururlar.
Etkileşimli NotlarDelphi VCL ve FMX, C++Builder ve .NET WinForms, WPF ve Avalonia içinde son kullanıcılar fareyle not oluşturur: yapışkan notlar, serbest metin, metin üzerinde vurgu, altı çizili ve üstü çizili işaretleme, çizgiler ve oklar, dikdörtgenler ve elipsler, serbest çizim ve damgalar. Bunları seçer, taşır, yeniden boyutlandırır, düzenler ve siler. Bir nota tıklamak yazarı, tarihi, içeriği ve yanıtları gösteren bir açılır pencere açar; kullanıcılar buradan düzenleyebilir ve yanıtlayabilir. Görüntüleyiciler OnAnnotationClick, OnAnnotationAdd, OnAnnotationChange, OnAnnotationDelete ve OnAnnotationSelect olaylarını tetikler. WPF ve Avalonia görüntüleyicilerinde AnnotationEditing düzenlemeyi açar ve AnnotationTool aracı seçer.
Görüntüleyici teması (sgcUI ile)UseUITheme ile VCL, FireMonkey, WinForms, WPF ve Avalonia görüntüleyicileri ve küçük resim, ana hat ve yorum görünümleri renklerini sgcUI uygulama temasından alır: sayfaların çevresindeki alan, açılır pencereler, seçim ve koyu temada koyu kaydırma çubukları; tema, ön ayar veya vurgu değiştiğinde yeniden çizilir. Sayfalar ve not renkleri değişmez. Delphi ve C++Builder'da sgcUIPDF_Theme birimini, .NET'te esegece.sgcUICore.sgcPDF paketini gerektirir.
Yorumlar PaneliTsgcPDFCommentsView (VCL) ve TsgcPDFCommentsViewFMX, her notu sayfaya göre yazar, tarih, içerik ve konu zincirli yanıtlarla listeler ve görüntüleyiciyle eşzamanlı çalışır.
Görüntü görüntüleyici ve düzenleyiciTsgcPDFImageEditor (VCL), TsgcPDFImageEditorFMX ve .NET’te TsgcPDFImageEditor (WinForms), TsgcWpfPDFImageEditor ile TsgcAvaloniaPDFImageEditor, bir fotoğrafı veya taranmış bir sayfayı yakınlaştırma, kaydırma ve sığdırma modlarıyla gösterir; döndürür, çevirir ve kırpar; kalem, çizgi, ok, dikdörtgen, elips, metin ve vurgu notları çizer, geri alma ve yineleme desteğiyle. Sonuç PNG, JPEG veya BMP olarak kaydedilir ya da ExportToPDF, özgün görüntüyü ve notları vektör grafik olarak içeren bir PDF sayfası yazar. Yüklenen görüntü hiçbir zaman değişmez: düzenlemeler JSON olarak kaydedilir ve daha sonra yeniden yüklenir; ReadOnly denetimi bir görüntüleyiciye dönüştürür. Yardım
Sunucular için Raster İşleyiciTsgcPDFRendererRaster, Windows ve Linux üzerinde GDI olmadan sayfaları piksellere veya PNG’ye işleyen saf Object Pascal raster işleyicidir.
ve Dışa AktarmaWindows’ta bir bit eşlem veya aygıt bağlamına işleme ve TsgcPDFExporter ile sayfaları ve küçük resimleri BMP, PNG veya JPEG’ye aktarma.
Grafik ModeliDeviceGray, DeviceRGB, DeviceCMYK, indeksli, ICCBased ve Lab renk uzayları, eksenel ve radyal gölgelendirmeler, mozaik desenler, yumuşak maskeler, harmanlama opaklığı ve form XObject’leri.
Yazı TipleriGömülü TrueType, CFF, OpenType ve Type 1 yazı tipi programları anahatlarından işlenir; standart kodlamalar ve Identity-H CID yazı tipleriyle.
Görüntü ÇözücüleriFlate, LZW, ASCII85, ASCIIHex, RunLength, JPEG (baseline ve progresif, CMYK), JPEG 2000, CCITT Grup 3 ve 4, ve JBIG2.

Bir fotoğrafa not ekleyin ve PDF’e aktarın

procedure AnnotatePhoto(aEditor: TsgcPDFImageEditor; const aFileName: string);
var
  oModel: TsgcPDFImageEditorModel;
  oArrow, oNote: TsgcPDFImageAnnotation;
begin
  aEditor.LoadFromFile(aFileName);
  oModel := aEditor.Model;
  oModel.SaveUndoState;
  // crop: source pixels, the annotations below use output pixels
  oModel.CropRect := sgcPDFImageRect(40, 30, 840, 630);
  // an arrow from the start point to the tip
  oArrow := oModel.Annotations.Add(iakArrow);
  oArrow.Color := $FFFF0000;
  oArrow.Width := 5;
  oArrow.AddPoint(120, 420);
  oArrow.AddPoint(360, 240);
  // a text note: Rect is the text box, FontSize in points
  oNote := oModel.Annotations.Add(iakText);
  oNote.Color := $FF0000FF;
  oNote.FontName := 'Arial';
  oNote.FontSize := 18;
  oNote.Text := 'Scratch on the door';
  oNote.Rect := sgcPDFImageRect(60, 440, 360, 480);
  oModel.Changed;
  // PNG from the extension, the image and the annotations flattened
  aEditor.SaveToFile(ChangeFileExt(aFileName, '.edited.png'));
  // the image placed unchanged, the annotations as vector paths and text
  aEditor.ExportToPDF(ChangeFileExt(aFileName, '.pdf'));
  // the edits as JSON, to edit them again later
  aEditor.SaveEditsToFile(ChangeFileExt(aFileName, '.json'));
end;

Fotoğrafı kırpar, kodla geri alma desteğiyle bir ok ve bir metin notu ekler, ardından düzleştirilmiş bir PNG, vektör notlu bir PDF sayfası ve düzenlemeleri JSON olarak yazar. Birimler: sgcPDF_ImageEditor, sgcPDF_ImageEditor_VCL. Bkz. TsgcPDFImageEditor.

Çıkarma

ÖzellikAyrıntılar
MetinGömülü ve CID yazı tiplerinin Unicode eşlemesiyle sayfa metni veya tüm belge metni.
Metin KonumlarıTsgcPDFTextExtractor, her metin parçasını X, Y, yazı tipi adı ve boyutuyla döndürür.
AramaBir sayfada veya belgede metin bulun.
GörüntülerTsgcPDFImageExtractor, satır içi görüntüler ve form XObject’leri içindekiler dahil bir sayfanın görüntülerini listeler ve PNG, JPEG veya BMP olarak çözer.
Meta Veri ve EklerBelge bilgileri, XMP meta verileri, yer imleri, katmanlar ve gömülü dosyalar.

Formlar

ÖzellikAyrıntılar
Form OluşturGörünüm akışlarıyla metin alanları, onay kutuları, seçenek düğmeleri, açılır kutular, liste kutuları ve push düğmeleri.
Doldur ve DüzleştirAlan değerlerini kodda veya görüntüleyicide ayarlayın, ardından formu statik sayfa içeriğine düzleştirin.
WPF ve Avalonia görüntüleyicilerinde form doldurmaFormFilling ile (varsayılan olarak açık) kullanıcılar TsgcWpfPDFViewer ve TsgcAvaloniaPDFViewer içinde metin alanlarını, onay kutularını, seçenek düğmelerini, açılan listeleri ve liste kutularını doldurur; Tab tuşu alanlar arasında sekme sırasına göre ilerler. OnFieldChange onaylanan her değer için bir kez tetiklenir, Esc eski değeri korur ve Core.Document.SaveToFile doldurulmuş formu kaydeder.
FDF ve XFDFForm verilerini FDF ve XFDF olarak içe ve dışa aktarın.

Güvenlik & İmzalar

ÖzellikAyrıntılar
Parola ŞifrelemesiRC4 40 bit ve 128 bit, AES-128 ve AES-256 (revizyon 5 ve 6), kullanıcı ve sahip parolası ile izin bayraklarıyla. Şifreli dosyalar yüklenirken çözülür.
Sertifika ŞifrelemesiBir veya daha fazla alıcı sertifikası için genel anahtar şifrelemesi (adbe.pkcs7.s4 ve adbe.pkcs7.s5).
Dijital İmzalarPFX sertifikasıyla imzalama, görünür veya görünmez imza alanları, SHA-256, SHA-384 ve SHA-512, RFC 3161 zaman damgaları ve belge zaman damgaları.
El yazısı imzalarTsgcPDFSignaturePad (VCL), TsgcPDFSignaturePadFMX ve .NET’te TsgcPDFSignaturePad (WinForms), TsgcWpfPDFSignaturePad ile TsgcAvaloniaPDFSignaturePad, bir imzayı fare, dokunmatik ekran veya kalemle yakalar. Çizgi kalınlığı kalem basıncını (VCL ve WinForms’ta işaretçi iletileri, WPF ve Avalonia’da stylus; FireMonkey basınç bildirmez) ve hızı izler, vuruşlar eğrilere yumuşatılır ve geri alma ile yineleme çalışır. İmza PNG, SVG veya JSON olarak kaydedilir ve ApplyToSignature onu vektör mürekkep ve PNG görüntü olarak dijital imzanın görünür alanına yerleştirir. Appearance.ImageData içindeki bir PNG veya JPEG, örneğin taranmış bir imza, alana da çizilir. Yardım
sgcSign üzerinden PAdESTsgcPDFPAdESSigner, sgcSign’in (PEM, PFX, PKCS#11, Windows sertifika deposu, bulut HSM’leri) herhangi bir anahtar sağlayıcısını kullanarak DSS doğrulama verileriyle B-B, B-T, B-LT ve B-LTA seviyelerinde ETSI.CAdES.detached imzaları üretir. sgcSign ayrıca lisanslanır.
DoğrulamaTsgcPDFSignatureVerifier, her imzanın bütünlüğünü, bayt aralığı kapsamını, imzalayan sertifikasını ve sertifika zincirini kontrol eder.
SansürlemeTsgcPDFRedactor, bir bölge altındaki veya bir metinle eşleşen glif düzeyinde metni, görüntü piksellerini, vektör yollarını ve notları kaldırır, bir kaplama ekler ve meta verileri silebilir. Kaldırılan metin çıktıdan çıkarılamaz.
Metni Anahatlara DönüştürmeTsgcPDFTextOutliner, her glifi aynı konum, renk ve boyutta bir vektör yoluyla değiştirir; bunu sayfa içeriğinde, form XObject nesnelerinde, döşeme desenlerinde, Type3 yazı tiplerinde ve not görünümlerinde yapar, ardından kullanılmayan yazı tiplerini kaldırır. Dosya aynı şekilde yazdırılır ve aynı görünür, ancak artık hiçbir yazı tipine ihtiyaç duymaz. Bu, baskı atölyeleri, RIP yazılımları ve gömmeyi yasaklayan yazı tipi lisansları için uygundur. Gömülü olmayan yazı tiplerindeki metin, bir görüntüleyicinin kullanacağı yedek sistem yazı tipiyle anahatlara dönüştürülür ve görünmez metin kaldırılır. Metin artık seçilemez veya aranamaz.

AES-256 Parola Şifrelemesi

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;

Bir PFX Sertifikasıyla İmzalama

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;

El yazısı imzayla imzalayın

procedure SignWithStoredSignature(const aJSONFile, aInput, aOutput: string);
var
  oModel: TsgcPDFSignaturePadModel;
  oStream: TFileStream;
  oSigner: TsgcPDFSignatureHandler;
  vAppearance: TsgcPDFSignatureAppearance;
begin
  oModel := TsgcPDFSignaturePadModel.Create;
  try
    // the strokes saved before with SaveToJSON
    oStream := TFileStream.Create(aJSONFile, fmOpenRead or fmShareDenyWrite);
    try
      oModel.LoadFromJSON(oStream);
    finally
      oStream.Free;
    end;
    oSigner := TsgcPDFSignatureHandler.Create;
    try
      oSigner.LoadCertificateFromPFX('signer.pfx', 'test123');
      oSigner.SetField('Signature1', 0, 50, 50, 300, 120);
      vAppearance := oSigner.Appearance;
      // ImageData: a PNG of the ink, InkContent: the vector ink
      oModel.ApplyToAppearance(vAppearance);
      vAppearance.ShowName := True;
      vAppearance.ShowDate := True;
      vAppearance.Text := 'Approved';
      oSigner.Appearance := vAppearance;
      oSigner.SignDocument(aInput, aOutput);
    finally
      oSigner.Free;
    end;
  finally
    oModel.Free;
  end;
end;

Bir imza panosunun JSON olarak kaydettiği imzayı yükler ve form olmadan, örneğin bir sunucuda, imzalar. Alan, mürekkebi adın, tarihin ve metnin yanında gösterir. Bir formda TsgcPDFSignaturePad.ApplyToSignature aynısını tek çağrıda yapar. Bkz. dijital imzalar kılavuzu.

sgcSign Köprüsü Üzerinden PAdES

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;

Bir Ad ve Alanı Sansürleme

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;

Tüm Metni Anahatlara Dönüştürme

procedure OutlineText(const AInput, AOutput: string);
var
  oOutliner: TsgcPDFTextOutliner;
begin
  oOutliner := TsgcPDFTextOutliner.Create;
  try
    // every glyph becomes a vector path, unused fonts are removed
    oOutliner.Apply(AInput, AOutput);
    WriteLn('Glyphs outlined: ', oOutliner.ConvertedGlyphs);
    WriteLn('Fonts removed: ', oOutliner.RemovedFonts);
  finally
    oOutliner.Free;
  end;
end;

Arşileme & Erişilebilirlik

ÖzellikAyrıntılar
PDF/Aa ve b seviyelerinde PDF/A-1, PDF/A-2 ve PDF/A-3 çıktısı ile PDF 2.0 dosyaları olarak PDF/A-4 ve PDF/A-4f (paA4, paA4f); XMP meta verileri, çıktı amacı ve gömülü yazı tipleriyle. Delphi ve .NET’te.
DoğrulayıcıTsgcPDFAValidator, bir dosyayı PDF/A-4 ve PDF/UA-2 dahil seçilen PDF/A seviyesine karşı kontrol eder ve hataları ile uyarıları bildirir. PDF/A-4, PDF/A-4f ve PDF/UA-2 çıktısı veraPDF’e karşı denetlenir.
Etiketli PDFAlternatif metin, işaretlenmiş içerik, rol eşlemesi, dil ve MarkInfo ile Document, Part, Sect, H1-H6, P, L, LI, Table, TR, TH, TD ve Figure içeren yapı ağacı.
PDF/UA-1PDF/A-2a veya PDF/A-3a ile birlikte erişilebilir çıktı ve doğrulayıcıda PDF/UA-1 kontrolleri.
PDF/UA-2PDF/UA-2 (ISO 14289-2) çıktısı için PDFUAPart değerini puaPart2 yapın; tek başına veya PDF/A-4 ile birlikte, PDF 2.0 yapı ad alanı ve yapı hedefleriyle. Delphi ve .NET’te, sgcReports dışa aktarımı ve sgcUIPDF köprüsü dahil.
EklerMIME türü, tarihler ve PDF/A-3 ile PDF/A-4f ilişkili dosya ilişkileriyle gömülü dosyalar.
Factur-X ve ZUGFeRDMinimum, Basic WL, Basic, EN 16931, Extended ve XRechnung profilleri için Factur-X XMP uzantı şemasıyla fatura XML’sini gömüp dosyayı PDF/A-3b olarak kaydeder.

PDF/A-3b Olarak Factur-X Faturası

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 Doğrulama

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;

Tek Dosyada PDF/A-4 ve PDF/UA-2

procedure CreateArchive(const AFileName: string);
var
  oPDF: TsgcPDFDocument;
  oPage: TsgcPDFPage;
  vFont: Integer;
begin
  oPDF := TsgcPDFDocument.Create;
  try
    oPDF.Info.Title := 'Annual report';
    oPDF.Tagged := True;
    oPDF.StructureTree.Lang := 'en-US';
    // PDF/A-4 and PDF/UA-2 in the same PDF 2.0 file
    oPDF.SetPDFALevel(paA4);
    oPDF.PDFUA := True;
    oPDF.PDFUAPart := puaPart2;
    vFont := oPDF.AddTrueTypeFont('Arial', False, False);
    oPage := oPDF.AddPage(595, 842);
    oPage.Tagging.BeginElement(stH1);
    oPage.DrawTextTT('Annual report', 50, 770, vFont, 20);
    oPage.Tagging.EndElement;
    oPage.Tagging.BeginElement(stP);
    oPage.DrawTextTT('Archived and accessible.', 50, 740, vFont, 11);
    oPage.Tagging.EndElement;
    oPDF.SaveToFile(AFileName);
  finally
    oPDF.Free;
  end;
end;

Dosyayı doğrulamak için TsgcPDFAValidator nesnesini paA4 ile oluşturun ve PDFUA ile PDFUAPart özelliklerini ayarlayın. Bkz. PDF/A-4 ve PDF/UA-2 yardım konuları.

Baskı Öncesi

Delphi ve .NET’te aynı adlarla aynı baskı öncesi API.

ÖzellikAyrıntılar
Sayfa kutularıTsgcPDFPage üzerinde MediaBox, CropBox, BleedBox, TrimBox ve ArtBox, Rotate ve UserUnit ile birlikte; bir dosya yüklenip kaydedilirken korunurlar.
DizgiAddPageAsForm, başka bir belgenin sayfasını bir sayfa kutusu veya dikdörtgenle keserek bir form XObject’ine dönüştürür; DrawForm, DrawFormInRect ve DrawFormMatrix bunu bir forma yerleştirir. PDFImposition demosu bunlarla yerleşim düzenleri oluşturur.
Baskı işaretleriDrawCropMarks, DrawBleedMarks, DrawRegistrationMark, DrawColorBar ve DrawSlugText.
Spot renklerSeparation, Registration ve DeviceN renk uzayları ile dolgu ve çizgi için bindirme baskı grafik durumları.
Bindirme baskı önizlemesiİşleyicideki OverprintPreview, bindirme baskıyı ekranda ve raster çıktıda simüle eder.
PDF/X çıktı amacıSetOutputIntent, isteğe bağlı bir ICC profiliyle bir GTS_PDFX çıktı amacı yazar; PDFXVersion PDF/X sürüm anahtarını belirler.
Görüntüleyici araçlarıVCL ve WinForms görüntüleyicilerinde ve WPF ile Avalonia görüntüleyicilerinde sayfa kutusu gösterimi, sayfa kutusu ipuçları ve bir ölçüm aracı.

Kesim İşaretli Tek Sayfada İki Sayfa (.NET)

using esegece.sgcPDF;
using static esegece.sgcPDF.sgcPDF_Types;

using (TsgcPDFDocument oSource = new TsgcPDFDocument())
using (TsgcPDFDocument oSheet = new TsgcPDFDocument())
{
    oSource.LoadFromFile("flyer.pdf");
    // two A4 pages side by side, placed by their trim box, with crop marks
    TsgcPDFPage oPage = oSheet.AddPage(1270, 922);
    for (int i = 0; i < 2; i++)
    {
        int vForm = oSheet.AddPageAsForm(oSource, i, TsgcPDFPageBox.ppbTrimBox);
        TsgcPDFRect oTrim = sgcPDFRect(40 + i * 595, 40, 635 + i * 595, 882);
        oPage.DrawFormInRect(vForm, oTrim, true);
        oPage.DrawCropMarks(oTrim);
    }
    oSheet.SaveToFile("sheet.pdf");
}

.NET için sgcPDF

Kitaplığın tamamen yönetilen bir C# portu olup her Delphi unit’i için bir C# dosyası içerir ve aynı sınıf adlarını (TsgcPDFDocument, TsgcPDFPage, TsgcPDFEditor ve diğerleri) kullanır. NuGet paketleri olarak sunulur; her biri .Community sonekiyle ücretsiz bir Community sürümü olarak da kullanılabilir.

PaketAyrıntılar
esegece.sgcPDFKitaplık: belge modeli, ayrıştırıcı, yazıcı, düzenleyici, işleme çekirdeği, yazı tipleri, görüntüler, formlar, imzalar, şifreleme, metin ve görüntü çıkarma, baskı öncesi, PDF/A (PDF/A-4 dahil) ve PDF/UA-2. .NET Standard 2.0, .NET Framework 4.7.2, .NET 6, .NET 8, .NET 9 ve .NET 10’u hedefler.
esegece.sgcPDF.WinFormsGDI işleyici ve tuval, EMF oynatma, sayfaların görüntü olarak dışa aktarılması ve TsgcPDFViewerControl (etkileşimli notlar ve yorum yanıtlarıyla), TsgcPDFThumbnailView, TsgcPDFBarcodeControl, TsgcPDFOutlineView, TsgcPDFSignaturePad ve TsgcPDFImageEditor denetimleri, sayfa kutuları ve ölçüm aracıyla. Windows’ta .NET Framework 4.7.2 ve .NET 8’i hedefler.
esegece.sgcPDF.WpfWPF görüntüleyici: TsgcWpfPDFViewer, TsgcWpfPDFThumbnailView ve TsgcWpfPDFOutlineView, ayrıca TsgcWpfPDFBarcodeControl, TsgcWpfPDFSignaturePad ve TsgcWpfPDFImageEditor. Windows’ta .NET Framework 4.7.2, .NET 8, .NET 9 ve .NET 10’u hedefler.
esegece.sgcPDF.AvaloniaAvalonia görüntüleyici: TsgcAvaloniaPDFViewer, TsgcAvaloniaPDFThumbnailView ve TsgcAvaloniaPDFOutlineView, ayrıca TsgcAvaloniaPDFBarcodeControl, TsgcAvaloniaPDFSignaturePad ve TsgcAvaloniaPDFImageEditor. .NET 8, .NET 9 ve .NET 10’u hedefler.
esegece.sgcPDF.sgcSignsgcSign .NET’e isteğe bağlı köprü: TsgcPDFPAdESSigner, herhangi bir sgcSign anahtar sağlayıcısıyla PAdES B-B, B-T, B-LT ve B-LTA imzalar.
Community SürümüKayıtlı sürümle aynı özelliklere sahiptir. Yıllık brüt geliri 1 milyon EUR’nun altında olan ve 5’ten fazla geliştiricisi bulunmayan bireyler ve kuruluşlar için ücretsizdir; başlangıçta kısa bir bildirim gösterir. Paketler aynı kimlikleri .Community sonekiyle kullanır, örneğin esegece.sgcPDF.Community.

Kurulum

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
En avantajlı seçenek: All-AccessTüm eSeGeCe ürünleri, Premium Destek dahil, yılda €1,059'dan itibaren.
All-Access fiyatlarına bakın

sgcPDF ile Geliştirin

Denemeyi indirin ve Delphi veya C++ Builder uygulamanıza PDF özellikleri ekleyin.