List of usage examples for org.apache.pdfbox.cos COSDictionary setItem
public void setItem(String key, COSBase value)
From source file:com.modemo.javase.signature.SigUtils.java
License:Apache License
/** * Set the access permissions granted for this document in the DocMDP transform parameters * dictionary. Details are described in the table "Entries in the DocMDP transform parameters * dictionary" in the PDF specification. * * @param doc The document./*from ww w . ja v a 2s. c om*/ * @param signature The signature object. * @param accessPermissions The permission value (1, 2 or 3). */ static public void setMDPPermission(PDDocument doc, PDSignature signature, int accessPermissions) { COSDictionary sigDict = signature.getCOSObject(); // DocMDP specific stuff COSDictionary transformParameters = new COSDictionary(); transformParameters.setItem(COSName.TYPE, COSName.getPDFName("TransformParams")); transformParameters.setInt(COSName.P, accessPermissions); transformParameters.setName(COSName.V, "1.2"); transformParameters.setNeedToBeUpdated(true); COSDictionary referenceDict = new COSDictionary(); referenceDict.setItem(COSName.TYPE, COSName.getPDFName("SigRef")); referenceDict.setItem("TransformMethod", COSName.DOCMDP); referenceDict.setItem("DigestMethod", COSName.getPDFName("SHA1")); referenceDict.setItem("TransformParams", transformParameters); referenceDict.setNeedToBeUpdated(true); COSArray referenceArray = new COSArray(); referenceArray.add(referenceDict); sigDict.setItem("Reference", referenceArray); referenceArray.setNeedToBeUpdated(true); // Catalog COSDictionary catalogDict = doc.getDocumentCatalog().getCOSObject(); COSDictionary permsDict = new COSDictionary(); catalogDict.setItem(COSName.PERMS, permsDict); permsDict.setItem(COSName.DOCMDP, signature); catalogDict.setNeedToBeUpdated(true); permsDict.setNeedToBeUpdated(true); }
From source file:ddf.catalog.transformer.input.pdf.GeoPdfDocumentGenerator.java
License:Open Source License
private static PDPage generateGeoPdfPage(int numberOfFramesPerPage, String projectionType) { PDPage pdPage = new PDPage(); COSDictionary cosDictionary = pdPage.getCOSObject(); cosDictionary.setItem(GeoPdfParserImpl.LGIDICT, generateLGIDictArray(numberOfFramesPerPage, projectionType)); return pdPage; }
From source file:ddf.catalog.transformer.input.pdf.GeoPdfDocumentGenerator.java
License:Open Source License
private static PDPage generateGeoPdfPage(String projectionType, boolean generateNeatLine) { PDPage pdPage = new PDPage(); COSDictionary cosDictionary = pdPage.getCOSObject(); cosDictionary.setItem(GeoPdfParserImpl.LGIDICT, generateMapFrameDictionary(projectionType, generateNeatLine)); return pdPage; }
From source file:ddf.catalog.transformer.input.pdf.GeoPdfDocumentGenerator.java
License:Open Source License
private static COSDictionary generateMapFrameDictionary(String projectionType) { COSDictionary cosDictionary = new COSDictionary(); if (StringUtils.isNotBlank(projectionType)) { cosDictionary.setItem(GeoPdfParserImpl.PROJECTION, generateProjectionDictionary(projectionType)); }//from w w w. java 2 s .c om cosDictionary.setItem(GeoPdfParserImpl.NEATLINE, generateNeatLineArray()); cosDictionary.setItem(GeoPdfParserImpl.CTM, generateCTMArray()); return cosDictionary; }
From source file:ddf.catalog.transformer.input.pdf.GeoPdfDocumentGenerator.java
License:Open Source License
private static COSDictionary generateMapFrameDictionary(String projectionType, boolean generateNeatLine) { COSDictionary cosDictionary = new COSDictionary(); if (StringUtils.isNotBlank(projectionType)) { cosDictionary.setItem(GeoPdfParserImpl.PROJECTION, generateProjectionDictionary(projectionType)); }// w w w . ja va2s.c om if (generateNeatLine) { cosDictionary.setItem(GeoPdfParserImpl.NEATLINE, generateNeatLineArray()); } cosDictionary.setItem(GeoPdfParserImpl.CTM, generateCTMArray()); return cosDictionary; }
From source file:eu.europa.ec.markt.dss.signature.pdf.pdfbox.PdfBoxSignatureService.java
License:Open Source License
private void addExtraDictionaries(final PDDocument doc, final Map.Entry<String, PdfDict>[] extraDictionariesToAddBeforeSign) { final COSDictionary cosDictionary = doc.getDocumentCatalog().getCOSDictionary(); for (final Map.Entry<String, PdfDict> pdfDictEntry : extraDictionariesToAddBeforeSign) { final String key = pdfDictEntry.getKey(); final PdfBoxDict value = (PdfBoxDict) pdfDictEntry.getValue(); final COSDictionary wrapped = value.getWrapped(); cosDictionary.setItem(key, wrapped); }//w w w. j a v a 2s . co m }
From source file:eu.europa.esig.dss.pdf.pdfbox.PdfBoxSignatureService.java
License:Open Source License
@Override public void addDssDictionary(InputStream inputStream, OutputStream outpuStream, List<DSSDictionaryCallback> callbacks) { File toSignFile = null;//w ww . j a v a 2 s .c o m File signedFile = null; FileInputStream fis = null; PDDocument pdDocument = null; try { toSignFile = DSSPDFUtils.getFileFromPdfData(inputStream); pdDocument = PDDocument.load(toSignFile); signedFile = File.createTempFile("sd-dss-", "-signed.pdf"); final FileOutputStream fileOutputStream = DSSPDFUtils.getFileOutputStream(toSignFile, signedFile); if (CollectionUtils.isNotEmpty(callbacks)) { final COSDictionary cosDictionary = pdDocument.getDocumentCatalog().getCOSDictionary(); cosDictionary.setItem("DSS", buildDSSDictionary(callbacks)); cosDictionary.setNeedToBeUpdate(true); } if (pdDocument.getDocumentId() == null) { pdDocument.setDocumentId(0L); } pdDocument.saveIncremental(inputStream, fileOutputStream); fis = new FileInputStream(signedFile); IOUtils.copy(fis, outpuStream); } catch (Exception e) { throw new DSSException(e); } finally { IOUtils.closeQuietly(pdDocument); IOUtils.closeQuietly(fis); DSSUtils.delete(toSignFile); DSSUtils.delete(signedFile); } }
From source file:eu.europa.esig.dss.pdf.pdfbox.PdfBoxSignatureService.java
License:Open Source License
private COSDictionary buildDSSDictionary(List<DSSDictionaryCallback> callbacks) throws Exception { COSDictionary dss = new COSDictionary(); Map<String, COSStream> streams = new HashMap<String, COSStream>(); Set<CRLToken> allCrls = new HashSet<CRLToken>(); Set<OCSPToken> allOcsps = new HashSet<OCSPToken>(); Set<CertificateToken> allCertificates = new HashSet<CertificateToken>(); COSDictionary vriDictionary = new COSDictionary(); for (DSSDictionaryCallback callback : callbacks) { COSDictionary sigVriDictionary = new COSDictionary(); sigVriDictionary.setDirect(true); if (CollectionUtils.isNotEmpty(callback.getCertificates())) { COSArray vriCertArray = new COSArray(); for (CertificateToken token : callback.getCertificates()) { vriCertArray.add(getStream(streams, token)); allCertificates.add(token); }/*from w w w . jav a 2 s. c om*/ sigVriDictionary.setItem("Cert", vriCertArray); } if (CollectionUtils.isNotEmpty(callback.getOcsps())) { COSArray vriOcspArray = new COSArray(); for (OCSPToken token : callback.getOcsps()) { vriOcspArray.add(getStream(streams, token)); allOcsps.add(token); } sigVriDictionary.setItem("OCSP", vriOcspArray); } if (CollectionUtils.isNotEmpty(callback.getCrls())) { COSArray vriCrlArray = new COSArray(); for (CRLToken token : callback.getCrls()) { vriCrlArray.add(getStream(streams, token)); allCrls.add(token); } sigVriDictionary.setItem("CRL", vriCrlArray); } PAdESSignature signature = callback.getSignature(); final byte[] digest = DSSUtils.digest(DigestAlgorithm.SHA1, signature.getCAdESSignature().getCmsSignedData().getEncoded()); String hexHash = Hex.encodeHexString(digest).toUpperCase(); vriDictionary.setItem(hexHash, sigVriDictionary); } dss.setItem("VRI", vriDictionary); if (CollectionUtils.isNotEmpty(allCertificates)) { COSArray arrayAllCerts = new COSArray(); for (CertificateToken token : allCertificates) { arrayAllCerts.add(getStream(streams, token)); } dss.setItem("Certs", arrayAllCerts); } if (CollectionUtils.isNotEmpty(allOcsps)) { COSArray arrayAllOcsps = new COSArray(); for (OCSPToken token : allOcsps) { arrayAllOcsps.add(getStream(streams, token)); } dss.setItem("OCSPs", arrayAllOcsps); } if (CollectionUtils.isNotEmpty(allCrls)) { COSArray arrayAllCrls = new COSArray(); for (CRLToken token : allCrls) { arrayAllCrls.add(getStream(streams, token)); } dss.setItem("CRLs", arrayAllCrls); } return dss; }
From source file:fi.nls.oskari.printout.printing.PDPageContentStream.java
License:Apache License
private void writeColorSpace(PDColorSpace colorSpace) throws IOException { COSName key = null;/*ww w .ja va 2 s .c o m*/ if (colorSpace instanceof PDDeviceGray || colorSpace instanceof PDDeviceRGB || colorSpace instanceof PDDeviceCMYK) { key = COSName.getPDFName(colorSpace.getName()); } else { COSDictionary colorSpaces = (COSDictionary) resources.getCOSDictionary() .getDictionaryObject(COSName.COLORSPACE); if (colorSpaces == null) { colorSpaces = new COSDictionary(); resources.getCOSDictionary().setItem(COSName.COLORSPACE, colorSpaces); } key = colorSpaces.getKeyForValue(colorSpace.getCOSObject()); if (key == null) { int counter = 0; String csName = "CS"; while (colorSpaces.containsValue(csName + counter)) { counter++; } key = COSName.getPDFName(csName + counter); colorSpaces.setItem(key, colorSpace); } } key.writePDF(output); appendRawCommands(SPACE); }
From source file:fixture.pdfboxeg.CreateSignatureBase.java
License:Apache License
public void setMDPPermission(PDDocument doc, PDSignature signature, int accessPermissions) { COSDictionary sigDict = signature.getCOSObject(); // DocMDP specific stuff COSDictionary transformParameters = new COSDictionary(); transformParameters.setItem(COSName.TYPE, COSName.getPDFName("TransformParams")); transformParameters.setInt(COSName.P, accessPermissions); transformParameters.setName(COSName.V, "1.2"); transformParameters.setNeedToBeUpdated(true); COSDictionary referenceDict = new COSDictionary(); referenceDict.setItem(COSName.TYPE, COSName.getPDFName("SigRef")); referenceDict.setItem("TransformMethod", COSName.getPDFName("DocMDP")); referenceDict.setItem("DigestMethod", COSName.getPDFName("SHA1")); referenceDict.setItem("TransformParams", transformParameters); referenceDict.setNeedToBeUpdated(true); COSArray referenceArray = new COSArray(); referenceArray.add(referenceDict);//w ww . j ava 2 s .c o m sigDict.setItem("Reference", referenceArray); referenceArray.setNeedToBeUpdated(true); // Catalog COSDictionary catalogDict = doc.getDocumentCatalog().getCOSObject(); COSDictionary permsDict = new COSDictionary(); catalogDict.setItem(COSName.PERMS, permsDict); permsDict.setItem(COSName.DOCMDP, signature); catalogDict.setNeedToBeUpdated(true); permsDict.setNeedToBeUpdated(true); }