List of usage examples for org.apache.pdfbox.cos COSName DOMAIN
COSName DOMAIN
To view the source code for org.apache.pdfbox.cos COSName DOMAIN.
Click Source Link
From source file:org.apache.fop.render.pdf.pdfbox.PSPDFGraphics2D.java
License:Apache License
private static Function getFunction(PDFunction f) throws IOException { if (f instanceof PDFunctionType3) { PDFunctionType3 sourceFT3 = (PDFunctionType3) f; float[] bounds = sourceFT3.getBounds().toFloatArray(); COSArray sourceFunctions = sourceFT3.getFunctions(); List<Function> targetFunctions = new ArrayList<Function>(); for (int j = 0; j < sourceFunctions.size(); j++) { targetFunctions.add(getFunction(PDFunction.create(sourceFunctions.get(j)))); }/*from w w w . ja v a2 s. co m*/ return new Function(null, null, targetFunctions, toList(bounds), null); } else if (f instanceof PDFunctionType2) { PDFunctionType2 sourceFT2 = (PDFunctionType2) f; double interpolation = (double) sourceFT2.getN(); float[] c0 = sourceFT2.getC0().toFloatArray(); float[] c1 = sourceFT2.getC1().toFloatArray(); return new Function(null, null, c0, c1, interpolation); } else if (f instanceof PDFunctionType0) { COSDictionary s = f.getCOSObject(); assert s instanceof COSStream; COSStream stream = (COSStream) s; COSArray encode = (COSArray) s.getDictionaryObject(COSName.ENCODE); COSArray domain = (COSArray) s.getDictionaryObject(COSName.DOMAIN); COSArray range = (COSArray) s.getDictionaryObject(COSName.RANGE); int bits = ((COSInteger) s.getDictionaryObject(COSName.BITS_PER_SAMPLE)).intValue(); COSArray size = (COSArray) s.getDictionaryObject(COSName.SIZE); byte[] x = IOUtils.toByteArray(stream.getUnfilteredStream()); for (byte y : x) { if (y != 0) { return new Function(floatArrayToDoubleList(domain.toFloatArray()), floatArrayToDoubleList(range.toFloatArray()), floatArrayToDoubleList(encode.toFloatArray()), x, bits, toList(size)); } } return null; } throw new IOException("Unsupported " + f.toString()); }