private void initUI(String fontReferenceName, PDResources resources) { PDFont font = null; for (COSName name: resources.getFontNames()) { if (name.getName().equals(fontReferenceName)) { try { font = resources.getFont(name); } catch (IOException e) { e.printStackTrace(); } } } if (font != null) { markup = "<html>" + font.getName() + "</html>"; } }
PDFont font = defaultResources.getFont(fontName); float fontSize = ((COSNumber) base1).floatValue();
/** * Constructor. * @param fontName COSName instance, Font name in the fonts dictionary. * @param dictionary COSDictionary instance for resources which resides the font. */ public FontEncodingPaneController(COSName fontName, COSDictionary dictionary) { PDResources resources = new PDResources(dictionary); try { PDFont font = resources.getFont(fontName); if (font instanceof PDType3Font) { fontPane = new Type3Font((PDType3Font) font, resources); } else if (font instanceof PDSimpleFont) { fontPane = new SimpleFont((PDSimpleFont) font); } else if (font instanceof PDType0Font) { fontPane = new Type0Font(((PDType0Font) font).getDescendantFont(), (PDType0Font) font); } } catch (IOException e) { e.printStackTrace(); } }
PDFont font = resources.getFont(key);
@Override public void process(Operator operator, List<COSBase> arguments) throws IOException { if (arguments.size() < 2) { throw new MissingOperandException(operator, arguments); } COSBase base0 = arguments.get(0); COSBase base1 = arguments.get(1); if (!(base0 instanceof COSName)) { return; } if (!(base1 instanceof COSNumber)) { return; } COSName fontName = (COSName) base0; float fontSize = ((COSNumber) base1).floatValue(); context.getGraphicsState().getTextState().setFontSize(fontSize); PDFont font = context.getResources().getFont(fontName); context.getGraphicsState().getTextState().setFont(font); }
PDResources resources = page.getResources(); Iterator<COSName> ite = resources.getFontNames(); while (ite.hasNext()) { COSName name = ite.next(); PDFont font = resources.getFont(name); boolean isEmbedded = font.isEmbedded(); // ... do something with the results ... }
private static void parseResourcesFonts(PDResources resources) { for (COSName name : resources.getFontNames()) { try { PDFont font = resources.getFont(name); processFont(font); } catch (IOException e) { LOGGER.error("Can not obtain font from resources", e); } } }
/** * Copies any needed resources from the document’s DR dictionary into the stream’s Resources * dictionary. Resources with the same name shall be left intact. */ void copyNeededResourcesTo(PDAppearanceStream appearanceStream) throws IOException { // make sure we have resources PDResources streamResources = appearanceStream.getResources(); if (streamResources == null) { streamResources = new PDResources(); appearanceStream.setResources(streamResources); } if (streamResources.getFont(getFontName()) == null) { streamResources.put(fontName, getFont()); } // todo: other kinds of resource... } }
PDDocument doc = PDDocument.load("C:/mydoc3.pdf"); for (int i = 0; i < doc.getNumberOfPages(); ++i) { PDPage page = doc.getPage(i); PDResources res = page.getResources(); for (COSName fontName : res.getFontNames()) { PDFont font = res.getFont(fontName); // do stuff with the font } }
public PDFont getFont(COSName name) throws IOException { PDFont ret = fontCache.get(name); if (ret == null) { PDFont font = this.currentResources.getFont(name); if (font == null) { font = this.inheritedResources.getFont(name); if (font != null) { font.setInherited(true); } } fontCache.put(name, font); ret = font; } return ret; }
private Set<String> parseFontFromResources(PDResources resources) { if (resources == null || resources.getFontNames() == null) { return null; } Set<String> fontIDs = new HashSet<>(); for (COSName name : resources.getFontNames()) { COSDictionary dict = (COSDictionary) resources.getCOSObject().getDictionaryObject(COSName.FONT); COSBase base = dict.getItem(name); String id = getId(base, FeatureObjectType.FONT); fontIDs.add(id); if (checkIDBeforeProcess(id)) { try { PDFont font = resources.getFont(name); parseFont(font, id); } catch (IOException e) { LOGGER.info(e); fontCreationProblem(id, e.getMessage()); } } } return fontIDs; }
@Override public void process(Operator operator, List<COSBase> arguments) throws IOException { if (arguments.size() < 2) { throw new MissingOperandException(operator, arguments); } COSBase base0 = arguments.get(0); COSBase base1 = arguments.get(1); if (!(base0 instanceof COSName)) { return; } if (!(base1 instanceof COSNumber)) { return; } COSName fontName = (COSName) base0; float fontSize = ((COSNumber) base1).floatValue(); context.getGraphicsState().getTextState().setFontSize(fontSize); PDFont font = context.getResources().getFont(fontName); context.getGraphicsState().getTextState().setFont(font); }
private void extractFontResources(PDResources resources) throws IOException { for (COSName key : resources.getFontNames()) { PDFont font = resources.getFont(key); extractStrategy.extract(font); } for (COSName name : resources.getXObjectNames()) { PDXObject xobject = resources.getXObject(name); if (xobject instanceof PDFormXObject) { PDFormXObject xObjectForm = (PDFormXObject) xobject; PDResources formResources = xObjectForm.getResources(); if (formResources != null) extractFontResources(formResources); } } }
@Override public void process(Operator operator, List<COSBase> arguments) throws IOException { if (arguments.size() < 2) { throw new MissingOperandException(operator, arguments); } COSBase base0 = arguments.get(0); COSBase base1 = arguments.get(1); if (!(base0 instanceof COSName)) { return; } if (!(base1 instanceof COSNumber)) { return; } COSName fontName = (COSName) base0; float fontSize = ((COSNumber) base1).floatValue(); context.getGraphicsState().getTextState().setFontSize(fontSize); PDFont font = context.getResources().getFont(fontName); context.getGraphicsState().getTextState().setFont(font); }
PDFont font = resources.getFont(key); if (font instanceof PDTrueTypeFont)
/** * Copies any needed resources from the document’s DR dictionary into the stream’s Resources * dictionary. Resources with the same name shall be left intact. */ void copyNeededResourcesTo(PDAppearanceStream appearanceStream) throws IOException { // make sure we have resources PDResources streamResources = appearanceStream.getResources(); if (streamResources == null) { streamResources = new PDResources(); appearanceStream.setResources(streamResources); } if (streamResources.getFont(getFontName()) == null) { streamResources.put(fontName, getFont()); } // todo: other kinds of resource... } }
/** * Copies any needed resources from the document’s DR dictionary into the stream’s Resources * dictionary. Resources with the same name shall be left intact. */ void copyNeededResourcesTo(PDAppearanceStream appearanceStream) throws IOException { // make sure we have resources PDResources streamResources = appearanceStream.getResources(); if (streamResources == null) { streamResources = new PDResources(); appearanceStream.setResources(streamResources); } if (streamResources.getFont(getFontName()) == null) { streamResources.put(fontName, getFont()); } // todo: other kinds of resource... } }