IronPDF Kullanılarak C# Dilinde PDF Dosyaları Nasıl İmzalanır | IronPDF Eğitimi

A Developer's Guide to Digitally Signing PDFs with C

This article was translated from English: Does it need improvement?
Translated
View the article in English

Bu kapsamlı kılavuz, C# geliştiricilerine IronPDF kullanarak PDF'leri dijital olarak nasıl imzalayacaklarını gösterir ve belgelerin gerçekliğini ve güvenliğini sağlamak için sertifika tabanlı imzalar, görsel damgalar ve etkileşimli form alanlarını ele alır.

PDF belgesine imza eklemek birçok uygulamada yaygın bir gerekliliktir, ancak "imzalama" farklı anlamlara gelebilir. Bazıları için bu, bir güvenlik sertifikası kullanarak sahteciliğe karşı korumalı bir dijital imza uygulamakla ilgilidir. Diğerleri için ise, bir belgeye görsel, el yazısı imza görüntüsü eklemek veya kullanıcıların elektronik olarak imzalayabilmesi için etkileşimli bir form alanı eklemek olabilir.

Bu kılavuz, C# geliştiricilerine IronPDF for .NET kütüphanesini kullanarak tüm bu görevleri nasıl gerçekleştireceklerine dair kapsamlı bir rehber sunar. Güvenli X509Certificate2 dijital imza uygulamasından grafik imzaların damgalanmasına ve etkileşimli imza alanlarının oluşturulmasına kadar her şeyi ele alacağız ve PDF belgelerinizin özgün, güvenli ve Professional olmasını sağlayacağız.

Hızlı Başlangıç: IronPDF Kullanarak PDF'leri Zahmetsizce Dijital Olarak İmzalayın

IronPDF ile hızlı bir başlangıç yapın ve basit, anlaşılır bir süreçle PDF belgelerinizi dijital olarak imzalayın. Bu örnek, bir PDF dosyasını doğrulamak ve imzalamak için bir .pfx sertifikasının nasıl kullanılacağını gösterir ve böylece belgenin bütünlüğü ve gerçekliği sağlanır. Dijital imzayı uygulamanıza sorunsuz bir şekilde entegre etmek için şu adımları izleyin.

  1. IronPDF aşağıdaki NuGet Paket Yöneticisi ile yükleyin

    PM > Install-Package IronPdf
  2. Bu kod parçacığını kopyalayın ve çalıştırın.

    new IronPdf.Signing.PdfSignature("certificate.pfx", "password").SignPdfFile("input.pdf");
  3. Canlı ortamınızda test için dağıtım yapın

    Ücretsiz deneme ile bugün projenizde IronPDF kullanmaya başlayın

    arrow pointer

Sertifika ile bir PDF'ye Dijital İmza Nasıl Uygulanır?

Belgenin gerçekliğini ve bütünlüğünü garanti altına almak için dijital sertifika dosyası (örneğin .pfx veya .p12) kullanarak bir PDF belgesine dijital imza uygulayabilirsiniz. Bu süreç, belgenin imzalandığından beri değiştirilmediğini garanti eder. Dijital imza özelliklerine ilişkin eksiksiz bir genel bakış için kapsamlı dijital imza kılavuzumuzu inceleyin.

IronPDF, bu amaçla dijital imzayı uygulamak için çeşitli yöntemleri destekleyen basit bir API sunar. Bu işlevselliğin özü, sertifikayı ve imzayla ilişkili tüm meta verileri kapsayan PdfSignature sınıfı etrafında şekillenir.

İmza Yöntemi Açıklama
İşaret Oluşturduğunuz ve yapılandırdığınız bir `PdfSignature` nesnesiyle bir PDF/A'yı imzalar.
SignWithFile Dijital imza sertifika dosyası kullanarak bir PDF'yi imzalar (.pfx veya .p12) kullanarak bir PDF'yi imzalar.
SignWithStore Bilgisayarınızın sertifika deposundaki dijital imzayla, parmak izi kimliği ile tanımlanan bir PDF'yi imzalar.

X509Certificate2 Nesnesini Kullanma

Maksimum kontrol için, sertifika dosyanızdan bir X509Certificate2 nesnesi oluşturabilirsiniz. IronPDF, X509Certificate2 standardına tam olarak uygundur ve dijital imza uygulaması için sağlam ve güvenli bir yöntem sunar. Sertifika nesnesini oluştururken, X509KeyStorageFlags öğesinin Exportable olarak ayarlandığından emin olun, çünkü bu, altta yatan şifreleme API'leri tarafından gereklidir. Kod depomuzda dijital imzaların pratik örneklerini inceleyin.

Install-Package IronPdf
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;

// Create a new PDF from an HTML string for demonstration.
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Signed Document</h1><p>This document has been digitally signed.</p>");

// Load the certificate from a .pfx file with its password.
// The X509KeyStorageFlags.Exportable flag is crucial for allowing the private key to be used in the signing process.
var cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);

