証明書について話すとき、私は、以下を除いて、証明書のすべての受信者に対して同一に見える標準シートを思い浮かべます。
この場合、豪華な証明書(Acrobat、Open Office、Adobe InDesignなど)を作成し、次の3つのフィールドを含む静的フォーム(AcroFormと呼ばれることもあります)を作成できるツールを使用します。 、コース、日付。
次に、iTextを使用して次のようなフィールドに入力します。
PdfReader reader = new PdfReader(pathToCertificateTemplate);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(pathToCertificate));
AcroFields form = stamper.getAcroFields();
form.setField("name", name);
form.setField("course", course);
form.setField("date", date);
stamper.setFormFlattening(true);
stamper.close();
reader.close();
コードからそのような証明書を作成することは「難しい方法」です。XMLからこのような証明書を作成するのは「面倒」です(XMLはレイアウトの定義に適していないため)。iTextのXMLワーカーでは(HTML + CSS)から証明書を作成できますが、これらのソリューションにはすべて欠点があります。すべてのアイテムを正しく配置したり、すべてが同じページに収まるようにするのは大変な作業です...
固定フィールドを持つテンプレートを維持する方がはるかに簡単です。このように、あなたは一度だけコーディングする必要があります。何らかの理由でフィールドを別の場所に移動したい場合は、テンプレートを変更するだけで済みます。コード、XML、HTML、またはCSSをいじくり回す必要はありません。
詳細については、 http://www.manning.com/lowagie2/samplechapter6.pdfを参照してください(セクション6.3.5)。