Example usage for org.apache.pdfbox.cos COSName SIZE

List of usage examples for org.apache.pdfbox.cos COSName SIZE

Introduction

In this page you can find the example usage for org.apache.pdfbox.cos COSName SIZE.

Prototype

COSName SIZE

To view the source code for org.apache.pdfbox.cos COSName SIZE.

Click Source Link

Usage

From source file:com.aaasec.sigserv.csspsupport.pdfbox.modifications.CsCOSWriter.java

License:Apache License

/**
 * This will write the trailer to the PDF document.
 *
 * @param doc The document to create the trailer for.
 *
 * @throws IOException If there is an IOError while writing the document.
 * @throws COSVisitorException If there is an error while generating the
 * data./*from   w  ww. j  a  v  a  2 s.c om*/
 */
protected void doWriteTrailer(COSDocument doc) throws IOException, COSVisitorException {
    getStandardOutput().write(TRAILER);
    getStandardOutput().writeEOL();

    COSDictionary trailer = doc.getTrailer();
    //sort xref, needed only if object keys not regenerated
    Collections.sort(getXRefEntries());
    COSWriterXRefEntry lastEntry = getXRefEntries().get(getXRefEntries().size() - 1);
    trailer.setInt(COSName.SIZE, (int) lastEntry.getKey().getNumber() + 1);
    // Only need to stay, if an incremental update will be performed
    if (!incrementalUpdate) {
        trailer.removeItem(COSName.PREV);
    }
    // Remove a checksum if present
    trailer.removeItem(COSName.DOC_CHECKSUM);

    trailer.accept(this);
}

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 ww w.  ja  v  a  2 s. c  o  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());
}