package com.tom_roush.pdfbox.pdmodel.font; import com.tom_roush.pdfbox.contentstream.PDContentStream; import com.tom_roush.pdfbox.cos.COSStream; import com.tom_roush.pdfbox.pdmodel.PDResources; import com.tom_roush.pdfbox.pdmodel.common.COSObjectable; import com.tom_roush.pdfbox.pdmodel.common.PDRectangle; import com.tom_roush.pdfbox.pdmodel.common.PDStream; import com.tom_roush.pdfbox.util.Matrix; import java.io.IOException; import java.io.InputStream; /** * A Type 3 character procedure. This is a standalone PDF content stream. * * @author John Hewson */ public final class PDType3CharProc implements COSObjectable, PDContentStream { private final PDType3Font font; private final COSStream charStream; public PDType3CharProc(PDType3Font font, COSStream charStream) { this.font = font; this.charStream = charStream; } @Override public COSStream getCOSObject() { return charStream; } public PDType3Font getFont() { return font; } public PDStream getContentStream() { return new PDStream(charStream); } @Override public InputStream getContents() throws IOException { return charStream.getUnfilteredStream(); } @Override public PDResources getResources() { return font.getResources(); } @Override public PDRectangle getBBox() { return font.getFontBBox(); } @Override public Matrix getMatrix() { return font.getFontMatrix(); } // todo: add methods for getting the character's width from the stream }