Free Spire.PDF for JAVA 2.4.4(免费版)
IntelliJ IDEA
首先,获取jar包。Step 1: 下载控件包之后解压,打开“Project Structure”界面。(以下是两种在IDEA中快速打开Project Structure界面的方式:①file->Project Structure ②Shift+Ctrl+Alt+S快捷键进入‘Project Structure’。可选其中任意一种)Step 2:按以下操作步骤进行导入。① 选择“Modules”—“Dependencies”,添加外置jar包;② 进入'Attach File or Directories'界面选择jar文件路径,然后点击“OK”;③ 勾选jar路径选项,点击“Apply/OK”;④ 导入完成。如下图:
import com.spire.pdf.PdfDocument;import com.spire.pdf.security.*;import com.spire.pdf.graphics.*;import java.awt.*;import java.awt.geom.*; public class digitalSignature { public static void main(String[] args) { //定义输入、输出文件和数字签名文件 String inputFile = 'data/Doc2.pdf'; String outputFile = 'output/digitalSignature_result.pdf'; String pfxPath = 'data/test.pfx'; //加载PDF文件 PdfDocument doc = new PdfDocument(); doc.loadFromFile(inputFile); //加载证书 PdfCertificate cert = new PdfCertificate(pfxPath, '123456'); PdfSignature signature = new PdfSignature(doc, doc.getPages().get(0), cert, 'signature0'); Rectangle2D rect = new Rectangle2D.Float(); rect.setFrame(new Point2D.Float(90, 550), new Dimension(270, 90)); signature.setBounds(rect); //设置图形显示模式,如果不设置图形显示模式,则应用默认的图形显示模式 signature.setGraphicMode(GraphicMode.Sign_Image_And_Sign_Detail); signature.setNameLabel('Signer:'); signature.setName('Gary'); signature.setContactInfoLabel('ContactInfo:'); signature.setContactInfo('1'); signature.setDateLabel('Date:'); signature.setDate(new java.util.Date()); signature.setLocationInfoLabel('Location:'); signature.setLocationInfo('Chengdu'); signature.setReasonLabel('Reason: '); signature.setReason('The certificate of this document'); signature.setDistinguishedNameLabel('DN: '); signature.setDistinguishedName(signature.getCertificate().get_IssuerName().getName()); signature.setSignImageSource(PdfImage.fromFile('data/logo.png')); signature.setDocumentPermissions(PdfCertificationFlags.Forbid_Changes); signature.setCertificated(true); //保存文件 doc.saveToFile(outputFile); doc.close(); }}
运行效果: