biz-Streamマニュアル XMLページレイアウトタグ リファレンス 第16章 電子署名 16.4 VeriSign 用電子署名フィールド<verisign-signature>

16.4 VeriSign 用電子署名フィールド<verisign-signature>


16.4.1機能説明

「VeriSign Digital Signatures」用電子署名フィールドの設定を行います。



16.4.2属性説明

属性説明
属性名指定説明指定内容初期値
name必須名前CDATA
field-name必須電子署名フィールドのフィールド名CDATA
x任意X座標CDATA0
y任意Y座標CDATA0
unit任意単位(Choice)mm / cm / in / px / ptmm
width必須電子署名フィールドの幅CDATA
height必須電子署名フィールドの高さCDATA
border-color任意電子署名フィールド枠線の色CDATA
background-color任意電子署名フィールド背景の色CDATA
hidden任意電子署名フィールドの表示(Choice)true(非表示) /
false(表示)
true
print任意電子署名フィールドの印刷(Choice)true(印刷する) /
false(印刷しない)
true
  • (注)初期値:出荷時のXMLデフォルト情報(default_values.properties)値を表します。ユーザにより値の変更が行われた場合は内容が異なります。


16.4.3記述例

verisign-signatureサンプル1

電子署名フィールドの表示(hidden属性)と印刷(print属性)設定に関するサンプルです。

  • 表示と印刷設定のサンプルであるため複数のverisign-signatureを指定しています。

verisign-signatureサンプル1
(『<biz-Stream_home>/sample/xml/verisign-signature/verisign-signatureSample1.xml』)


<?xml version="1.0" encoding="UTF-8"?>
<!-- XML file created by biz-Stream Designer -->
<!-- biz-Stream Copyright BrainSellers.com Corp. -->
<Layout Name="verisign-signatureSample1" Width="100" Height="150" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:bs="http://www.brainsellers.com/schema" xmlns:svg="http://www.brainsellers.com/schema" xmlns:form="http://www.brainsellers.com/schema" xmlns:pdf="http://www.brainsellers.com/schema" version="5.0.0">
    <!-- (1)署名サンプル1 -->

    <Label X="10" Y="110" Horizon="left" Vertical="center" Vector="horizon" Font="MSGothic" FontSize="14" FontStyle="PLAIN" Narrow="horizon">サンプル1</Label>
    <verisign-signature name="veri1" x="40" y="110" width="40" height="20" hidden="true" print="true"/>

    <!-- (2)署名サンプル2 -->

    <Label X="10" Y="80" Horizon="left" Vertical="center" Vector="horizon" Font="MSGothic" FontSize="14" FontStyle="PLAIN" Narrow="horizon">サンプル2</Label>
    <verisign-signature name="veri2" x="40" y="80" width="40" height="20" hidden="true" print="false"/>

    <!-- (3)署名サンプル3 -->

    <Label X="10" Y="50" Horizon="left" Vertical="center" Vector="horizon" Font="MSGothic" FontSize="14" FontStyle="PLAIN" Narrow="horizon">サンプル3</Label>
    <verisign-signature name="veri3" x="40" y="50" width="40" height="20" hidden="false" print="true"/>

    <!-- (4)署名サンプル4 -->

    <Label X="10" Y="20" Horizon="left" Vertical="center" Vector="horizon" Font="MSGothic" FontSize="14" FontStyle="PLAIN" Narrow="horizon">サンプル4</Label>
    <verisign-signature name="veri4" x="40" y="20" width="40" height="20" hidden="false" print="false"/>

</Layout>

生成されるPDF(『<biz-Stream_home>/sample/xml/verisign-signature/verisign-signatureSample1.pdf』)

VeriSign
<表示方法・印刷方法の定義>
  • veri1: hidden="true"、print="true"(⇒非表示・印刷する)
  • veri2: hidden="true"、print="false"(⇒非表示・印刷しない)
  • veri3: hidden="false"、print="true"(⇒表示・印刷する)
  • veri4: hidden="false"、print="false"(⇒表示・印刷しない)
  • 電子署名フィールドが非表示(hidden="true")の場合、生成されたPDF上から署名を行うことはできません。
  • ②④では、表示のみで印刷の対象とはなりません。
  • hidden、print指定を行わない場合は①が採用されます。