// Create a PdfSignature object using the loaded certificate.
var signature = new PdfSignature(cert);

// Apply the signature to the PDF document.
pdf.Sign(signature);

// Save the securely signed PDF document.
pdf.SaveAs("Signed.pdf");
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;

// Create a new PDF from an HTML string for demonstration.
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Signed Document</h1><p>This document has been digitally signed.</p>");

// Load the certificate from a .pfx file with its password.
// The X509KeyStorageFlags.Exportable flag is crucial for allowing the private key to be used in the signing process.
var cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);

// Create a PdfSignature object using the loaded certificate.
var signature = new PdfSignature(cert);

// Apply the signature to the PDF document.
pdf.Sign(signature);

// Save the securely signed PDF document.
pdf.SaveAs("Signed.pdf");
Imports IronPdf
Imports IronPdf.Signing
Imports System.Security.Cryptography.X509Certificates

' Create a new PDF from an HTML string for demonstration.
Private renderer = New ChromePdfRenderer()
Private pdf = renderer.RenderHtmlAsPdf("<h1>Signed Document</h1><p>This document has been digitally signed.</p>")

' Load the certificate from a .pfx file with its password.
' The X509KeyStorageFlags.Exportable flag is crucial for allowing the private key to be used in the signing process.
Private cert = New X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable)

' Create a PdfSignature object using the loaded certificate.
Private signature = New PdfSignature(cert)

' Apply the signature to the PDF document.
pdf.Sign(signature)

' Save the securely signed PDF document.
pdf.SaveAs("Signed.pdf")
$vbLabelText   $csharpLabel

Yukarıdaki kod önce basit bir PDF oluşturur. Ardından bir .pfx sertifika dosyasını bir X509Certificate2 nesnesine yükler. Dijital kimliği temsil eden bu nesne, PdfSignature yapıcıya aktarılır. Son olarak, pdf.Sign yöntemi, belgeyi kaydetmeden önce bu imzayı belgeye uygular. For more information on the X509Certificate2 class, you can refer to the official Microsoft documentation.

Dijital İmzaya Ayrıntılı Bilgiler Ekleme

Bir dijital imza, sadece sertifikadan daha fazlasını içerebilir; İmza hakkında bağlam sağlamak için zengin meta veriler ekleyebilirsiniz. Buna imza yeri, nedeni, iletişim bilgileri ve güvenilir bir otoriteden alınan güvenli zaman damgası dahildir. Ek belge özellikleri için meta verileri de ayarlayabilir ve düzenleyebilirsiniz.

Bu ayrıntıların eklenmesi, belgenin denetim izini iyileştirir ve doğrulayıcılara değerli bilgiler sağlar. IronPDF ayrıca modern SHA256 ve SHA512 hash algoritmalarını kullanan zaman damgası sunucularını da destekler.

using IronPdf;
using IronPdf.Signing;
using IronSoftware.Drawing;
using System;

// Load an existing PDF document to be signed.
var pdf = PdfDocument.FromFile("invoice.pdf");

// Create a PdfSignature object directly from the certificate file and password.
var signature = new PdfSignature("IronSoftware.pfx", "123456");

// Add detailed metadata to the signature for a comprehensive audit trail.
// These properties enhance the signature's credibility and provide context
signature.SignatureDate = DateTime.Now;
signature.SigningContact = "legal@ironsoftware.com";
signature.SigningLocation = "Chicago, USA";
signature.SigningReason = "Contractual Agreement";

// Add a secure timestamp from a trusted Time Stamp Authority (TSA).
// This provides cryptographic proof of the signing time.
signature.TimeStampUrl = new Uri("[http://timestamp.digicert.com](http://timestamp.digicert.com)");
signature.TimestampHashAlgorithm = TimestampHashAlgorithms.SHA256;

// Apply a visual appearance to the signature. (More on this in the next section)
signature.SignatureImage = new PdfSignatureImage("assets/visual-signature.png", 0, new Rectangle(350, 750, 200, 100));

// Sign the PDF document with the configured signature object.
pdf.Sign(signature);

// Save the final, signed PDF document.
pdf.SaveAs("DetailedSignature.pdf");
using IronPdf;
using IronPdf.Signing;
using IronSoftware.Drawing;
using System;

// Load an existing PDF document to be signed.
var pdf = PdfDocument.FromFile("invoice.pdf");

// Create a PdfSignature object directly from the certificate file and password.
var signature = new PdfSignature("IronSoftware.pfx", "123456");

// Add detailed metadata to the signature for a comprehensive audit trail.
// These properties enhance the signature's credibility and provide context
signature.SignatureDate = DateTime.Now;
signature.SigningContact = "legal@ironsoftware.com";
signature.SigningLocation = "Chicago, USA";
signature.SigningReason = "Contractual Agreement";

// Add a secure timestamp from a trusted Time Stamp Authority (TSA).
// This provides cryptographic proof of the signing time.
signature.TimeStampUrl = new Uri("[http://timestamp.digicert.com](http://timestamp.digicert.com)");
signature.TimestampHashAlgorithm = TimestampHashAlgorithms.SHA256;

