static PdfTemplate createTemplate(PdfWriter writer, float width, float height, PdfName forcedName) { PdfTemplate template = new PdfTemplate(writer); template.setWidth(width); template.setHeight(height); writer.addDirectTemplateSimple(template, forcedName); return template; }
@Override protected void checkFormXObj(PdfWriter writer, int key, Object obj1) { if (obj1 instanceof PdfTemplate) { if (((PdfTemplate) obj1).getGroup() != null) { transparencyDetectedOnThePage = true; } } }
PdfTemplate tp = cb.createTemplate(w, h); Graphics2D g2 = tp.createPrinterGraphics(w, h, null); tp.setWidth(w); tp.setHeight(h);
if (iconBox != null) { if (image != null) { tp = new PdfTemplate(writer); tp.setBoundingBox(new Rectangle(image)); writer.addDirectTemplateSimple(tp, PdfName.FRM); tp.addImage(image, image.getWidth(), 0, 0, image.getHeight(), 0, 0); haveIcon = true; boundingBoxWidth = tp.getBoundingBox().getWidth(); boundingBoxHeight = tp.getBoundingBox().getHeight(); tp = new PdfTemplate(writer); tp.setBoundingBox(new Rectangle(template.getWidth(), template.getHeight())); writer.addDirectTemplateSimple(tp, PdfName.FRM); tp.addTemplate(template, template.getBoundingBox().getLeft(), template.getBoundingBox().getBottom()); haveIcon = true; boundingBoxWidth = tp.getBoundingBox().getWidth(); boundingBoxHeight = tp.getBoundingBox().getHeight();
put(PdfName.TYPE, PdfName.XOBJECT); put(PdfName.SUBTYPE, PdfName.FORM); put(PdfName.RESOURCES, template.getResources()); put(PdfName.BBOX, new PdfRectangle(template.getBoundingBox())); put(PdfName.FORMTYPE, ONE); if (template.getLayer() != null) put(PdfName.OC, template.getLayer().getRef()); if (template.getGroup() != null) put(PdfName.GROUP, template.getGroup()); PdfArray matrix = template.getMatrix(); if (matrix == null) put(PdfName.MATRIX, MATRIX); else put(PdfName.MATRIX, matrix); bytes = template.toPdf(null); put(PdfName.LENGTH, new PdfNumber(bytes.length)); if (template.getAdditional() != null) { putAll(template.getAdditional());
PdfTemplate t = new PdfTemplate(writer); t.setBoundingBox(new Rectangle(0, 0)); writer.addDirectTemplateSimple(t, null); return t; PdfTemplate t = app[1] = new PdfTemplate(writer); t.setBoundingBox(new Rectangle(100, 100)); writer.addDirectTemplateSimple(t, new PdfName("n1")); t.setLiteral(questionMark); PdfTemplate t = app[2] = new PdfTemplate(writer); t.setBoundingBox(rect); writer.addDirectTemplateSimple(t, new PdfName("n2")); if (image != null) { if (imageScale == 0) { t.addImage(image, rect.getWidth(), 0, 0, rect.getHeight(), 0, 0); float x = (rect.getWidth() - w) / 2; float y = (rect.getHeight() - h) / 2; t.addImage(image, w, 0, 0, h, x, y); PdfTemplate t = app[3] = new PdfTemplate(writer); t.setBoundingBox(new Rectangle(100, 100)); writer.addDirectTemplateSimple(t, new PdfName("n3")); t.setLiteral("% DSBlank\n"); PdfTemplate t = app[4] = new PdfTemplate(writer); t.setBoundingBox(new Rectangle(0, rect.getHeight() * (1 - TOP_SECTION), rect.getRight(), rect.getTop())); writer.addDirectTemplateSimple(t, new PdfName("n4"));
@Override protected Graphics2D getGraphics2D(Symbolizer s) { Graphics2D g2 = pTemp.createGraphics(width, height); g2.addRenderingHints(mt.getRenderingHints()); return g2; }
PdfContentByte cb = ((PdfWriter) writer).getDirectContent(); PdfTemplate tp = cb.createTemplate(w, h); Graphics2D g2 = tp.createGraphics(w, h); if (scale > 0) g2.scale(scale, scale); tp.setWidth(w); tp.setHeight(h); canvas.paintComponent(g2); g2.dispose();
private void writeAttributes(final PdfTemplate template) { if (template != null) { this.setAttribute(PdfName.O, PdfName.LAYOUT); if (template.getWidth() > 0){ this.setAttribute(PdfName.WIDTH, new PdfNumber(template.getWidth())); } if (template.getHeight() > 0){ this.setAttribute(PdfName.HEIGHT, new PdfNumber(template.getHeight())); } PdfRectangle rect = new PdfRectangle(template.getBoundingBox()); this.setAttribute(PdfName.BBOX, rect); } }
/** Creates an Image from a PdfTemplate. * * @param template the PdfTemplate * @throws BadElementException on error */ public ImgTemplate(PdfTemplate template) throws BadElementException{ super((URL)null); if (template == null) throw new BadElementException(MessageLocalization.getComposedMessage("the.template.can.not.be.null")); if (template.getType() == PdfTemplate.TYPE_PATTERN) throw new BadElementException(MessageLocalization.getComposedMessage("a.pattern.can.not.be.used.as.a.template.to.create.an.image")); type = IMGTEMPLATE; scaledHeight = template.getHeight(); setTop(scaledHeight); scaledWidth = template.getWidth(); setRight(scaledWidth); setTemplateData(template); plainWidth = getWidth(); plainHeight = getHeight(); }
/** Reads the WMF into a template. * @param template the template to read to * @throws IOException on error * @throws DocumentException on error */ public void readWMF(PdfTemplate template) throws IOException, DocumentException { setTemplateData(template); template.setWidth(getWidth()); template.setHeight(getHeight()); InputStream is = null; try { if (rawData == null){ is = url.openStream(); } else{ is = new java.io.ByteArrayInputStream(rawData); } MetaDo meta = new MetaDo(is, template); meta.readAll(); } finally { if (is != null) { is.close(); } } } }
if (image.getAccessibleAttributes() != null) { for (PdfName key : image.getAccessibleAttributes().keySet()) { template.setAccessibleAttribute(key, image.getAccessibleAttribute(key)); float w = template.getWidth(); float h = template.getHeight(); addTemplate(template, a / w, b / w, c / h, d / h, e, f, false, false);
public boolean setFieldAsImage(String field, Image image) { try { if (Float.isNaN(image.getAbsoluteX())) image.setAbsolutePosition(0, image.getAbsoluteY()); if (Float.isNaN(image.getAbsoluteY())) image.setAbsolutePosition(image.getAbsoluteY(), 0); PdfTemplate tmpl = PdfTemplate.createTemplate(wrt, image.getWidth(), image.getHeight()); tmpl.addImage(image); PdfStream str = tmpl.getFormXObject(PdfStream.NO_COMPRESSION); PdfIndirectReference ref = wrt.addToBody(str).getIndirectReference(); PdfDictionary d = new PdfDictionary(); d.put(PdfName.N, ref); return setField(field, d); } catch (Exception de) { throw new ExceptionConverter(de); } }
/** * Reads an SVG Image file into an com.itextpdf.text.Image instance to embed it into a PDF * @param svgPath SVG filepath * @param writer PdfWriter instance * @return Instance of com.itextpdf.text.Image holding the SVG file * @throws IOException * @throws BadElementException */ private static Image getSVGImage(String svgPath, PdfWriter writer) throws IOException, BadElementException { SVGDocument svgDoc = new SAXSVGDocumentFactory(null).createSVGDocument(null, new FileReader(svgPath)); // Try to read embedded height and width float svgWidth = Float.parseFloat(svgDoc.getDocumentElement().getAttribute("width").replaceAll("[^0-9.,]","")); float svgHeight = Float.parseFloat(svgDoc.getDocumentElement().getAttribute("height").replaceAll("[^0-9.,]","")); PdfTemplate svgTempl = PdfTemplate.createTemplate(writer, svgWidth, svgHeight); Graphics2D g2d = new PdfGraphics2D(svgTempl, svgTempl.getWidth(), svgTempl.getHeight()); GraphicsNode chartGfx = (new GVTBuilder()).build(new BridgeContext(new UserAgentAdapter()), svgDoc); chartGfx.paint(g2d); g2d.dispose(); return new ImgTemplate(svgTempl); }
/** * @see com.itextpdf.text.pdf.PdfContentByte#addImage(com.itextpdf.text.Image, float, float, float, float, float, float) */ public void addImage(Image image, float a, float b, float c, float d, float e, float f) throws DocumentException { if (stencil && !image.isMask()) checkNoColor(); super.addImage(image, a, b, c, d, e, f); }
protected void setStrokeColor(PdfTemplate template, FSColor color) { if (color instanceof FSRGBColor) { FSRGBColor rgb = (FSRGBColor)color; template.setRGBColorStroke(rgb.getRed(), rgb.getGreen(), rgb.getBlue()); } else if (color instanceof FSCMYKColor) { FSCMYKColor cmyk = (FSCMYKColor)color; template.setCMYKColorStroke( (int)(cmyk.getCyan()*255), (int)(cmyk.getMagenta()*255), (int)(cmyk.getYellow()*255), (int)(cmyk.getBlack()*255)); } }
protected void setFillColor(PdfTemplate template, FSColor color) { if (color instanceof FSRGBColor) { FSRGBColor rgb = (FSRGBColor)color; template.setRGBColorFill(rgb.getRed(), rgb.getGreen(), rgb.getBlue()); } else if (color instanceof FSCMYKColor) { FSCMYKColor cmyk = (FSCMYKColor)color; template.setCMYKColorFill( (int)(cmyk.getCyan()*255), (int)(cmyk.getMagenta()*255), (int)(cmyk.getYellow()*255), (int)(cmyk.getBlack()*255)); } } }
/** * @see com.itextpdf.text.pdf.PdfContentByte#setRGBColorFill(int, int, int) */ public void setRGBColorFill(int red, int green, int blue) { checkNoColor(); super.setRGBColorFill(red, green, blue); }
/** * @see com.itextpdf.text.pdf.PdfContentByte#setCMYKColorFill(int, int, int, int) */ public void setCMYKColorFill(int cyan, int magenta, int yellow, int black) { checkNoColor(); super.setCMYKColorFill(cyan, magenta, yellow, black); }