<ベリサイン証明書埋め込みサンプルソース>(『<biz-Stream_home>/sample/java/Sample10.java』)
verisign-signature要素を使用して作成した電子署名フィールド"veri3"にVerisign証明書を埋め込むサンプルソースです。

/**
 * サンプルプログラム10: 『<biz-stream_home>/sample/java/Sample10.java』
 * ベリサイン証明書を埋め込むサンプルです。
 *
 * @authror Copyright 2002-2017 by BrainSellers.com Corp. All rights reserved.
 * @version 1.0.2
 * @since 4.6.0
 */

import com.brainsellers.xml.JaxpXML;
import com.brainsellers.xml.common.XMLSuper;
import com.brainsellers.xml.document.signature.VeriSignSignature;

/**
 * 証明書ファイルはサンプルには含まれておりません
 * ベリサインのサイトにて各種申請手続きのうえ、入手してください
 */
public class Sample10 {

	public static void main(String args[]) {
		new Sample10(args);
		System.exit(0);
	}

	public Sample10(String args[]) {
		try {
			// (1) 入出力共にファイル名で指定する
			XMLSuper xml = new JaxpXML(
					"${base-dir}/sample/xml/verisign-signature/verisign-signatureSample1.xml",
					"${base-dir}/sample/java/Sample10.pdf");

			// (2) レイアウト情報(XML)の解析を行う
			xml.parse();

			// (3) 証明書を埋め込む
			setSignature1(xml);

			// (4) 座標計算を行う
			xml.calcDataSize();

			// (5) PDFを生成する
			xml.toPDF();

			// (6) PDFを出力する
			xml.close();
		} catch (java.io.FileNotFoundException e) {
			e.printStackTrace();
		} catch (java.io.IOException e) {
			e.printStackTrace();
		} catch (java.lang.Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * 証明書を埋め込む
	 *
	 * @param xml
	 *            XMLエンジン
	 *
	 *            ご使用される PKCS#12 ファイルの状態により、以下のいずれかのメソッドを使用してください。
	 *
	 *            (1) 中間CA証明書を含む PKCS#12 を使用する場合
	 *            setSignature(password, issuer_pkcs12, issuer_x509);
	 *
	 *            (2) PKCS#12に中間CA証明書を含まず、別途中間CA証明書ファイルを指定する場合
	 *            setSignature(password, issuer_pkcs12, issuer_x509, verisign_x509);
	 *
	 */
	// (1) 中間CA証明書を含む PKCS#12 を使用する場合
	private void setSignature1(XMLSuper xml) {
		String cert_path = "./";
		// パスワードを指定
		String password = "password";
		// プライベート・キーのあるPKCS#12フォーマットのファイル名
		String issuer_pkcs12 = cert_path + "vbrainsellers.pfx";
		// X509フォーマットの署名者の証明書のファイル名
		String issuer_x509 = cert_path + "vbrainsellers.cer";
		// name属性で指定された名前を元にオブジェクトを取得する
		VeriSignSignature vss = (VeriSignSignature) xml.getObject("veri3");
		if (vss != null && vss instanceof VeriSignSignature) {
			vss.setSignature(password, issuer_pkcs12, issuer_x509);
		}
	}

	// (2)PKCS#12に中間CA証明書を含まず、別途中間CA証明書ファイルを指定する場合
	private void setSignature2(XMLSuper xml) {
		String cert_path = "./";
		// パスワードを指定
		String password = "password";
		// プライベート・キーのあるPKCS#12フォーマットのファイル名
		String issuer_pkcs12 = cert_path + "vbrainsellers.pfx";
		// X509フォーマットの署名者の証明書のファイル名
		String issuer_x509 = cert_path + "vbrainsellers.cer";
		// X509フォーマットの中間CA証明書およびルート証明書のファイル名の配列
		// 複数指定が可能です。必要なだけ指定してください
		String verisign_x509[] = {
				cert_path + "intermediate.cer", // 中間CA証明書
				cert_path + "cross_root.cer", // クロスルート中間証明書
				cert_path + "root.cer" // ルート証明書
				};
		// name 属性で指定された名前を元にオブジェクトを取得する
		VeriSignSignature vss = (VeriSignSignature) xml.getObject("veri3");
		if (vss != null && vss instanceof VeriSignSignature) {
			vss.setSignature(password, issuer_pkcs12, issuer_x509, verisign_x509);
		}
	}
}