PDFファイルに署名を追加
Contents
[
Hide
]
PDFファイルにデジタル署名を追加
PdfFileSignature クラスを使用すると、PDFファイルに署名を追加できます。
[PdfFileSignature](https://reference.aspose.com/pdf/net/aspose.pdf.facades/pdffilesignature) クラスのオブジェクトを入力および出力PDFファイルを使用して作成する必要があります。また、署名を追加したい [Rectangle](https://reference.aspose.com/pdf/net/aspose.pdf/rectangle) オブジェクトを作成し、外観を設定するために [PdfFileSignature](https://reference.aspose.com/pdf/net/aspose.pdf.facades/pdffilesignature) オブジェクトの [SignatureAppearance](https://reference.aspose.com/pdf/net/aspose.pdf.facades/pdffilesignature/properties/signatureappearance) プロパティを使用して画像を指定できます。Aspose.Pdf.Facades は、PKCS#1、PKCS#7、PKCS#7Detached のような異なる種類の署名も提供しています。特定の種類の署名を作成するには、証明書ファイルとパスワードを使用して **PKCS1**、**PKCS7** または **PKCS7Detached** のような特定のクラスのオブジェクトを作成する必要があります。
特定の署名タイプのオブジェクトが作成されたら、[PdfFileSignature](https://reference.aspose.com/pdf/net/aspose.pdf.facades/pdffilesignature) クラスの [Sign](https://reference.aspose.com/pdf/net/aspose.pdf.facades/pdffilesignature/methods/sign/index) メソッドを使用してPDFに署名し、このクラスに特定の署名オブジェクトを渡すことができます。 You can also specify other attributes for this method. Finally, you need to save the signed PDF using [Save](https://reference.aspose.com/pdf/net/aspose.pdf/document/methods/save/index) method of the [PdfFileSignature](https://reference.aspose.com/pdf/net/aspose.pdf.facades/pdffilesignature) class. The following code snippet shows you how to add signature in a PDF file.
あなたはこのメソッドの他の属性も指定することができます。最後に、[PdfFileSignature](https://reference.aspose.com/pdf/net/aspose.pdf.facades/pdffilesignature)クラスの[Save](https://reference.aspose.com/pdf/net/aspose.pdf/document/methods/save/index)メソッドを使用して署名されたPDFを保存する必要があります。次のコードスニペットは、PDFファイルに署名を追加する方法を示しています。
```csharp
public static void AddPdfFileSignature()
{
PdfFileSignature pdfSign = new PdfFileSignature();
pdfSign.BindPdf(_dataDir + "sample01.pdf");
// Create a rectangle for signature location
System.Drawing.Rectangle rect = new System.Drawing.Rectangle(10, 10, 300, 50);
// Set signature appearance
pdfSign.SignatureAppearance = _dataDir + "aspose-logo.png";
// Create any of the three signature types
PKCS1 signature = new PKCS1(_dataDir + "test01.pfx", "Aspose2021"); // PKCS#1
pdfSign.Sign(1, "I'm document author", "test01@aspose-pdf-demo.local", "Aspose Pdf Demo, Australia", true, rect, signature);
// Save output PDF file
pdfSign.Save(_dataDir + "DigitallySign.pdf");
}
次のコード例は、2つの署名でドキュメントに署名する機能を示しています。私たちの例では、1つ目の署名を最初のページに、2つ目を2番目のページに置きます。必要なページを指定することができます。
public static void AddTwoSignature()
{
PdfFileSignature pdfSign = new PdfFileSignature();
// 1つ目の署名で署名する
pdfSign.BindPdf(_dataDir + "sample01.pdf");
// 1つ目の署名位置のための長方形を作成する
System.Drawing.Rectangle rect1 = new System.Drawing.Rectangle(10, 10, 300, 50);
// 1つ目の署名オブジェクトを作成する
PKCS1 signature1 = new PKCS1(_dataDir + "test01.pfx", "Aspose2021"); // PKCS#1
pdfSign.Sign(1, "私は文書の著者です", "test@aspose-pdf-demo.local", "Aspose Pdf Demo, Australia", true, rect1, signature1);
pdfSign.Save(_dataDir + "DigitallySign.pdf");
// 2つ目の署名で署名する
pdfSign.BindPdf(_dataDir + "DigitallySign.pdf");
// 2つ目の署名位置のための長方形を作成する
System.Drawing.Rectangle rect2 = new System.Drawing.Rectangle(10, 10, 300, 50);
// 2つ目の署名オブジェクトを作成する
PKCS1 signature2 = new PKCS1(_dataDir + "test02.pfx", "Aspose2021"); // PKCS#1
pdfSign.Sign(2, "私は文書のレビュアーです", "test02@aspose-pdf-demo.local", "Aspose Pdf Demo, Australia", true, rect2, signature2);
// 出力PDFファイルを保存する
pdfSign.Save(_dataDir + "DigitallySign.pdf");
}
ドキュメントに署名が必要なフォームまたはアクロフォームが含まれている場合は、次の例を参照してください。入力および出力PDFファイルを使用してPdfFileSignatureクラスのオブジェクトを作成する必要があります。BindPdfを使用してバインドします。必要なプロパティを追加できる署名を作成します。この例では「Reason」と「CustomAppearance」です。
public static void AddPdfFileSignatureField()
{
PdfFileSignature pdfSign = new PdfFileSignature();
pdfSign.BindPdf(_dataDir + "sample02.pdf");
// 3つの署名タイプのいずれかを作成
PKCS1 signature = new PKCS1(_dataDir + "test02.pfx", "Aspose2021")
{
Reason = "Sign as Author",
CustomAppearance = new SignatureCustomAppearance
{
FontSize = 6,
FontFamilyName = "Calibri"
}
}; // PKCS#1
pdfSign.Sign("Signature1", signature);
// 出力PDFファイルを保存
pdfSign.Save(_dataDir + "DigitallySign.pdf");
}
ドキュメントに2つのフィールドがある場合、その署名アルゴリズムは最初の例と似ています。
public static void AddPdfFileSignatureField2()
{
PdfFileSignature pdfSign = new PdfFileSignature();
pdfSign.BindPdf(_dataDir + "sample03.pdf");
// 3つの署名タイプのいずれかを作成
PKCS1 signature1 = new PKCS1(_dataDir + "test01.pfx", "Aspose2021")
{
Reason = "著者として署名",
CustomAppearance = new SignatureCustomAppearance
{
FontSize = 6
}
}; // PKCS#1
pdfSign.Sign("Signature1", signature1);
// 出力PDFファイルを保存
pdfSign.Save(_dataDir + "DigitallySign.pdf");
pdfSign.BindPdf(_dataDir + "DigitallySign.pdf");
// 3つの署名タイプのいずれかを作成
PKCS1 signature2 = new PKCS1(_dataDir + "test02.pfx", "Aspose2021")
{
Reason = "レビュワーとして署名",
CustomAppearance = new SignatureCustomAppearance
{
FontSize = 6
}
}; // PKCS#1
pdfSign.Sign("Signature2", signature2);
// 出力PDFファイルを保存
pdfSign.Save(_dataDir + "DigitallySign.pdf");
}