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

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

Introduction

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

Prototype

public PRTokeniser(RandomAccessFileOrArray file) 

Source Link

Document

Creates a PRTokeniser for the specified RandomAccessFileOrArray .

Usage

From source file:mkl.testarea.itext5.pdfcleanup.StrictPdfCleanUpProcessor.java

License:Open Source License

Map<String, List> parseDAParam(PdfString DA) throws IOException {
    Map<String, List> commandArguments = new HashMap<String, List>();

    PRTokeniser tokeniser = new PRTokeniser(
            new RandomAccessFileOrArray(new RandomAccessSourceFactory().createSource(DA.getBytes())));
    List currentArguments = new ArrayList();

    while (tokeniser.nextToken()) {
        if (tokeniser.getTokenType() == PRTokeniser.TokenType.OTHER) {
            String key = tokeniser.getStringValue();

            if (key.equals("RG") || key.equals("G") || key.equals("K")) {
                key = STROKE_COLOR;/*w w w .ja v a 2s  .  co m*/
            } else if (key.equals("rg") || key.equals("g") || key.equals("k")) {
                key = FILL_COLOR;
            }

            commandArguments.put(key, currentArguments);
            currentArguments = new ArrayList();
        } else {
            switch (tokeniser.getTokenType()) {
            case NUMBER:
                currentArguments.add(new PdfNumber(tokeniser.getStringValue()));
                break;

            case NAME:
                currentArguments.add(new PdfName(tokeniser.getStringValue()));
                break;

            default:
                currentArguments.add(tokeniser.getStringValue());
            }
        }
    }

    return commandArguments;
}