List of usage examples for com.lowagie.text.pdf PdfStamper addFileAttachment
public void addFileAttachment(String description, byte fileStore[], String file, String fileDisplay) throws IOException
From source file:de.jdufner.sudoku.generator.service.PdfGeneratorService.java
License:Open Source License
public void packPdf(String filePathName, String packageFileBaseName, String frontpageFileBaseName, String questsFileBaseName, String resultsFileBaseName, String htmlFileName) throws FileNotFoundException, DocumentException, IOException { PdfStamper pdfStamper = new PdfStamper(new PdfReader(filePathName + frontpageFileBaseName), new FileOutputStream(filePathName + packageFileBaseName)); pdfStamper.addFileAttachment("Quests", null, filePathName + questsFileBaseName, questsFileBaseName); pdfStamper.addFileAttachment("Results", null, filePathName + resultsFileBaseName, resultsFileBaseName); pdfStamper.addFileAttachment("HTML", null, filePathName + htmlFileName, htmlFileName); pdfStamper.makePackage(PdfName.T);/*from w w w . jav a 2 s . co m*/ pdfStamper.close(); }
From source file:net.sqs2.translator.impl.SQSToPDFTranslator.java
License:Apache License
private void combinePDFData(FOUserAgent userAgent, byte[] sqsSourceBytes, byte[] pdfRawDataBytes, OutputStream pdfOutputStream, String basename) throws IOException { try {/*from ww w.ja v a 2s . co m*/ PdfReader reader = new PdfReader(pdfRawDataBytes); int numPages = reader.getNumberOfPages(); userAgent.getRendererOptions().get("pageWidth"); byte[] svgBytes = createSVGPrint(userAgent, numPages); PdfStamper stamp = new PdfStamper(reader, pdfOutputStream); stamp.addFileAttachment("SQS Source", sqsSourceBytes, null, basename + ".sqs"); stamp.addFileAttachment("SQS Master", svgBytes, null, basename + ".sqm"); stamp.close(); reader.close(); } catch (DocumentException ex) { ex.printStackTrace(); } }
From source file:org.webpki.pdf.PDFSigner.java
License:Apache License
public byte[] addDocumentSignature(byte[] indoc, boolean certified) throws IOException { try {/*from w w w .j av a 2 s . com*/ PdfReader reader = new PdfReader(indoc); ByteArrayOutputStream bout = new ByteArrayOutputStream(8192); PdfStamper stp = PdfStamper.createSignature(reader, bout, '\0', null, true); for (Attachment file : attachments) { stp.addFileAttachment(file.description, file.data, "dummy", file.filename); } PdfSignatureAppearance sap = stp.getSignatureAppearance(); sap.setCrypto(null, signer.getCertificatePath(), null, PdfSignatureAppearance.WINCER_SIGNED); if (reason != null) { sap.setReason(reason); } if (location != null) { sap.setLocation(location); } if (enable_signature_graphics) { sap.setVisibleSignature(new Rectangle(100, 100, 400, 130), reader.getNumberOfPages(), null); } sap.setCertified(certified); // sap.setExternalDigest (new byte[128], new byte[20], "RSA"); sap.setExternalDigest(new byte[512], new byte[20], "RSA"); sap.preClose(); MessageDigest messageDigest = MessageDigest.getInstance("SHA1"); byte buf[] = new byte[8192]; int n; InputStream inp = sap.getRangeStream(); while ((n = inp.read(buf)) > 0) { messageDigest.update(buf, 0, n); } byte hash[] = messageDigest.digest(); PdfSigGenericPKCS sg = sap.getSigStandard(); PdfLiteral slit = (PdfLiteral) sg.get(PdfName.CONTENTS); byte[] outc = new byte[(slit.getPosLength() - 2) / 2]; PdfPKCS7 sig = sg.getSigner(); sig.setExternalDigest(signer.signData(hash, AsymSignatureAlgorithms.RSA_SHA1), hash, "RSA"); PdfDictionary dic = new PdfDictionary(); byte[] ssig = sig.getEncodedPKCS7(); System.arraycopy(ssig, 0, outc, 0, ssig.length); dic.put(PdfName.CONTENTS, new PdfString(outc).setHexWriting(true)); sap.close(dic); return bout.toByteArray(); } catch (NoSuchAlgorithmException nsae) { throw new IOException(nsae.getMessage()); } catch (DocumentException de) { throw new IOException(de.getMessage()); } }