Example usage for com.lowagie.text.pdf PRTokeniser PRTokeniser

List of usage examples for com.lowagie.text.pdf PRTokeniser PRTokeniser

Introduction

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

Prototype

public PRTokeniser(RandomAccessFileOrArray file) 

Source Link

Usage

From source file:org.signserver.module.pdfsigner.PDFSigner.java

License:Open Source License

private void checkForDuplicateObjects(byte[] pdfbytes) throws IOException, SignServerException {
    if (LOG.isDebugEnabled()) {
        LOG.debug(">checkForDuplicateObjects");
    }/*w ww  .j a v  a 2s. c om*/
    final PRTokeniser tokens = new PRTokeniser(pdfbytes);
    final Set<String> idents = new HashSet<String>();
    final byte[] line = new byte[16];

    while (tokens.readLineSegment(line)) {
        final int[] obj = PRTokeniser.checkObjectStart(line);
        if (obj != null) {
            final String ident = obj[0] + " " + obj[1];

            if (idents.add(ident)) {
                if (LOG.isDebugEnabled()) {
                    LOG.debug("Object: " + ident);
                }
            } else {
                if (LOG.isDebugEnabled()) {
                    LOG.debug("Duplicate object: " + ident);
                }
                throw new SignServerException("Incorrect document");
            }
        }
    }
    if (LOG.isDebugEnabled()) {
        LOG.debug("<checkForDuplicateObjects");
    }
}

From source file:util.PdfUtil.java

License:Open Source License

public String processText(PdfReader reader) throws RedbasinException {
    //Reads in the pdf Template
    StringBuffer sb = new StringBuffer();
    try {/* w w  w . ja v  a 2s .c  o  m*/
        //System.out.println("Number of pages = " + reader.getNumberOfPages());
        int numPages = reader.getNumberOfPages();
        for (int i = 1; i <= numPages; i++) {
            byte[] b = reader.getPageContent(i);
            PRTokeniser token = new PRTokeniser(b);
            //System.out.println("Page " + i);
            while (token.nextToken()) {
                if (token.getTokenType() == 2) {
                    sb.append(token.getStringValue());
                    //System.out.print(token.getStringValue() + " ");
                }
            }
            //System.out.println();
        }
        /*
        PdfStamper stamp = new PdfStamper(reader, new FileOutputStream("aNewPDF.pdf"));
        AcroFields form = stamp.getAcroFields();
        */
        /*
        Map fields = reader.getAcroFields().getFields();
        Iterator iter = fields.keySet().iterator();
        System.out.println("Printing fields" + fields.size());
        while (iter.hasNext()) {
            Object fobj = iter.next();
            Object fval = fields.get(fobj);
            System.out.println("Field = " + fobj.toString() + "Value = " + fobj.toString());
        }
         */

        //set the field values in the pdf form
        /*
        form.setField("fieldName", "aValue");
        stamp.setFormFlattening(true);
        stamp.close();
         * */
    } catch (Exception e) {
        throw new RedbasinException("Some pdf error occurred", e);
    }
    return sb.toString();
}