com.automaster.autoview.server.servlet.TextStateOperators.java Source code

Java tutorial

Introduction

Here is the source code for com.automaster.autoview.server.servlet.TextStateOperators.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.automaster.autoview.server.servlet;

/**
 *
 * @author Adriano
 */
import java.io.FileOutputStream;
import java.io.IOException;

import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Element;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.GrayColor;
import com.itextpdf.text.pdf.PdfAcroForm;
import com.itextpdf.text.pdf.PdfAnnotation;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfDictionary;
import com.itextpdf.text.pdf.PdfFormField;
import com.itextpdf.text.pdf.PdfObject;
import com.itextpdf.text.pdf.PdfTemplate;
import com.itextpdf.text.pdf.PdfTextArray;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.text.pdf.TextField;

public class TextStateOperators {

    /** The resulting PDF. */
    public static final String RESULT = "D:\\Users\\Adriano\\Documents\\NetBeansProjects\\JRGWT\\web\\contratos\\text_operators.pdf";

    /**
     * Creates a PDF document.
     * @param filename the path to the new PDF document
     * @throws DocumentException 
     * @throws IOException
     */
    public void createPdf(String filename) throws IOException, DocumentException {
        // step 1
        Rectangle rect = new Rectangle(595, 842);
        Document document = new Document(rect, 30, 30, 30, 30);
        // step 2
        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(filename));
        // step 3
        document.open();
        // step 4
        //PdfAcroForm canva = writer.getAcroForm();

        BaseFont bf = BaseFont.createFont();

        //canva.addMultiLineTextField("txtTeste", "texto de teste vamos ver se le quebra a linha", bf, 15, 300, 800, 100, 100);

        PdfContentByte canvas = writer.getDirectContent();
        String text = "AWAY again";
        String text1 = "TESTE Rua alameda luis de sousa santos, N 52, castanhal, CEP: 68742-783, ao lado do posto adriano";
        canvas.beginText();
        // line 1
        canvas.setFontAndSize(bf, 16);
        canvas.moveText(36, 800);
        canvas.moveTextWithLeading(0, -24);
        canvas.setTextRise(10);
        canvas.showText(text);
        // line 2
        canvas.setWordSpacing(20);
        canvas.newlineShowText(text);
        // line 3
        canvas.setCharacterSpacing(10);
        canvas.newlineShowText(text);
        canvas.setWordSpacing(0);
        canvas.setCharacterSpacing(0);
        // line 4
        canvas.setHorizontalScaling(50);
        canvas.newlineShowText(text);
        canvas.setHorizontalScaling(100);
        // line 5
        canvas.newlineShowText(text);
        canvas.setTextRise(15);
        canvas.setFontAndSize(bf, 12);
        canvas.setColorFill(BaseColor.RED);
        canvas.showText("2");
        canvas.setColorFill(GrayColor.GRAYBLACK);
        // line 6
        canvas.setLeading(56);
        canvas.setMiterLimit(5);
        canvas.newlineShowText(
                "Rua alameda luis de sousa santos, N 52, castanhal, CEP: 68742-783, ao lado do posto" + text);
        canvas.setLeading(24);
        canvas.newlineText();
        Paragraph paragraph = new Paragraph("teste");
        PdfWriter pdfWriter = canvas.getPdfWriter();
        PdfAcroForm pdfAcroForm = pdfWriter.getAcroForm();
        //pdfAcroForm.addMultiLineTextField("txtTeste", "Changing the adriano leading: Rua alameda luis de sousa santos, N 52, castanhal, CEP: 68742-783, ao lado do posto", bf, 12, 30, 650, 550, 750);
        //pdfAcroForm.addHiddenField("txtTeste", text); 
        PdfFormField pdfFormField = new PdfFormField(pdfWriter, 30, 650, 550, 750, null);
        pdfFormField.setFieldName("txtTeste");
        pdfFormField.setValueAsString(text1);
        //TextField textField = new TextField(canvas.getPdfWriter(), new Rectangle(30, 650, 550, 750), "txtTest");
        //textField.setText(text);
        pdfAcroForm.addFormField(pdfFormField);
        // line 7
        PdfTextArray array = new PdfTextArray("A");
        array.add(120);
        array.add("W");
        array.add(120);
        array.add("A");
        array.add(95);
        array.add("Y again");
        canvas.showText(array);
        canvas.endText();

