本文整理汇总了Java中org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature.setSignDate方法的典型用法代码示例。如果您正苦于以下问题:Java PDSignature.setSignDate方法的具体用法?Java PDSignature.setSignDate怎么用?Java PDSignature.setSignDate使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature
的用法示例。
在下文中一共展示了PDSignature.setSignDate方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: sign
import org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature; //导入方法依赖的package包/类
/**
* <a href="http://stackoverflow.com/questions/41767351/create-pkcs7-signature-from-file-digest">
* Create pkcs7 signature from file digest
* </a>
* <p>
* A minimal signing frame work merely requiring a {@link SignatureInterface}
* instance.
* </p>
*/
void sign(PDDocument document, OutputStream output, SignatureInterface signatureInterface) throws IOException
{
PDSignature signature = new PDSignature();
signature.setFilter(PDSignature.FILTER_ADOBE_PPKLITE);
signature.setSubFilter(PDSignature.SUBFILTER_ADBE_PKCS7_DETACHED);
signature.setName("Example User");
signature.setLocation("Los Angeles, CA");
signature.setReason("Testing");
signature.setSignDate(Calendar.getInstance());
document.addSignature(signature);
ExternalSigningSupport externalSigning =
document.saveIncrementalForExternalSigning(output);
// invoke external signature service
byte[] cmsSignature = signatureInterface.sign(externalSigning.getContent());
// set signature bytes received from the service
externalSigning.setSignature(cmsSignature);
}
示例2: signPdf
import org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature; //导入方法依赖的package包/类
/** Signe un document PDF
* @param inStream
* @param name
* @param location
* @param reason
* @param contactInfo
* @return l'inputStream
* @throws IOException
*/
public InputStream signPdf(ByteArrayInOutStream inStream, String name, String location, String reason, String contactInfo) throws IOException {
if (inStream == null) {
throw new FileNotFoundException("Document for signing does not exist");
}
// sign
PDDocument doc = PDDocument.load(inStream.getInputStream());
// create signature dictionary
PDSignature signature = new PDSignature();
signature.setFilter(PDSignature.FILTER_ADOBE_PPKLITE);
signature.setSubFilter(PDSignature.SUBFILTER_ADBE_PKCS7_DETACHED);
signature.setName(name);
signature.setLocation(location);
signature.setContactInfo(contactInfo);
signature.setReason(reason);
// the signing date, needed for valid signature
signature.setSignDate(Calendar.getInstance());
// register signature dictionary and sign interface
doc.addSignature(signature, this);
// write incremental (only for signing purpose)
ByteArrayInOutStream outStream = new ByteArrayInOutStream();
doc.saveIncremental(outStream);
doc.close();
inStream.close();
return outStream.getInputStream();
}
示例3: signDetached
import org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature; //导入方法依赖的package包/类
void signDetached(byte[] pdf, OutputStream output, SignatureInterface signatureInterface)throws IOException, SignatureException, COSVisitorException
{
PDDocument document = PDDocument.load(new ByteArrayInputStream(pdf));
// create signature dictionary
PDSignature signature = new PDSignature();
signature.setFilter(PDSignature.FILTER_ADOBE_PPKLITE);
signature.setSubFilter(PDSignature.SUBFILTER_ADBE_PKCS7_DETACHED);
signature.setName("Example User");
signature.setLocation("Los Angeles, CA");
signature.setReason("Testing");
// TODO extract the above details from the signing certificate? Reason as a parameter?
// the signing date, needed for valid signature
signature.setSignDate(Calendar.getInstance());
// register signature dictionary and sign interface
document.addSignature(signature, signatureInterface);
// write incremental (only for signing purpose)
document.saveIncremental(new ByteArrayInputStream(pdf), output);
}
示例4: signPdf
import org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature; //导入方法依赖的package包/类
boolean signPdf(File pdfFile, File signedPdfFile) {
try (
FileInputStream fis1 = new FileInputStream(pdfFile);
FileOutputStream fos = new FileOutputStream(signedPdfFile);
FileInputStream fis = new FileInputStream(fixed ? signedPdfFile : pdfFile);
PDDocument doc = PDDocument.load(pdfFile)) {
int readCount;
byte[] buffer = new byte[8 * 1024];
while ((readCount = fis1.read(buffer)) != -1) {
fos.write(buffer, 0, readCount);
}
PDSignature signature = new PDSignature();
signature.setFilter(PDSignature.FILTER_ADOBE_PPKLITE);
signature.setSubFilter(PDSignature.SUBFILTER_ADBE_PKCS7_DETACHED);
signature.setName("NAME");
signature.setLocation("LOCATION");
signature.setReason("REASON");
signature.setSignDate(Calendar.getInstance());
doc.addSignature(signature, this);
doc.saveIncremental(fis, fos);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
示例5: doSignOneStep
import org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature; //导入方法依赖的package包/类
/**
* {@link #doSignOriginal(InputStream, InputStream, File)} changed to add the image and sign at the same time.
*/
public void doSignOneStep(InputStream inputStream, InputStream logoStream, File outputDocument) throws Exception
{
byte inputBytes[] = IOUtils.toByteArray(inputStream);
PDDocument pdDocument = PDDocument.load(new ByteArrayInputStream(inputBytes));
PDJpeg ximage = new PDJpeg(pdDocument, ImageIO.read(logoStream));
PDPage page = (PDPage) pdDocument.getDocumentCatalog().getAllPages().get(0);
PDPageContentStream contentStream = new PDPageContentStream(pdDocument, page, true, true);
contentStream.drawXObject(ximage, 50, 50, 356, 40);
contentStream.close();
page.getResources().getCOSObject().setNeedToBeUpdate(true);
page.getResources().getCOSDictionary().getDictionaryObject(COSName.XOBJECT).setNeedToBeUpdate(true);
ximage.getCOSObject().setNeedToBeUpdate(true);
PDSignature signature = new PDSignature();
signature.setFilter(PDSignature.FILTER_ADOBE_PPKLITE);
signature.setSubFilter(PDSignature.SUBFILTER_ADBE_PKCS7_DETACHED);
signature.setName("signer name");
signature.setLocation("signer location");
signature.setReason("reason for signature");
signature.setSignDate(Calendar.getInstance());
pdDocument.addSignature(signature, new TC3());
FileOutputStream fos = new FileOutputStream(outputDocument);
fos.write(inputBytes);
FileInputStream is = new FileInputStream(outputDocument);
pdDocument.saveIncremental(is, fos);
}
示例6: doSigner
import org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature; //导入方法依赖的package包/类
private void doSigner(String imgPDF, final String signedFile) throws Throwable {
ByteArrayInputStream target = new ByteArrayInputStream(Base64.decodeBase64(imgPDF));
ByteArrayOutputStream baos = new ByteArrayOutputStream();
Long documentId = Long.parseLong("300");
byte[] buf = new byte[1024];
int n = 0;
while ((n = target.read(buf)) >= 0) {
baos.write(buf, 0, n);
}
byte[] bytes = baos.toByteArray();
InputStream contentForPDF = null;
contentForPDF = new ByteArrayInputStream(bytes);
PDDocument original = PDDocument.load(contentForPDF);
FileOutputStream fos = new FileOutputStream(new File(signedFile));
PDSignature signature = new PDSignature();
signature.setFilter(PDSignature.FILTER_ADOBE_PPKLITE);
signature.setSubFilter(PDSignature.SUBFILTER_ADBE_PKCS7_DETACHED);
Calendar calendar =Calendar.getInstance();
calendar.set(2017, Calendar.NOVEMBER, 6, 11, 25,30);
signature.setSignDate(calendar);
original.setDocumentId(documentId);
original.addSignature(signature, new SignatureInterface() {
public byte[] sign(InputStream contentToSign) throws IOException {
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
int nRead;
byte[] data = new byte[16384];
while ((nRead = contentToSign.read(data, 0, data.length)) != -1)
buffer.write(data, 0, nRead);
buffer.flush();
byte[] content = buffer.toByteArray();
try {
java.security.MessageDigest md = java.security.MessageDigest.getInstance("SHA-256");
String contentEncoded = Base64.encodeBase64String(content);
System.out.println(contentEncoded);
byte[] hash = md.digest(content);
String hashEncoded = new String(Base64.encodeBase64(hash));
System.out.println(hashEncoded);
KeyStore ks = getKeyStoreToken();
String alias = getAlias(ks);
PKCS7Signer signer = PKCS7Factory.getInstance().factoryDefault();
signer.setCertificates(ks.getCertificateChain(alias));
// para token
signer.setPrivateKey((PrivateKey) ks.getKey(alias, null));
// politica sem carimbo de tempo
signer.setSignaturePolicy(PolicyFactory.Policies.AD_RB_CADES_2_2);
// com carimbo de tempo
//signer.setSignaturePolicy(PolicyFactory.Policies.AD_RT_CADES_2_2);
//signer.setSignaturePolicy(PolicyFactory.Policies.AD_RB_PADES_1_0);
// para mudar o algoritimo
signer.setAlgorithm(SignerAlgorithmEnum.SHA256withRSA);
byte [] assinatura =signer.doHashSign(hash);
// File file = new File("/home/.p7s");
// FileOutputStream os = new FileOutputStream(file);
// os.write(assinatura);
// os.flush();
// os.close();
return assinatura;
} catch (Throwable error) {
error.printStackTrace();
return null;
}
}
});
original.saveIncremental(fos);
original.close();
}
示例7: doSign
import org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature; //导入方法依赖的package包/类
public void doSign() throws Exception
{
byte inputBytes[] = IOUtils.toByteArray(new FileInputStream("resources/rooster.pdf"));
PDDocument pdDocument = PDDocument.load(new ByteArrayInputStream(inputBytes));
PDJpeg ximage = new PDJpeg(pdDocument, ImageIO.read(new File("resources/logo.jpg")));
PDPage page = (PDPage) pdDocument.getDocumentCatalog().getAllPages().get(0);
PDPageContentStream contentStream = new PDPageContentStream(pdDocument, page, true, true);
contentStream.drawXObject(ximage, 50, 50, 356, 40);
contentStream.close();
ByteArrayOutputStream os = new ByteArrayOutputStream();
pdDocument.save(os);
os.flush();
pdDocument.close();
inputBytes = os.toByteArray();
pdDocument = PDDocument.load(new ByteArrayInputStream(inputBytes));
PDSignature signature = new PDSignature();
signature.setFilter(PDSignature.FILTER_ADOBE_PPKLITE);
signature.setSubFilter(PDSignature.SUBFILTER_ADBE_PKCS7_DETACHED);
signature.setName("signer name");
signature.setLocation("signer location");
signature.setReason("reason for signature");
signature.setSignDate(Calendar.getInstance());
pdDocument.addSignature(signature, this);
File outputDocument = new File("resources/signed.pdf");
ByteArrayInputStream fis = new ByteArrayInputStream(inputBytes);
FileOutputStream fos = new FileOutputStream(outputDocument);
byte[] buffer = new byte[8 * 1024];
int c;
while ((c = fis.read(buffer)) != -1)
{
fos.write(buffer, 0, c);
}
fis.close();
FileInputStream is = new FileInputStream(outputDocument);
pdDocument.saveIncremental(is, fos);
pdDocument.close();
}
示例8: signDetached
import org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature; //导入方法依赖的package包/类
public void signDetached(String inputFilePath, String outputFilePath, String signatureImagePath/*, Sign signProperties*/) throws IOException, COSVisitorException, SignatureException {
OutputStream outputStream = null;
InputStream inputStream = null;
PDDocument document = null;
InputStream signImageStream = null;
try {
/*setTsaClient(null);*/
document = PDDocument.load(inputFilePath);
// create signature dictionary
PDSignature signature = new PDSignature();
signature.setFilter(PDSignature.FILTER_ADOBE_PPKLITE);
signature.setSubFilter(PDSignature.SUBFILTER_ADBE_PKCS7_DETACHED);
signature.setName("VANDUC1102");
signature.setLocation(null);
String displayName = "Hello World, Document signed by VANDUC1102";
String reason = /*reasonText*/"REASON" + " " + displayName;
signature.setReason(reason);
// the signing date, needed for valid signature
signature.setSignDate(Calendar.getInstance());
int signatureInPage = /*signProperties.getPageNumber()*/0 + 1;
signImageStream = new FileInputStream(new File(signatureImagePath));
PDVisibleSignDesigner visibleSig = new PDVisibleSignDesigner(inputFilePath, signImageStream, signatureInPage);
float xAxis = convertPixel2Point(/*signProperties.getX()*/100) ;
float yAxis = convertPixel2Point(/*signProperties.getY()*/100);
float signImageHeight = convertPixel2Point(/*signImageHeight*/100);
float signImageWidth = convertPixel2Point(/*signImageWidth*/100);
visibleSig.xAxis(xAxis)
.yAxis(yAxis)
.zoom(0)
.signatureFieldName("Signature")
.height(signImageHeight)
.width(signImageWidth);
PDVisibleSigProperties signatureProperties = new PDVisibleSigProperties();
signatureProperties.signerName(/*eiUser.getName()*/ "eiUserName")
.signerLocation(null)
.signatureReason(reason)
.preferredSize(0)
.page(/*signProperties.getPageNumber()*/0)
.visualSignEnabled(true)
.setPdVisibleSignature(visibleSig)
.buildSignature();
// register signature dictionary and sign interface
SignatureOptions signatureOptions = new SignatureOptions();
signatureOptions.setVisualSignature(signatureProperties);
signatureOptions.setPage(signatureInPage);
document.addSignature(signature, this, signatureOptions);
File outputFile = new File(outputFilePath);
outputStream = new FileOutputStream(outputFile);
inputStream = new FileInputStream(inputFilePath);
IOUtils.copy(inputStream, outputStream);
// vvv FIX: InputStream parameter of document.saveIncremental
// vvv must cover the whole, enhanced document
if (fixed)
inputStream = new FileInputStream(outputFile);
// =========
document.saveIncremental(inputStream, outputStream);
outputStream.flush();
// } catch (COSVisitorException | SignatureException | IOException ex) {
// log.error("signDetached ", ex);
} finally {
org.apache.commons.io.IOUtils.closeQuietly(outputStream);
org.apache.commons.io.IOUtils.closeQuietly(inputStream);
org.apache.commons.io.IOUtils.closeQuietly(signImageStream);
document.close();
}
}
示例9: doSignOriginal
import org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature; //导入方法依赖的package包/类
/**
* Essentially the original code from {@link TC3#doSign()} with dynamic input streams and output file.
*/
public void doSignOriginal(InputStream inputStream, InputStream logoStream, File outputDocument) throws Exception
{
byte inputBytes[] = IOUtils.toByteArray(inputStream);
PDDocument pdDocument = PDDocument.load(new ByteArrayInputStream(inputBytes));
PDJpeg ximage = new PDJpeg(pdDocument, ImageIO.read(logoStream));
PDPage page = (PDPage) pdDocument.getDocumentCatalog().getAllPages().get(0);
PDPageContentStream contentStream = new PDPageContentStream(pdDocument, page, true, true);
contentStream.drawXObject(ximage, 50, 50, 356, 40);
contentStream.close();
ByteArrayOutputStream os = new ByteArrayOutputStream();
pdDocument.save(os);
os.flush();
pdDocument.close();
inputBytes = os.toByteArray();
pdDocument = PDDocument.load(new ByteArrayInputStream(inputBytes));
PDSignature signature = new PDSignature();
signature.setFilter(PDSignature.FILTER_ADOBE_PPKLITE);
signature.setSubFilter(PDSignature.SUBFILTER_ADBE_PKCS7_DETACHED);
signature.setName("signer name");
signature.setLocation("signer location");
signature.setReason("reason for signature");
signature.setSignDate(Calendar.getInstance());
pdDocument.addSignature(signature, new TC3());
ByteArrayInputStream fis = new ByteArrayInputStream(inputBytes);
FileOutputStream fos = new FileOutputStream(outputDocument);
byte[] buffer = new byte[8 * 1024];
int c;
while ((c = fis.read(buffer)) != -1)
{
fos.write(buffer, 0, c);
}
fis.close();
FileInputStream is = new FileInputStream(outputDocument);
pdDocument.saveIncremental(is, fos);
pdDocument.close();
}
示例10: doSignRemoveType
import org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature; //导入方法依赖的package包/类
/**
* {@link #doSignOriginal(InputStream, InputStream, File)} changed to remove the Type entry from the trailer.
*/
public void doSignRemoveType(InputStream inputStream, InputStream logoStream, File outputDocument) throws Exception
{
byte inputBytes[] = IOUtils.toByteArray(inputStream);
PDDocument pdDocument = PDDocument.load(new ByteArrayInputStream(inputBytes));
PDJpeg ximage = new PDJpeg(pdDocument, ImageIO.read(logoStream));
PDPage page = (PDPage) pdDocument.getDocumentCatalog().getAllPages().get(0);
PDPageContentStream contentStream = new PDPageContentStream(pdDocument, page, true, true);
contentStream.drawXObject(ximage, 50, 50, 356, 40);
contentStream.close();
ByteArrayOutputStream os = new ByteArrayOutputStream();
pdDocument.save(os);
os.flush();
pdDocument.close();
inputBytes = os.toByteArray();
pdDocument = PDDocument.load(new ByteArrayInputStream(inputBytes));
pdDocument.getDocument().getTrailer().removeItem(COSName.TYPE);
PDSignature signature = new PDSignature();
signature.setFilter(PDSignature.FILTER_ADOBE_PPKLITE);
signature.setSubFilter(PDSignature.SUBFILTER_ADBE_PKCS7_DETACHED);
signature.setName("signer name");
signature.setLocation("signer location");
signature.setReason("reason for signature");
signature.setSignDate(Calendar.getInstance());
pdDocument.addSignature(signature, new TC3());
ByteArrayInputStream fis = new ByteArrayInputStream(inputBytes);
FileOutputStream fos = new FileOutputStream(outputDocument);
byte[] buffer = new byte[8 * 1024];
int c;
while ((c = fis.read(buffer)) != -1)
{
fos.write(buffer, 0, c);
}
fis.close();
FileInputStream is = new FileInputStream(outputDocument);
pdDocument.saveIncremental(is, fos);
pdDocument.close();
}
示例11: doSignTwoRevisions
import org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature; //导入方法依赖的package包/类
/**
* {@link #doSignOriginal(InputStream, InputStream, File)} changed to also save the first change as new revision.
*/
public void doSignTwoRevisions(InputStream inputStream, InputStream logoStream, File intermediateDocument, File outputDocument) throws Exception
{
FileOutputStream fos = new FileOutputStream(intermediateDocument);
FileInputStream fis = new FileInputStream(intermediateDocument);
byte inputBytes[] = IOUtils.toByteArray(inputStream);
PDDocument pdDocument = PDDocument.load(new ByteArrayInputStream(inputBytes));
PDJpeg ximage = new PDJpeg(pdDocument, ImageIO.read(logoStream));
PDPage page = (PDPage) pdDocument.getDocumentCatalog().getAllPages().get(0);
PDPageContentStream contentStream = new PDPageContentStream(pdDocument, page, true, true);
contentStream.drawXObject(ximage, 50, 50, 356, 40);
contentStream.close();
pdDocument.getDocumentCatalog().getCOSObject().setNeedToBeUpdate(true);
pdDocument.getDocumentCatalog().getPages().getCOSObject().setNeedToBeUpdate(true);
page.getCOSObject().setNeedToBeUpdate(true);
page.getResources().getCOSObject().setNeedToBeUpdate(true);
page.getResources().getCOSDictionary().getDictionaryObject(COSName.XOBJECT).setNeedToBeUpdate(true);
ximage.getCOSObject().setNeedToBeUpdate(true);
fos.write(inputBytes);
pdDocument.saveIncremental(fis, fos);
pdDocument.close();
pdDocument = PDDocument.load(intermediateDocument);
PDSignature signature = new PDSignature();
signature.setFilter(PDSignature.FILTER_ADOBE_PPKLITE);
signature.setSubFilter(PDSignature.SUBFILTER_ADBE_PKCS7_DETACHED);
signature.setName("signer name");
signature.setLocation("signer location");
signature.setReason("reason for signature");
signature.setSignDate(Calendar.getInstance());
pdDocument.addSignature(signature, new TC3());
fos = new FileOutputStream(outputDocument);
fis = new FileInputStream(outputDocument);
inputBytes = IOUtils.toByteArray(new FileInputStream(intermediateDocument));
fos.write(inputBytes);
pdDocument.saveIncremental(fis, fos);
pdDocument.close();
}