Example usage for com.itextpdf.text.pdf PdfTemplate restoreState

List of usage examples for com.itextpdf.text.pdf PdfTemplate restoreState

Introduction

In this page you can find the example usage for com.itextpdf.text.pdf PdfTemplate restoreState.

Prototype

public void restoreState() 

Source Link

Document

Restores the graphic state.

Usage

From source file:com.ideationdesignservices.txtbook.pdf.TxtBookPdf.java

public void addConversationBackground(Document document, ColumnText ct, int column, float top,
        float messageWidth, float messageHeight, Boolean isMe)
        throws DocumentException, MalformedURLException, IOException {
    float[][] COLUMNS;
    if (messageWidth < MAX_COLUMN_CONTENT_WIDTH) {
        messageWidth += 8.0f;//w ww  . j  a  va 2 s .  c  om
    }
    messageHeight -= 35.0f;
    top -= BaseField.BORDER_WIDTH_THICK;
    if (COLUMNS_REG[0][0] == Txtbook.leftMargin(this.writer, document, this.settings.addFrontCover)) {
        COLUMNS = COLUMNS_REG;
    } else {
        COLUMNS = COLUMNS_ALT;
    }
    float left = COLUMNS[column][0];
    PdfContentByte under = this.writer.getDirectContentUnder();
    PdfTemplate bg = this.writer.getDirectContentUnder().createTemplate(
            (BUBBLE_L_WIDTH + messageWidth) + BUBBLE_R_WIDTH,
            (BUBBLE_T_HEIGHT + messageHeight) + BUBBLE_L_WIDTH);
    String num = isMe.booleanValue() ? "1" : "2";
    Image bgTL = Image
            .getInstance(ImageUtilities.getImageDataForFile(this.mContext, "pdf/bubble_" + num + "_tl.png"));
    bgTL.scaleAbsoluteWidth(BUBBLE_L_WIDTH);
    bgTL.scaleAbsoluteHeight(BUBBLE_T_HEIGHT);
    bgTL.setAbsolutePosition(0.0f, BUBBLE_L_WIDTH + messageHeight);
    bg.addImage(bgTL);
    Image bgT = Image
            .getInstance(ImageUtilities.getImageDataForFile(this.mContext, "pdf/bubble_" + num + "_t.png"));
    bgT.scaleAbsoluteWidth(messageWidth);
    bgT.scaleAbsoluteHeight(BUBBLE_T_HEIGHT);
    bgT.setAbsolutePosition(BUBBLE_L_WIDTH, BUBBLE_L_WIDTH + messageHeight);
    bg.addImage(bgT);
    Image bgTR = Image
            .getInstance(ImageUtilities.getImageDataForFile(this.mContext, "pdf/bubble_" + num + "_tr.png"));
    bgTR.scaleAbsoluteWidth(BUBBLE_R_WIDTH);
    bgTR.scaleAbsoluteHeight(BUBBLE_T_HEIGHT);
    bgTR.setAbsolutePosition(BUBBLE_L_WIDTH + messageWidth, BUBBLE_L_WIDTH + messageHeight);
    bg.addImage(bgTR);
    Image bgL = Image
            .getInstance(ImageUtilities.getImageDataForFile(this.mContext, "pdf/bubble_" + num + "_l.png"));
    bgL.scaleAbsoluteWidth(BUBBLE_L_WIDTH);
    bgL.scaleAbsoluteHeight(messageHeight);
    bgL.setAbsolutePosition(0.0f, BUBBLE_L_WIDTH);
    bg.addImage(bgL);
    bg.saveState();
    if (isMe.booleanValue()) {
        bg.setRGBColorFill(241, 241, 241);
    } else {
        bg.setRGBColorFill(208, 231, 196);
    }
    bg.rectangle(BUBBLE_L_WIDTH, BUBBLE_L_WIDTH, messageWidth, messageHeight);
    bg.fill();
    bg.restoreState();
    Image bgR = Image
            .getInstance(ImageUtilities.getImageDataForFile(this.mContext, "pdf/bubble_" + num + "_r.png"));
    bgR.scaleAbsoluteWidth(BUBBLE_R_WIDTH);
    bgR.scaleAbsoluteHeight(messageHeight);
    bgR.setAbsolutePosition(BUBBLE_L_WIDTH + messageWidth, BUBBLE_L_WIDTH);
    bg.addImage(bgR);
    Image bgBL = Image
            .getInstance(ImageUtilities.getImageDataForFile(this.mContext, "pdf/bubble_" + num + "_bl.png"));
    bgBL.scaleAbsoluteWidth(BUBBLE_L_WIDTH);
    bgBL.scaleAbsoluteHeight(BUBBLE_L_WIDTH);
    bgBL.setAbsolutePosition(0.0f, 0.0f);
    bg.addImage(bgBL);
    Image bgB = Image
            .getInstance(ImageUtilities.getImageDataForFile(this.mContext, "pdf/bubble_" + num + "_b.png"));
    bgB.scaleAbsoluteWidth(messageWidth);
    bgB.scaleAbsoluteHeight(BUBBLE_L_WIDTH);
    bgB.setAbsolutePosition(BUBBLE_L_WIDTH, 0.0f);
    bg.addImage(bgB);
    Image bgBR = Image
            .getInstance(ImageUtilities.getImageDataForFile(this.mContext, "pdf/bubble_" + num + "_br.png"));
    bgBR.scaleAbsoluteWidth(BUBBLE_R_WIDTH);
    bgBR.scaleAbsoluteHeight(BUBBLE_L_WIDTH);
    bgBR.setAbsolutePosition(BUBBLE_L_WIDTH + messageWidth, 0.0f);
    bg.addImage(bgBR);
    if (!isMe.booleanValue()) {
        bg.setMatrix(BUBBLE_TEXT_INDENT_MAIN, 0.0f, 0.0f, BaseField.BORDER_WIDTH_THIN, 0.0f, 0.0f);
        left += COLUMN_WIDTH;
    }
    under.addTemplate(bg, left, (top - messageHeight) - 20.0f);
}

From source file:com.vectorprint.report.jfree.ItextChartHelper.java

License:Open Source License

/**
 *
 * @param chart the chart tp plot// w w  w  .  ja  v a2 s.c o m
 * @param contentByte the canvas to plot to
 * @param width the width of the chart will be fit to
 * @param height the height of the chart will be fit to
 * @return
 * @throws BadElementException
 */
public static Image getChartImage(JFreeChart chart, PdfContentByte contentByte, float width, float height,
        float opacity) throws BadElementException {

    // create PdfTemplate from PdfContentByte
    PdfTemplate template = contentByte.createTemplate(width, height);
    template.saveState();
    PdfGState pgs = new PdfGState();
    pgs.setFillOpacity(opacity);
    pgs.setStrokeOpacity(opacity);
    template.setGState(pgs);

    // create Graphics2D from PdfTemplate
    Graphics2D g2 = new PdfGraphics2D(template, width, height);

    // setup the drawing area
    Rectangle2D r2D = new Rectangle2D.Double(0, 0, width, height);

    // pass the Graphics2D and drawing area to JFreeChart
    chart.draw(g2, r2D);
    g2.dispose(); // always dispose this

    template.restoreState();

    // create Image from PdfTemplate
    return Image.getInstance(template);
}