Example usage for com.lowagie.text.pdf PdfStamper addFileAttachment

List of usage examples for com.lowagie.text.pdf PdfStamper addFileAttachment

Introduction

In this page you can find the example usage for com.lowagie.text.pdf PdfStamper addFileAttachment.

Prototype

public void addFileAttachment(String description, byte fileStore[], String file, String fileDisplay)
        throws IOException 

Source Link

Document

Adds a file attachment at the document level.

Usage

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());
    }
}