// Apply a visual appearance to the signature. (More on this in the next section)
signature.SignatureImage = new PdfSignatureImage("assets/visual-signature.png", 0, new Rectangle(350, 750, 200, 100));

// Sign the PDF document with the configured signature object.
pdf.Sign(signature);

// Save the final, signed PDF document.
pdf.SaveAs("DetailedSignature.pdf");
Imports IronPdf
Imports IronPdf.Signing
Imports IronSoftware.Drawing
Imports System

' Load an existing PDF document to be signed.
Dim pdf = PdfDocument.FromFile("invoice.pdf")

' Create a PdfSignature object directly from the certificate file and password.
Dim signature = New PdfSignature("IronSoftware.pfx", "123456")

' Add detailed metadata to the signature for a comprehensive audit trail.
' These properties enhance the signature's credibility and provide context
signature.SignatureDate = DateTime.Now
signature.SigningContact = "legal@ironsoftware.com"
signature.SigningLocation = "Chicago, USA"
signature.SigningReason = "Contractual Agreement"

' Add a secure timestamp from a trusted Time Stamp Authority (TSA).
' This provides cryptographic proof of the signing time.
signature.TimeStampUrl = New Uri("http://timestamp.digicert.com")
signature.TimestampHashAlgorithm = TimestampHashAlgorithms.SHA256

' Apply a visual appearance to the signature. (More on this in the next section)
signature.SignatureImage = New PdfSignatureImage("assets/visual-signature.png", 0, New Rectangle(350, 750, 200, 100))

' Sign the PDF document with the configured signature object.
pdf.Sign(signature)

' Save the final, signed PDF document.
pdf.SaveAs("DetailedSignature.pdf")
$vbLabelText   $csharpLabel

İmza sertifikası sistemin güvenilir deposunda bulunmuyorsa, bazı PDF görüntüleyicilerde bir uyarı simgesi görebilirsiniz. Yeşil onay işaretini almak için, sertifikanın görüntüleyicinin güvenilir kimliklerine eklenmesi gerekir.

Dijital imzaya görsel bir temsil nasıl ekleyebilirim?

Dijital imza PDF'ye kriptografik olarak gömülmüş olsa da, sayfada görsel bir temsilinin bulunması genellikle yararlıdır. Bu, bir şirket logosu, el yazısı imza görüntüsü veya diğer grafikler olabilir. IronPDF, PdfSignature nesnesine resim eklemeyi kolaylaştırır.

Bir dosyadan veya akıştan bir görüntü yükleyebilir ve bunu PDF'nin herhangi bir sayfasına tam olarak yerleştirebilirsiniz. Desteklenen resim formatları arasında PNG, JPEG, GIF, BMP, TIFF ve WebP bulunur. Bu teknik, PDF belgelerine metin ve resim damgası eklemeye benzer.

using IronPdf.Signing;
using IronSoftware.Drawing;

// This example demonstrates various ways to add a visual image to a PDF signature.

// Create a PdfSignature object.
var signature = new PdfSignature("IronSoftware.pfx", "123456");

// Define the position and size for the signature image on the first page (index 0).
// Rectangle parameters: x position, y position, width, height
var signatureRectangle = new Rectangle(350, 750, 200, 100);

// Option 1: Set the SignatureImage property directly.
// This is the most straightforward approach
signature.SignatureImage = new PdfSignatureImage("assets/visual-signature.png", 0, signatureRectangle);

// Option 2: Use the LoadSignatureImageFromFile method.
// This method provides the same functionality with a different syntax
signature.LoadSignatureImageFromFile("assets/visual-signature.png", 0, signatureRectangle);

// Option 3: Load an image from a stream. This is useful for images generated in memory.
// Perfect for scenarios where images are retrieved from databases or web services
AnyBitmap image = AnyBitmap.FromFile("assets/visual-signature.png");
using (var imageStream = image.ToStream())
{
    signature.LoadSignatureImageFromStream(imageStream, 0, signatureRectangle);
}

// After configuring the signature image, apply it to a PDF.
var pdf = PdfDocument.FromFile("invoice.pdf");
pdf.Sign(signature);
pdf.SaveAs("VisualSignature.pdf");
using IronPdf.Signing;
using IronSoftware.Drawing;

// This example demonstrates various ways to add a visual image to a PDF signature.

// Create a PdfSignature object.
var signature = new PdfSignature("IronSoftware.pfx", "123456");

// Define the position and size for the signature image on the first page (index 0).
// Rectangle parameters: x position, y position, width, height
var signatureRectangle = new Rectangle(350, 750, 200, 100);

// Option 1: Set the SignatureImage property directly.
// This is the most straightforward approach
signature.SignatureImage = new PdfSignatureImage("assets/visual-signature.png", 0, signatureRectangle);

// Option 2: Use the LoadSignatureImageFromFile method.
// This method provides the same functionality with a different syntax
signature.LoadSignatureImageFromFile("assets/visual-signature.png", 0, signatureRectangle);

