Search in sources :

Example 1 with PdfTokenizer

use of com.itextpdf.io.source.PdfTokenizer in project i7j-pdfsweep by itext.

the class PdfCleanUpTool method parseDAParam.

private Map<String, List> parseDAParam(PdfString DA) throws IOException {
    Map<String, List> commandArguments = new HashMap<String, List>();
    PdfTokenizer tokeniser = new PdfTokenizer(new RandomAccessFileOrArray(new RandomAccessSourceFactory().createSource(DA.toUnicodeString().getBytes(StandardCharsets.UTF_8))));
    List currentArguments = new ArrayList();
    while (tokeniser.nextToken()) {
        if (tokeniser.getTokenType() == PdfTokenizer.TokenType.Other) {
            String key = tokeniser.getStringValue();
            if ("RG".equals(key) || "G".equals(key) || "K".equals(key)) {
                key = "StrokeColor";
            } else if ("rg".equals(key) || "g".equals(key) || "k".equals(key)) {
                key = "FillColor";
            }
            commandArguments.put(key, currentArguments);
            currentArguments = new ArrayList();
        } else {
            switch(tokeniser.getTokenType()) {
                case Number:
                    currentArguments.add(new PdfNumber(new Float(tokeniser.getStringValue())));
                    break;
                case Name:
                    currentArguments.add(new PdfName(tokeniser.getStringValue()));
                    break;
                default:
                    currentArguments.add(tokeniser.getStringValue());
            }
        }
    }
    return commandArguments;
}
Also used : PdfTokenizer(com.itextpdf.io.source.PdfTokenizer) RandomAccessFileOrArray(com.itextpdf.io.source.RandomAccessFileOrArray) PdfName(com.itextpdf.kernel.pdf.PdfName) HashMap(java.util.HashMap) LinkedHashMap(java.util.LinkedHashMap) ArrayList(java.util.ArrayList) RandomAccessSourceFactory(com.itextpdf.io.source.RandomAccessSourceFactory) ArrayList(java.util.ArrayList) List(java.util.List) PdfNumber(com.itextpdf.kernel.pdf.PdfNumber) PdfString(com.itextpdf.kernel.pdf.PdfString)

Aggregations

PdfTokenizer (com.itextpdf.io.source.PdfTokenizer)1 RandomAccessFileOrArray (com.itextpdf.io.source.RandomAccessFileOrArray)1 RandomAccessSourceFactory (com.itextpdf.io.source.RandomAccessSourceFactory)1 PdfName (com.itextpdf.kernel.pdf.PdfName)1 PdfNumber (com.itextpdf.kernel.pdf.PdfNumber)1 PdfString (com.itextpdf.kernel.pdf.PdfString)1 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 LinkedHashMap (java.util.LinkedHashMap)1 List (java.util.List)1