public void finishPage() { _currentPage.restoreState(); }
public void cleanup(PdfContentByte cb) { int k = savedStates.size(); while (k-- > 0) cb.restoreState(); }
public void cleanup(PdfContentByte cb) { int k = savedStates.size(); while (k-- > 0) cb.restoreState(); }
public void restoreState(int index, PdfContentByte cb) { int pops; if (index < 0) pops = Math.min(-index, savedStates.size()); else pops = Math.max(savedStates.size() - index, 0); if (pops == 0) return; MetaState state = null; while (pops-- != 0) { cb.restoreState(); state = savedStates.pop(); } setMetaState(state); }
public void restoreState(int index, PdfContentByte cb) { int pops; if (index < 0) pops = Math.min(-index, savedStates.size()); else pops = Math.max(savedStates.size() - index, 0); if (pops == 0) return; MetaState state = null; while (pops-- != 0) { cb.restoreState(); state = savedStates.pop(); } setMetaState(state); }
public void setClip(Shape s) { PdfContentByte cb = _currentPage; cb.restoreState(); cb.saveState(); if (s != null) s = _transform.createTransformedShape(s); if (s == null) { _clip = null; } else { _clip = new Area(s); followPath(s, CLIP); } _fillColor = null; _strokeColor = null; _oldStroke = null; }
/** * @see com.itextpdf.text.pdf.draw.DrawInterface#draw(com.itextpdf.text.pdf.PdfContentByte, float, float, float, float, float) */ public void draw(PdfContentByte canvas, float llx, float lly, float urx, float ury, float y) { canvas.saveState(); drawLine(canvas, llx, urx, y); canvas.restoreState(); }
/** * @see com.itextpdf.text.pdf.draw.DrawInterface#draw(com.itextpdf.text.pdf.PdfContentByte, float, float, float, float, float) */ public void draw(PdfContentByte canvas, float llx, float lly, float urx, float ury, float y) { canvas.saveState(); drawLine(canvas, llx, urx, y); canvas.restoreState(); }
/** * @see Graphics#setClip(Shape) */ @Override public void setClip(Shape s) { cb.restoreState(); cb.saveState(); if (s != null) s = transform.createTransformedShape(s); if (s == null) { clip = null; } else { clip = new Area(s); followPath(s, CLIP); } paintFill = paintStroke = null; currentFillGState = currentStrokeGState = -1; oldStroke = strokeOne; }
cb.stroke(); cb.restoreState(); cb.stroke(); cb.restoreState(); cb.stroke(); cb.restoreState(); cb.stroke(); cb.restoreState();
/** * @see Graphics#dispose() */ @Override public void dispose() { if (kid) return; if (!disposeCalled) { disposeCalled = true; cb.restoreState(); cb.restoreState(); if (dg2 != null) { dg2.dispose(); dg2 = null; } if (kids != null) { ByteBuffer buf = new ByteBuffer(); internalDispose(buf); ByteBuffer buf2 = cb.getInternalBuffer(); buf2.reset(); buf2.append(buf); } } }
/** * @since 2.1.6 private is now protected */ protected void restoreCanvases(PdfContentByte[] canvases) { int last = PdfPTable.TEXTCANVAS + 1; for (int k = 0; k < last; ++k) { ByteBuffer bb = canvases[k].getInternalBuffer(); int p1 = bb.size(); canvases[k].restoreState(); if (p1 == canvasesPos[k * 2 + 1]) { bb.setSize(canvasesPos[k * 2]); } } }
/** * @since 2.1.6 private is now protected */ protected void restoreCanvases(PdfContentByte[] canvases) { int last = PdfPTable.TEXTCANVAS + 1; for (int k = 0; k < last; ++k) { ByteBuffer bb = canvases[k].getInternalBuffer(); int p1 = bb.size(); canvases[k].restoreState(); if (p1 == canvasesPos[k * 2 + 1]) { bb.setSize(canvasesPos[k * 2]); } } }
private void internalDispose(ByteBuffer buf) { int last = 0; int pos = 0; ByteBuffer buf2 = cb.getInternalBuffer(); if (kids != null) { for (Kid kid: kids) { pos = kid.pos; PdfGraphics2D g2 = kid.graphics; g2.cb.restoreState(); g2.cb.restoreState(); buf.append(buf2.getBuffer(), last, pos - last); if (g2.dg2 != null) { g2.dg2.dispose(); g2.dg2 = null; } g2.internalDispose(buf); last = pos; } } buf.append(buf2.getBuffer(), last, buf2.size() - last); }
/** * @see com.itextpdf.text.pdf.draw.DrawInterface#draw(com.itextpdf.text.pdf.PdfContentByte, float, float, float, float, float) */ public void draw(PdfContentByte canvas, float llx, float lly, float urx, float ury, float y) { canvas.saveState(); canvas.setLineWidth(lineWidth); canvas.setLineCap(PdfContentByte.LINE_CAP_ROUND); canvas.setLineDash(0, gap, gap / 2); drawLine(canvas, llx, urx, y); canvas.restoreState(); }
public void tableLayout(PdfPTable table, float[][] width, float[] height, int headerRows, int rowStart, PdfContentByte[] canvas) { // because table is only one cell length, one can focus on using the first width float xmin = width[0][0]; float xmax = width[0][1]; float ymin = height[height.length - 1]; float ymax = height[0]; float d = 3; PdfContentByte background = canvas[PdfPTable.BASECANVAS]; background.saveState(); background.setColorFill(backgroundColor); background.roundRectangle( xmin - d, ymin - d, (xmax + d) - (xmin - d), (ymax + d) - (ymin - d), d + d); background.fill(); background.restoreState(); }
/** * @see com.itextpdf.text.pdf.draw.DrawInterface#draw(com.itextpdf.text.pdf.PdfContentByte, float, float, float, float, float) */ public void draw(PdfContentByte canvas, float llx, float lly, float urx, float ury, float y) { canvas.saveState(); canvas.setLineWidth(lineWidth); canvas.setLineCap(PdfContentByte.LINE_CAP_ROUND); canvas.setLineDash(0, gap, gap / 2); drawLine(canvas, llx, urx, y); canvas.restoreState(); }
/** * Finishes writing the table. * * @param canvases the array returned by <CODE>beginWritingRows()</CODE> */ public static void endWritingRows(final PdfContentByte[] canvases) { PdfContentByte canvas = canvases[BASECANVAS]; PdfArtifact artifact = new PdfArtifact(); canvas.openMCBlock(artifact); canvas.saveState(); canvas.add(canvases[BACKGROUNDCANVAS]); canvas.restoreState(); canvas.saveState(); canvas.setLineCap(2); canvas.resetRGBColorStroke(); canvas.add(canvases[LINECANVAS]); canvas.restoreState(); canvas.closeMCBlock(artifact); canvas.add(canvases[TEXTCANVAS]); }
/** * Finishes writing the table. * * @param canvases the array returned by <CODE>beginWritingRows()</CODE> */ public static void endWritingRows(final PdfContentByte[] canvases) { PdfContentByte canvas = canvases[BASECANVAS]; PdfArtifact artifact = new PdfArtifact(); canvas.openMCBlock(artifact); canvas.saveState(); canvas.add(canvases[BACKGROUNDCANVAS]); canvas.restoreState(); canvas.saveState(); canvas.setLineCap(2); canvas.resetRGBColorStroke(); canvas.add(canvases[LINECANVAS]); canvas.restoreState(); canvas.closeMCBlock(artifact); canvas.add(canvases[TEXTCANVAS]); }
@Override public void cellLayout(PdfPCell cell, Rectangle rect, PdfContentByte[] canvas) { BaseColor color = colorProviders.apply(percent); if (color != null) { PdfContentByte cb = canvas[PdfPTable.BACKGROUNDCANVAS]; cb.saveState(); cb.setColorFill(color); cb.rectangle( rect.getLeft() + margin.marginLeft, rect.getBottom() + margin.marginBottom, rect.getWidth() * percent - (margin.marginLeft + margin.marginRight), rect.getHeight() - (margin.marginTop + margin.marginBottom)); cb.fill(); cb.restoreState(); } } }