// Option 3: Load an image from a stream. This is useful for images generated in memory.
// Perfect for scenarios where images are retrieved from databases or web services
AnyBitmap image = AnyBitmap.FromFile("assets/visual-signature.png");
using (var imageStream = image.ToStream())
{
    signature.LoadSignatureImageFromStream(imageStream, 0, signatureRectangle);
}

// After configuring the signature image, apply it to a PDF.
var pdf = PdfDocument.FromFile("invoice.pdf");
pdf.Sign(signature);
pdf.SaveAs("VisualSignature.pdf");
Imports IronPdf.Signing
Imports IronSoftware.Drawing

' This example demonstrates various ways to add a visual image to a PDF signature.

' Create a PdfSignature object.
Dim signature As New PdfSignature("IronSoftware.pfx", "123456")

' Define the position and size for the signature image on the first page (index 0).
' Rectangle parameters: x position, y position, width, height
Dim signatureRectangle As New Rectangle(350, 750, 200, 100)

' Option 1: Set the SignatureImage property directly.
' This is the most straightforward approach
signature.SignatureImage = New PdfSignatureImage("assets/visual-signature.png", 0, signatureRectangle)

' Option 2: Use the LoadSignatureImageFromFile method.
' This method provides the same functionality with a different syntax
signature.LoadSignatureImageFromFile("assets/visual-signature.png", 0, signatureRectangle)

' Option 3: Load an image from a stream. This is useful for images generated in memory.
' Perfect for scenarios where images are retrieved from databases or web services
Dim image As AnyBitmap = AnyBitmap.FromFile("assets/visual-signature.png")
Using imageStream = image.ToStream()
    signature.LoadSignatureImageFromStream(imageStream, 0, signatureRectangle)
End Using

' After configuring the signature image, apply it to a PDF.
Dim pdf As PdfDocument = PdfDocument.FromFile("invoice.pdf")
pdf.Sign(signature)
pdf.SaveAs("VisualSignature.pdf")
$vbLabelText   $csharpLabel

Bu kod, dijital imzaya görsel bir bileşen eklemenin üç eşdeğer yolunu göstermektedir. Görüntü diskte veya bellekte olsun, imzalama işleminin bir parçası olarak bunu PDF'ye kolayca damgalayabilirsiniz. Bu, görünmez kriptografik güvenlik ile görünür belge onayı arasındaki boşluğu doldurur.

İmzaladıktan Sonra Belge İzinlerini Nasıl Kontrol Edebilirim?

Bir belgeyi imzaladığınızda, varsa, sonrasında hangi değişikliklere izin verileceğini belirtmek isteyebilirsiniz. Örneğin, belgeyi tamamen kilitlemek veya kullanıcıların yalnızca form alanlarını doldurmasına izin vermek isteyebilirsiniz. IronPDF, SignaturePermissions numaralandırmasını kullanarak bu izinleri ayarlamanıza olanak tanır. Daha gelişmiş izin kontrolü için, PDF şifreleri ve izinleri ayarlama kılavuzumuza bakın.

İmza izinlerini ayarlamak, bir belgenin yaşam döngüsünü yönetmenin önemli bir parçasıdır. Bu, imzanız uygulandıktan sonra belgenin bütünlüğünün kurallarınıza göre korunmasını sağlar. Bir kullanıcı izin verilmeyen bir eylem gerçekleştirirse, imza geçersiz hale gelir.

`SignaturePermissions` Üye Tanım
`NoChangesAllowed` Herhangi bir değişiklik yapılmasına izin verilmez. Belge fiilen kilitlidir.
`FormFillingAllowed` Yalnızca mevcut form alanlarının doldurulması ve imzalanmasına izin verilir.
`AnnotationsAndFormFillingAllowed` Form doldurma, imzalama ve açıklama oluşturma veya değiştirme işlemlerine olanak tanır.

Belirli bir PDF revizyonunu kaydetme ve imzalama

PDF'ler, sürüm kontrol sistemine benzer şekilde değişiklik geçmişini saklayabilir. Bu, artımlı kaydetme olarak bilinir. Bir PDF'yi imzaladığınızda, imza belgenin belirli bir revizyonuna uygulanır. Bu, bir belgenin birden fazla onay aşamasından geçtiği iş akışları için çok önemlidir. Ayrıntılı kılavuzumuzda PDF revizyon geçmişini yönetme hakkında daha fazla bilgi edinin.

Aşağıdaki örnekte, bir PDF dosyasını yükleyip düzenlemeler yapıyoruz ve ardından mevcut revizyonu imzalarken, gelecekteki değişiklikler için yalnızca form doldurma izni veriyoruz. Dosyayı kaydetmeden önce, belgenin geçmişine mevcut durumu kaydetmek için SaveAsRevision kullanıyoruz.

GetRevision