        canvas.setColorFill(BaseColor.BLUE);
        canvas.beginText();
        canvas.setTextMatrix(360, 770);
        canvas.setTextRenderingMode(PdfContentByte.TEXT_RENDER_MODE_FILL);
        canvas.setFontAndSize(bf, 24);
        canvas.showText(text);
        canvas.endText();

        canvas.beginText();
        canvas.setTextMatrix(360, 730);
        canvas.setTextRenderingMode(PdfContentByte.TEXT_RENDER_MODE_STROKE);
        canvas.setFontAndSize(bf, 24);
        canvas.showText(text);
        canvas.endText();

        canvas.beginText();
        canvas.setTextMatrix(360, 690);
        canvas.setTextRenderingMode(PdfContentByte.TEXT_RENDER_MODE_FILL_STROKE);
        canvas.setFontAndSize(bf, 24);
        canvas.showText(text);
        canvas.endText();

        canvas.beginText();
        canvas.setTextMatrix(360, 650);
        canvas.setTextRenderingMode(PdfContentByte.TEXT_RENDER_MODE_INVISIBLE);
        canvas.setFontAndSize(bf, 24);
        canvas.showText(text);
        canvas.endText();

        PdfTemplate template = canvas.createTemplate(200, 36);
        template.setLineWidth(2);
        for (int i = 0; i < 6; i++) {
            template.moveTo(0, i * 6);
            template.lineTo(200, i * 6);
        }
        template.stroke();

        canvas.saveState();
        canvas.beginText();
        canvas.setTextMatrix(360, 610);
        canvas.setTextRenderingMode(PdfContentByte.TEXT_RENDER_MODE_FILL_CLIP);
        canvas.setFontAndSize(bf, 24);
        canvas.showText(text);
        canvas.endText();
        canvas.addTemplate(template, 360, 610);
        canvas.restoreState();

        canvas.saveState();
        canvas.beginText();
        canvas.setTextMatrix(360, 570);
        canvas.setTextRenderingMode(PdfContentByte.TEXT_RENDER_MODE_STROKE_CLIP);
        canvas.setFontAndSize(bf, 24);
        canvas.showText(text);
        canvas.endText();
        canvas.addTemplate(template, 360, 570);
        canvas.restoreState();

        canvas.saveState();
        canvas.beginText();
        canvas.setTextMatrix(360, 530);
        canvas.setTextRenderingMode(PdfContentByte.TEXT_RENDER_MODE_FILL_STROKE_CLIP);
        canvas.setFontAndSize(bf, 24);
        canvas.showText(text);
        canvas.endText();
        canvas.addTemplate(template, 360, 530);
        canvas.restoreState();

        canvas.saveState();
        canvas.beginText();
        canvas.setTextMatrix(360, 490);
        canvas.setTextRenderingMode(PdfContentByte.TEXT_RENDER_MODE_CLIP);
        canvas.setFontAndSize(bf, 24);
        canvas.showText(text);
        canvas.endText();
        canvas.addTemplate(template, 360, 490);
        canvas.restoreState();

        // step 5
        //document.add((Element) pdfAcroForm);
        document.close();
    }

    /**
     * Main method.
     *
     * @param    args    no arguments needed
     * @throws DocumentException 
     * @throws IOException
     */
    public static void main(String[] args) throws IOException, DocumentException {
        new TextStateOperators().createPdf(RESULT);
    }

}