Artımlı kaydetmeyi anlamak, gelişmiş PDF iş akışlarının anahtarıdır. Basit bir görüntüleyici yalnızca en son sürümü gösterebilirken, Adobe Acrobat gibi bir araç tüm revizyon geçmişini ortaya çıkarabilir ve hangi sürümü kimin imzaladığını ve imzalar arasında hangi değişikliklerin yapıldığını gösterebilir. IronPDF, bu süreç üzerinde tam programlama kontrolü sağlar.

Yüksek güvenlik ve uyumluluk gerektiren karmaşık belge iş akışlarını yöneten işletmeler için kapsamlı bir çözüme ihtiyaç duyulabilir. Iron Software, imzalamak ve düzenlemek için IronPDF'yi ve çok çeşitli belge işleme görevleri için diğer kütüphaneleri içeren Iron Suite'i tek seferlik bir ödeme karşılığında sunmaktadır.

Revizyonlar Arasındaki İmzaları Nasıl Yönetebilir ve Doğrulayabilirim?

Bir PDF belgesine, çeşitli revizyonları boyunca birden fazla imza uygulanabilir. IronPDF, bu geçmişi etkili bir şekilde yönetmek için araçlar sunar.

  • Önceki Revizyona Geri Dön: RollBackToRevision yöntemini kullanarak bir belgeyi önceki bir duruma geri döndürebilirsiniz. Bu, o revizyondan sonra yapılan tüm değişiklikleri ve imzaları siler.
  • Tüm İmzaları Doğrula: VerifyAllSignatures yöntemi, belgenin tüm revizyonlarındaki tüm imzaların geçerliliğini kontrol eder. Yalnızca tüm imzalar geçerliyse ve yetkisiz değişiklik yapılmamışsa SignatureStatus.Valid değerini döndürür.
  • İmzaları Kaldır: RemoveSignatures yöntemi, belgenin her revizyonundan tüm dijital imzaları kaldırarak temiz, imzasız bir sürüm oluşturur.
// Load a PDF with a complex signature history.
var pdf = PdfDocument.FromFile("multi_signed_report.pdf");

// Verify all signatures across all revisions.
// This ensures document integrity throughout its entire history
bool allSignaturesValid = pdf.VerifySignatures();
Console.WriteLine($"All signatures are valid: {allSignaturesValid}");

// Roll back to the first revision (index 0).
// Useful for reviewing the original document state
if (pdf.RevisionCount &gt; 1)
{
    PdfDocument firstRevision = pdf.GetRevision(0);
    firstRevision.SaveAs("report_first_revision.pdf");
}

// Create a completely unsigned version of the document.
// This removes all digital signatures while preserving content
pdf.RemoveSignatures();
pdf.SaveAs("report_unsigned.pdf");
// Load a PDF with a complex signature history.
var pdf = PdfDocument.FromFile("multi_signed_report.pdf");

// Verify all signatures across all revisions.
// This ensures document integrity throughout its entire history
bool allSignaturesValid = pdf.VerifySignatures();
Console.WriteLine($"All signatures are valid: {allSignaturesValid}");

// Roll back to the first revision (index 0).
// Useful for reviewing the original document state
if (pdf.RevisionCount &gt; 1)
{
    PdfDocument firstRevision = pdf.GetRevision(0);
    firstRevision.SaveAs("report_first_revision.pdf");
}

// Create a completely unsigned version of the document.
// This removes all digital signatures while preserving content
pdf.RemoveSignatures();
pdf.SaveAs("report_unsigned.pdf");
Imports System

' Load a PDF with a complex signature history.
Dim pdf = PdfDocument.FromFile("multi_signed_report.pdf")

' Verify all signatures across all revisions.
' This ensures document integrity throughout its entire history
Dim allSignaturesValid As Boolean = pdf.VerifySignatures()
Console.WriteLine($"All signatures are valid: {allSignaturesValid}")

' Roll back to the first revision (index 0).
' Useful for reviewing the original document state
If pdf.RevisionCount > 1 Then
    Dim firstRevision As PdfDocument = pdf.GetRevision(0)
    firstRevision.SaveAs("report_first_revision.pdf")
End If

' Create a completely unsigned version of the document.
' This removes all digital signatures while preserving content
pdf.RemoveSignatures()
pdf.SaveAs("report_unsigned.pdf")
$vbLabelText   $csharpLabel

PDF'ye el yazısı imzayı nasıl ekleyebilirim?

Bazen dijital imzanın kriptografik güvenliğine ihtiyacınız olmayabilir, sadece taranmış el yazısı imza gibi görsel bir elektronik imza uygulamak isteyebilirsiniz. Buna genellikle damgalama denir. IronPDF, Watermark veya Stamp özelliklerini kullanarak bunu yapabilir. Daha gelişmiş filigran seçenekleri için, özel filigran kılavuzumuzu inceleyin.

Örnek bir fatura PDF'si ve el yazısı imzanın .png görüntüsü ile başlayalım.

VerifySignatures

İmza basılmadan önceki orijinal fatura PDF'si.

İşte uygulayacağımız imza görüntüsü:

PDF damgalama eğitimi için siyah mürekkeple 'IRON' yazan el yazısı imza örneği El yazısı imza örneği.

Aşağıdaki kod, SignatureImage özelliğini kullanarak bu görüntüyü PDF'nin sağ alt köşesine damgalamaktadır.

using IronPdf.Editing;

// Load the existing PDF document.
var pdf = PdfDocument.FromFile("invoice.pdf");

// Create an HtmlStamp containing our signature image.
// HtmlStamp allows us to position HTML content precisely on the page
var signatureStamp = new HtmlStamp("&lt;img src='assets/signature.png'/>")
{
    // Configure the stamp's position and appearance.
    VerticalAlignment = VerticalAlignment.Bottom,
    HorizontalAlignment = HorizontalAlignment.Right,
    Margin = 10,  // Add some space from the edge.
    Opacity = 90  // Make it slightly transparent for a more authentic look.
};

// Apply the stamp to all pages of the PDF.
// You can also specify specific page numbers if needed
pdf.ApplyStamp(signatureStamp);

// Save the modified PDF document.
pdf.SaveAs("official_invoice.pdf");
using IronPdf.Editing;

// Load the existing PDF document.
var pdf = PdfDocument.FromFile("invoice.pdf");

// Create an HtmlStamp containing our signature image.
// HtmlStamp allows us to position HTML content precisely on the page
var signatureStamp = new HtmlStamp("&lt;img src='assets/signature.png'/>")
{
    // Configure the stamp's position and appearance.
    VerticalAlignment = VerticalAlignment.Bottom,
    HorizontalAlignment = HorizontalAlignment.Right,
    Margin = 10,  // Add some space from the edge.
    Opacity = 90  // Make it slightly transparent for a more authentic look.
};

// Apply the stamp to all pages of the PDF.
// You can also specify specific page numbers if needed
pdf.ApplyStamp(signatureStamp);

// Save the modified PDF document.
pdf.SaveAs("official_invoice.pdf");
Imports IronPdf.Editing

' Load the existing PDF document.
Dim pdf = PdfDocument.FromFile("invoice.pdf")

' Create an HtmlStamp containing our signature image.
' HtmlStamp allows us to position HTML content precisely on the page
Dim signatureStamp = New HtmlStamp("<img src='assets/signature.png'/>") With {
    ' Configure the stamp's position and appearance.
    .VerticalAlignment = VerticalAlignment.Bottom,
    .HorizontalAlignment = HorizontalAlignment.Right,
    .Margin = 10,  ' Add some space from the edge.
    .Opacity = 90  ' Make it slightly transparent for a more authentic look.
}

' Apply the stamp to all pages of the PDF.
' You can also specify specific page numbers if needed
pdf.ApplyStamp(signatureStamp)

' Save the modified PDF document.
pdf.SaveAs("official_invoice.pdf")
$vbLabelText   $csharpLabel

Damgalı PDF sonucu nasıl görünür?

Kod çalıştırıldıktan sonra, imza görüntüsü belgeye damgalanır ve görsel olarak imzalanmış bir fatura oluşturulur.

Sağ alt köşeye el yazısı imza görüntüsü damgalanmış nihai PDF.

PDF'ye Etkileşimli İmza Alanı Nasıl Eklenir?

Adobe Acrobat gibi bir PDF görüntüleyicide son kullanıcı tarafından imzalanması gereken belgeler için, etkileşimli bir imza formu alanı ekleyebilirsiniz. Bu, kullanıcıdan kendi dijital imzasını eklemesini isteyen, tıklanabilir boş bir alan oluşturur. PDF formları hakkında eksiksiz bir kılavuz için, PDF formları oluşturma eğitimimize bakın.

SignatureFormField oluşturabilir ve bunu PDF'nin form koleksiyonuna ekleyebilirsiniz. Sayfadaki konumu ve boyutu üzerinde tam kontrol sahibi olursunuz. Bu, özellikle birden fazla imza gerektiren belgeler veya harici taraflardan imza toplamanız gerektiğinde kullanışlıdır.

true``RemoveSignatures

using IronPdf.Forms;
using IronSoftware.Drawing;

// Create a new PDF to add the signature field to.
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Please Sign Below</h1>");

// Define the properties for the signature form field.
string fieldName = "ClientSignature";  // Unique identifier for the field
int pageIndex = 0;  // Add to the first page (zero-indexed)
var fieldRect = new Rectangle(50, 200, 300, 100);  // Position: (x, y), Size: (width, height)

// Create the SignatureFormField object.
// This creates an interactive field that users can click to sign
var signatureField = new SignatureFormField(fieldName, pageIndex, fieldRect);

// Add the signature field to the PDF's form.
pdf.Form.Add(signatureField);

// Save the PDF with the new interactive signature field.
pdf.SaveAs("interactive_signature.pdf");
using IronPdf.Forms;
using IronSoftware.Drawing;

// Create a new PDF to add the signature field to.
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Please Sign Below</h1>");

// Define the properties for the signature form field.
string fieldName = "ClientSignature";  // Unique identifier for the field
int pageIndex = 0;  // Add to the first page (zero-indexed)
var fieldRect = new Rectangle(50, 200, 300, 100);  // Position: (x, y), Size: (width, height)

// Create the SignatureFormField object.
// This creates an interactive field that users can click to sign
var signatureField = new SignatureFormField(fieldName, pageIndex, fieldRect);

// Add the signature field to the PDF's form.
pdf.Form.Add(signatureField);

// Save the PDF with the new interactive signature field.
pdf.SaveAs("interactive_signature.pdf");
Imports IronPdf.Forms
Imports IronSoftware.Drawing

' Create a new PDF to add the signature field to.
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Please Sign Below</h1>")

' Define the properties for the signature form field.
Dim fieldName As String = "ClientSignature"  ' Unique identifier for the field
Dim pageIndex As Integer = 0  ' Add to the first page (zero-indexed)
Dim fieldRect As New Rectangle(50, 200, 300, 100)  ' Position: (x, y), Size: (width, height)

' Create the SignatureFormField object.
' This creates an interactive field that users can click to sign
Dim signatureField As New SignatureFormField(fieldName, pageIndex, fieldRect)

' Add the signature field to the PDF's form.
pdf.Form.Add(signatureField)

' Save the PDF with the new interactive signature field.
pdf.SaveAs("interactive_signature.pdf")
$vbLabelText   $csharpLabel

Kullanıcı bu PDF'yi açtığında, tıklanabilir bir alan görecek ve bu alan sayesinde kendi dijital kimliğini kullanarak imza sürecini tamamlayabilecektir. Etkileşimli formları oluşturma ve yönetme hakkında daha fazla bilgiyi, PDF formları oluşturma kılavuzumuzda bulabilirsiniz.

"Test" başlıklı belgede "İmzalamak için tıklayın" uyarısı içeren imzalanmamış imza alanını gösteren PDF düzenleyici Bir PDF belgesine programlı olarak eklenen, imzalanmamış, etkileşimli bir imza alanı.

Doğrulanmış İmzalardan İmzalayanın Adını Nasıl Alabilirim?

İmzayı atan sertifika sahibinin genel adını elde etmek için, VerifiedSignature sınıfını kullanarak SignerName özelliğine erişebiliriz. Aşağıda, bunun nasıl yapılacağını gösteren bir kod parçacığı bulunmaktadır.

:path=/static-assets/pdf/content-code-examples/how-to/signing-find-signer-name.cs
using IronPdf;
using System;

// Import the Signed PDF report
var pdf = PdfDocument.FromFile("multi_signed_report.pdf");

// Using GetVerifiedSignatures() obtain a list of `VerifiedSignature` objects from the PDF
pdf.GetVerifiedSignatures().ForEach(signature =>
{
    // Print out the SignerName of each `VerifiedSignature` object
    Console.WriteLine($"SignatureName: {signature.SignerName}");
});
Imports IronPdf
Imports System

' Import the Signed PDF report
Dim pdf = PdfDocument.FromFile("multi_signed_report.pdf")

' Using GetVerifiedSignatures() obtain a list of `VerifiedSignature` objects from the PDF
pdf.GetVerifiedSignatures().ForEach(Sub(signature)
    ' Print out the SignerName of each `VerifiedSignature` object
    Console.WriteLine($"SignatureName: {signature.SignerName}")
End Sub)
$vbLabelText   $csharpLabel

İmzalı PDF dosyasını içe aktardıktan sonra, GetSignatures(...) yöntemini kullanarak rapor içindeki VerifiedSignature nesnelerinin listesini alır ve her imza için SignerName yazdırırız.

GetVerifiedSignatures``SignerName

Bu değerin sertifikanın Konu Ayırt Edici Adı'ndan (SubjectDN) alındığını ve CN alanı mevcut değilse null değerini döndüreceğini lütfen unutmayın.

IronPDF ile PDF İmzalama için Sonraki Adımlar Nelerdir?

Bu kılavuz, IronPDF'nin güçlü ve esnek PDF imzalama yeteneklerini göstermiştir. Ayrıntılı meta veriler içeren güvenli dijital imzalar uygulamak, belge revizyonlarını yönetmek, görsel imzalar eklemek veya etkileşimli formlar oluşturmak istiyorsanız, IronPDF bu işleri halletmeniz için kapsamlı ve geliştirici dostu bir API sunar.

Keşfetmeye devam etmek için .NET için IronPDF for .NET kütüphanesini indirebilir ve projelerinizde tüm özelliklerini test etmek üzere Ücretsiz Deneme Lisansı alabilirsiniz. Ek açıklamalar ekleme ve form alanlarıyla çalışma dahil olmak üzere daha gelişmiş belge işleme teknikleri için kapsamlı belgelerimize ve eğitimlerimize göz atın.

Başka neler yapabileceğinizi görmek ister misiniz? Buradan eğitim sayfamıza göz atın: PDF'leri İmzalayın ve Güvenli Hale Getirin

Sıkça Sorulan Sorular

Bir sertifika kullanarak C#'da PDF'yi dijital olarak nasıl imzalarım?

IronPDF ile, PdfSignature sınıfını kullanarak sadece bir satır kodla bir PDF'yi dijital olarak imzalayabilirsiniz. Sadece sertifika dosyanız (.pfx veya .p12) ve şifrenizle yeni bir PdfSignature nesnesi oluşturun, ardından SignPdfFile() yöntemini çağırın. Örneğin: yeni IronPdf.Signing.PdfSignature("certificate.pfx", "password").SignPdfFile("input.pdf"). Bu, X509Certificate2'nizi kullanarak belgenin özgünlüğünü sağlama tahrifata karşı korumalı bir dijital imza uygular.

Desteklenen PDF imza türleri nelerdir?

IronPDF, üç ana tür PDF imzasını destekler: 1) Kimlik doğrulama ve tahrifata karşı koruma için X509Certificate2 sertifikalarını kullanan dijital imzalar, 2) Belgelere grafik veya el yazısıyla imza resimleri ekleyen görsel imza damgaları ve 3) Kullanıcıların PDF'leri elektronik olarak imzalamasına izin veren etkileşimli imza form alanları. Her tür, belge güvenliği ve iş akışı gereksinimleri için farklı amaçlara hizmet eder.

Dijital imzalama için hangi sertifika formatları kullanılabilir?

IronPDF, .pfx (Kişisel Bilgi Değişimi) ve .p12 dosyaları dahil olmak üzere yaygın dijital sertifika formatlarını destekler. Bu sertifika dosyaları, dijital imzalama için gereken hem genel anahtarı hem de özel anahtarı içerir. IronPDF'nin PdfSignature sınıfı, herhangi bir X509Certificate2 nesnesi ile çalışabilir ve imzalama sertifikalarınızı nasıl yüklediğiniz ve yönettiğiniz konusunda esneklik sağlar.

Dijital imzama görsel bir temsil ekleyebilir miyim?

Evet, IronPDF, dijital imzalarınıza görsel unsurlar eklemenize izin verir. Kriptografik imzanın yanında el yazısı imza resmi, şirket logosu veya özel bir damga gibi grafiksel bir temsil içerebilirsiniz. Bu, dijital sertifikaların güvenliğini görsel onay ile birleştirerek imzalı belgeleri hem güvenli hem de profesyonel olarak sunulabilir hale getirir.

Kullanıcıların elektronik imza atabilmeleri için etkileşimli bir imza alanını nasıl oluştururum?

IronPDF, PDF belgelerine etkileşimli imza form alanları eklemenize olanak tanır. Bu alanlar, kullanıcıların belgeleri tıklayarak ve imzalarını çizerek veya bir imza resmi yükleyerek elektronik olarak imzalamasına olanak tanır. Bu özellik, çok taraflı olarak imzalanması gereken belgelerin veya formların oluşturulması için mükemmeldir.

Bir PDF'yi imzalamak, belgenin bütünlüğünü sağlıyor mu?

Evet, IronPDF ile bir PDF'yi X509Certificate2 kullanarak dijital olarak imzaladığınızda, belgenin bütünlüğünü sağlayan tahrifata karşı korumalı bir mühür oluşturur. Dijital imza, belgenin imzalandığından beri değiştirilmediğini garanti eder. İmzadan sonra PDF'de yapılan herhangi bir değişiklik, imzayı geçersiz kılar ve alıcıları belgenin tehlikeye girmiş olabileceği konusunda uyarır.

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Teknoloji Direktörü

Jacob Mellor, Iron Software'de Baş Teknoloji Yöneticisidir ve C# PDF teknolojisinde öncü bir mühendisdir. Iron Software'ın ana kod tabanının ilk geliştiricisi olarak, CEO Cameron Rimington ile birlikte şirketin ürün mimarisini 50'den fazla kişilik bir şirkete dönüştürmüştür ...

Daha Fazla Oku
Gözden Geçiren
Jeff Fritz
Jeffrey T. Fritz
Baş Program Yöneticisi - .NET Topluluğu Ekibi
Jeff, .NET ve Visual Studio ekipleri için bir Baş Program Yöneticisidir. .NET Conf sanal konferans serisinin baş yapımcısıdır ve haftada iki kez canlı yayınlanan 'Fritz and Friends' adlı bir akış programı sunar; burada izleyicilerle birlikte teknoloji konuşur ve kod yazar. Jeff, en büyük Microsoft geliştirici etkinlikleri için atölyeler, sunumlar ve içerik planları yazar, Microsoft Build, Microsoft Ignite, .NET Conf ve Microsoft MVP Summit gibi etkinliklerde yer alır.
Başlamaya Hazır mısınız?
Nuget İndirmeler 19,014,616 | Sürüm: 2026.5 just released
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package IronPdf
bir örnek çalıştır HTML'nizi bir PDF'ye dönüştüğünü izleyin.