Example usage for com.itextpdf.text.pdf AcroFields setField

List of usage examples for com.itextpdf.text.pdf AcroFields setField

Introduction

In this page you can find the example usage for com.itextpdf.text.pdf AcroFields setField.

Prototype

public boolean setField(String name, String value) throws IOException, DocumentException 

Source Link

Document

Sets the field value.

Usage

From source file:TwoCustPDF.java

public static void createfile(File inputfile, Customer myCust, String SecondCust, Inverter myInvert,
        ExtraData mydata, Preparer myPrep, Module myMod) throws DocumentException, IOException {
    String[] LastFirst;/*from w  ww . j  a  v  a2  s .  c om*/
    LastFirst = myCust.getName().split(" ");
    String homeDir = System.getProperty("user.home");
    String separator = System.getProperty("file.separator");
    String INPUTFILENAME = inputfile.getPath();
    String inputFileNameShort = inputfile.getName();
    inputFileNameShort = inputFileNameShort.substring(0, inputFileNameShort.lastIndexOf('.'));
    String OUTPUTFILENAME = homeDir + separator + "Dropbox" + separator + "Utility and Permiting" + separator
            + "1 Utility Submissions" + separator + LastFirst[LastFirst.length - 1] + ", " + LastFirst[0] + " "
            + "(" + myCust.getState() + ")" + separator + inputFileNameShort + "-" + myCust.getName() + ".pdf";
    File outfile = new File(OUTPUTFILENAME);
    outfile.getParentFile().mkdirs();
    if (!outfile.getParentFile().exists()) {
        boolean mkdirSts = outfile.getParentFile().mkdirs();
        GUI.instructions.setText(
                String.format("%s creating Files for %s", mkdirSts ? "Success" : "Failure", myCust.getName()));
    }

    PdfReader reader = new PdfReader(INPUTFILENAME);
    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(OUTPUTFILENAME));
    AcroFields fields = stamper.getAcroFields();
    fields.setGenerateAppearances(true);
    fields.setField("Customer Name", SecondCust);
    fields.setField("Second Customer Name", myCust.getName());
    fields.setField("Account Number", mydata.getAccountNumber());
    fields.setField("Customer Street Address", myCust.getStreetAddress());
    fields.setField("Customer City", myCust.getCity());
    fields.setField("Customer Zip Code", myCust.getZipCode());
    fields.setField("Customer Phone", myCust.getCellNumber());
    fields.setField("Customer E-mail", myCust.getEmail());
    fields.setField("Preparer Name", myPrep.getName());
    fields.setField("License Number", myPrep.getLicencenum());
    fields.setField("Preparer Street Address", myPrep.getStreetAddress());
    fields.setField("Preparer City", myPrep.getCity());
    fields.setField("Preparer Zip Code", myPrep.getZipCode());
    fields.setField("Preparer Phone#", myPrep.getWorkPhoneNumber());
    fields.setField("Preparer E-mail", myPrep.getEmail());
    fields.setField("Module Brand", myMod.getBrand());
    fields.setField("Module Number", myMod.getNumber());
    fields.setField("Module qty", myMod.getQuantityString());
    fields.setField("ptc rating", myMod.getptcRating());
    fields.setField("Array Azimuth", myMod.getArrayAzimuth());
    fields.setField("Inverter Brand", myInvert.getBrand());
    fields.setField("Inverter Number", myInvert.getNumber());
    fields.setField("Inverter Efficiency", myInvert.getefficiencyString());
    fields.setField("DC kiloWatts", myMod.getDCkiloWatts() + "kW DC");
    fields.setField("Complete Date", mydata.getCompleteDate());
    fields.setField("Rebate Amount", mydata.getRebateAmount());
    fields.setField("Customer Address", myCust.getFullAddress());
    fields.setField("Array Tilt degrees", myMod.getArrayTilt());
    fields.setField("Customer + Customer Address", SecondCust + " " + myCust.getFullAddress());
    fields.setField("Preparer Address", myPrep.getFullAddress());
    fields.setField("AC kiloWatt", myInvert.getACKiloWatts());
    fields.setField("AC Export", mydata.getACExport());
    fields.setField("Amperage Rating", myInvert.getAmperage());
    fields.setField("Customer City, State, Zip", myCust.getCityStateZip());
    fields.setField("Inverter Name + Brand + Quantity", myInvert.getInverterNameBrandQty());
    fields.setField("Module Name + Brand + Quantity", myMod.getNumberBrandQty());
    fields.setField("Racking", myMod.getRacking());
    fields.setField("System Production", mydata.getProduction());
    fields.setField("System Cost", mydata.getCost());
    fields.setField("Date", mydata.getTodayDate());
    fields.setField("Module Watts", myMod.getWatts() + " " + "Watts");
    fields.setField("Price Per Watt", mydata.getPricePerWatt());
    stamper.close();
}

From source file:PDFHandler.java

public static void createfile(File inputfile, Customer myCust, Inverter myInvert, ExtraData mydata,
        Preparer myPrep, Module myMod) throws DocumentException, IOException {
    String[] LastFirst;/*from ww  w .j  a  va 2  s  .c om*/
    LastFirst = myCust.getName().split(" ");
    String homeDir = System.getProperty("user.home");
    String separator = System.getProperty("file.separator");
    String INPUTFILENAME = inputfile.getPath();
    String inputFileNameShort = inputfile.getName();
    String OUTPUTFILENAME;
    inputFileNameShort = inputFileNameShort.substring(0, inputFileNameShort.lastIndexOf('.'));
    if (myCust.getName().contains("Offer"))//some error handling for offerpad customers.
    {
        OUTPUTFILENAME = homeDir + separator + "Dropbox" + separator + "Utility and Permiting" + separator
                + "Multi File" + separator + myCust.getStreetAddress() + " " + "(" + myCust.getState() + ")"
                + separator + inputFileNameShort + ".pdf";
    } else {
        OUTPUTFILENAME = homeDir + separator + "Dropbox (Elevation Solar)" + separator + "Utility and Permiting"
                + separator + "1 Utility Submissions" + separator + LastFirst[(LastFirst.length - 1)] + ", "
                + LastFirst[0] + " " + "(" + myCust.getState() + ")" + separator + inputFileNameShort + "-"
                + myCust.getName() + ".pdf";
    }
    File outfile = new File(OUTPUTFILENAME);
    if (!outfile.getParentFile().exists())//make sure the directories exist.
    {
        boolean mkdirSts = outfile.getParentFile().mkdirs();
        GUI.instructions.setText(
                String.format("%s creating Files for %s", mkdirSts ? "Success" : "Failure", myCust.getName()));
    }

    //The stamper basically copies the reader's contents into a new pdf. 
    //then, thanks to itext, I can easily fill the formfields with what i need.
    //The string literals are all the names in the pdf forms that need filled.
    PdfReader reader = new PdfReader(INPUTFILENAME);
    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(OUTPUTFILENAME));
    AcroFields fields = stamper.getAcroFields();
    fields.setGenerateAppearances(true);
    fields.setField("Customer Name", myCust.getName());
    fields.setField("Account Number", mydata.getAccountNumber());
    fields.setField("Customer Street Address", myCust.getStreetAddress());
    fields.setField("Customer City", myCust.getCity());
    fields.setField("Customer Zip Code", myCust.getZipCode());
    fields.setField("Customer Phone", myCust.getCellNumber());
    fields.setField("Customer E-mail", myCust.getEmail());
    fields.setField("Preparer Name", myPrep.getName());
    fields.setField("License Number", myPrep.getLicencenum());
    fields.setField("Preparer Street Address", myPrep.getStreetAddress());
    fields.setField("Preparer City", myPrep.getCity());
    fields.setField("Preparer Zip Code", myPrep.getZipCode());
    fields.setField("Preparer Phone#", myPrep.getWorkPhoneNumber());
    fields.setField("Preparer E-mail", myPrep.getEmail());
    fields.setField("Module Brand", myMod.getBrand());
    fields.setField("Module Number", myMod.getNumber());
    fields.setField("Module qty", myMod.getQuantityString());
    fields.setField("ptc rating", myMod.getptcRating());
    fields.setField("Array Azimuth", myMod.getArrayAzimuth());
    fields.setField("Inverter Brand", myInvert.getBrand());
    fields.setField("Inverter Number", myInvert.getNumber());
    fields.setField("Inverter Efficiency", myInvert.getefficiencyString());
    fields.setField("DC kiloWatts", myMod.getDCkiloWatts() + "kW DC");
    fields.setField("Complete Date", mydata.getCompleteDate());
    fields.setField("Rebate Amount", mydata.getRebateAmount());
    fields.setField("Customer Address", myCust.getFullAddress());
    fields.setField("Array Tilt degrees", myMod.getArrayTilt());
    fields.setField("Customer + Customer Address", myCust.getCustomerAdd());
    fields.setField("Preparer Address", myPrep.getFullAddress());
    fields.setField("AC kiloWatt", myInvert.getACKiloWatts());
    fields.setField("AC Export", mydata.getACExport());
    fields.setField("Amperage Rating", myInvert.getAmperage());
    fields.setField("Customer City, State, Zip", myCust.getCityStateZip());
    fields.setField("Inverter Name + Brand + Quantity", myInvert.getInverterNameBrandQty());
    fields.setField("Module Name + Brand + Quantity", myMod.getNumberBrandQty());
    fields.setField("Racking", myMod.getRacking());
    fields.setField("System Production", mydata.getProduction());
    fields.setField("System Cost", mydata.getCost());
    fields.setField("Date", mydata.getTodayDate());
    fields.setField("Module Watts", myMod.getWatts() + " " + "Watts");
    fields.setField("Price Per Watt", mydata.getPricePerWatt());
    stamper.close();
}

From source file:Almacen.Responsiva.java

private void b_imprimirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_b_imprimirActionPerformed
    // TODO add your handling code here:
    Session session = HibernateUtil.getSessionFactory().openSession();
    try {/*from   w  w  w .  j a v a2s.  c o  m*/
        String empleado = "";
        String puesto = "";
        if (t_datos.getRowCount() > 0) {
            //consulta
            Query q = session.createSQLQuery(
                    "select empleado.nombre as empleado, puestos.nombre as puesto from empleado inner join puestos on puestos.id_puestos=empleado.id_puesto where empleado.id_empleado="
                            + t_id_empleado.getText() + ";");
            q.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP);
            List lista = q.list();

            for (int i = 0; i < lista.size(); i++) {
                java.util.HashMap map = (java.util.HashMap) lista.get(i);
                empleado = (String) map.get("empleado");
                puesto = (String) map.get("puesto");
            }

            Date fecha = new Date();
            DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyyHH-mm-ss");//YYYY-MM-DD HH:MM:SS
            String Mes[] = { "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto",
                    "Septiembre", "Octubre", "Noviembre", "Diciembre" };
            Calendar fecha1 = new GregorianCalendar();
            int anio = fecha1.get(Calendar.YEAR);
            int mes = fecha1.get(Calendar.MONTH);
            int dia = fecha1.get(Calendar.DAY_OF_MONTH);
            //DateFormat dateFormat1 = new SimpleDateFormat("dd-MM-yyyy");//YYYY-MM-DD HH:MM:SS
            String valor = dateFormat.format(fecha);
            File folder = new File("reportes/Responsivas");
            folder.mkdirs();
            PdfReader reader = new PdfReader("imagenes/CartaResponsiva.pdf");
            PdfStamper stamp = new PdfStamper(reader,
                    new FileOutputStream("reportes/Responsivas/" + valor + "CartaResponsiva.pdf"));
            PdfContentByte cb = stamp.getUnderContent(1);
            PdfContentByte cb2 = stamp.getUnderContent(2);
            AcroFields fdfDoc = stamp.getAcroFields();
            // Creo una fuente
            BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.EMBEDDED);

            cb.beginText();
            //dia
            try {
                if (dia < 9)
                    fdfDoc.setField("Dia", "0" + String.valueOf(dia));
                else
                    fdfDoc.setField("Dia", String.valueOf(dia));
            } catch (Exception e) {
                fdfDoc.setField("Dia", "error");
            }
            //mes
            try {
                fdfDoc.setField("Mes", Mes[mes]);
            } catch (Exception e) {
                fdfDoc.setField("Mes", "");
            }
            //ao
            try {
                fdfDoc.setField("Anio", String.valueOf(anio));
            } catch (Exception e) {
                fdfDoc.setField("Anio", "");
            }
            //nombre
            try {
                fdfDoc.setField("Nombre", empleado);
            } catch (Exception e) {
                fdfDoc.setField("Nombre", "");
            }
            //puesto
            try {
                fdfDoc.setField("Puesto", puesto);
            } catch (Exception e) {
                fdfDoc.setField("Puesto", "");
            }

            //tabla de herramientas
            float tam[] = new float[] { 250, 50, 180 };
            Font font = new Font(Font.FontFamily.HELVETICA, 7, Font.BOLD);
            PDF reporte = new PDF();
            PdfPTable tabla = reporte.crearTabla(3, tam, 100, Element.ALIGN_LEFT);
            tabla.setTotalWidth(tam);
            BaseColor cabecera = BaseColor.GRAY;
            BaseColor contenido = BaseColor.WHITE;
            int centro = Element.ALIGN_CENTER;
            int izquierda = Element.ALIGN_LEFT;
            int derecha = Element.ALIGN_RIGHT;

            tabla.addCell(reporte.celda("HERRAMIENTA", font, cabecera, centro, 0, 1, Rectangle.RECTANGLE));
            tabla.addCell(reporte.celda("CANTIDAD", font, cabecera, centro, 0, 1, Rectangle.RECTANGLE));
            tabla.addCell(reporte.celda("NOTAS", font, cabecera, centro, 0, 1, Rectangle.RECTANGLE));

            for (int i = 0; i < t_datos.getRowCount(); i++) {
                tabla.addCell(reporte.celda(t_datos.getValueAt(i, 1).toString(), font, contenido, izquierda, 0,
                        1, Rectangle.RECTANGLE));

                tabla.addCell(reporte.celda(String.valueOf((double) t_datos.getValueAt(i, 2)), font, contenido,
                        centro, 0, 1, Rectangle.RECTANGLE));
                if (t_datos.getValueAt(i, 3) != null)
                    tabla.addCell(reporte.celda(t_datos.getValueAt(i, 3).toString(), font, contenido, izquierda,
                            0, 1, Rectangle.RECTANGLE));
                else
                    tabla.addCell(reporte.celda("", font, contenido, izquierda, 0, 1, Rectangle.RECTANGLE));
            }

            tabla.completeRow();
            tabla.writeSelectedRows(0, -1, 70, 720, cb2);
            cb.endText();
            stamp.close();
            reporte.cerrar();
            reporte.visualizar("reportes/Responsivas/" + valor + "CartaResponsiva.pdf");
        } else {
            JOptionPane.showMessageDialog(this, "No Existe Ninguna Responsiva");
        }
    } catch (Exception e) {
        System.out.println(e);
        JOptionPane.showMessageDialog(this, "No se pudo realizar el reporte si el archivo esta abierto");
    }
    if (session != null) {
        if (session.isOpen()) {
            session.close();
        }
    }
}

From source file:com.cts.ptms.carrier.ups.UPSHTTPClient.java

public String createInvoicePDF(String imagePath, String OUTPUT_FILEPATH)
        throws FileNotFoundException, IOException, DocumentException, InterruptedException, URISyntaxException {

    float currPosition = 0;
    String sFilepath = OUTPUT_FILEPATH;
    Image image = Image.getInstance(imagePath);
    //create a paragraph
    Paragraph paragraph = new Paragraph();
    Document d = new Document(PageSize.A4_LANDSCAPE.rotate());
    PdfWriter w = PdfWriter.getInstance(d, new FileOutputStream(sFilepath));
    d.open();/*  w w w.  java  2 s  .c o m*/
    PdfContentByte cb = w.getDirectContent();
    ByteArrayOutputStream stampedBuffer;
    URL resource = this.getClass().getClassLoader().getResource(ShippingConstants.INVOICE_TEMPLATE);
    File file = new File(resource.toURI());
    PdfReader templateReader = new PdfReader(new FileInputStream(file));
    stampedBuffer = new ByteArrayOutputStream();
    PdfStamper stamper = new PdfStamper(templateReader, stampedBuffer);
    stamper.setFormFlattening(true);
    AcroFields form = stamper.getAcroFields();
    float[] columnWidths = { 1f, 1f, 1f, 3f };
    //create PDF table with the given widths
    PdfPTable table = new PdfPTable(columnWidths);
    // form.setField("field1", String.format("Form Text %d", i+1));
    form.setField("OBName", "Ragav");
    form.setField("OBCompany", "Ragav");
    form.setField("OBAddress", "2002 SW Sarazen Cr");
    form.setField("OBCity", "Bentonville");
    form.setField("OBPhone", "1234567890");
    form.setField("STName", "Ragav");
    form.setField("STCompany", "Ragav");
    form.setField("STAddress", "2002 SW Sarazen Cr");
    form.setField("STCity", "Bentonville");
    form.setField("STPhone", "1234567890");
    form.setField("itemNo", "12334535");
    form.setField("itemDesc", "Laundry Bag");
    stamper.close();
    templateReader.close();
    form = null;
    stamper.close();
    templateReader.close();
    PdfReader stampedReader = new PdfReader(stampedBuffer.toByteArray());
    PdfImportedPage page = w.getImportedPage(stampedReader, 1);
    cb.addTemplate(page, 0, currPosition);
    image.scaleAbsoluteHeight(325);
    image.scaleAbsoluteWidth(550);
    image.setRotationDegrees(270);
    image.setAbsolutePosition(450, 20);
    d.add(image);
    d.close();
    w.close();

    return sFilepath;
}

From source file:com.education.freelancer.MainActivity.java

private void doSaveToPdf() {
    PdfReader reader = null;//ww w  .j a va 2s  .  c om
    SharedPreferences sharedpreferences = getSharedPreferences("my_shared", Context.MODE_PRIVATE);
    //  SharedPreferences prefs = this.getSharedPreferences("general_settings", Context.MODE_PRIVATE);
    String count = sharedpreferences.getString("count", "1");
    String pdfPath1 = Environment.getExternalStorageDirectory().getPath() + "/DigitSign/abc" + count + ".pdf";
    try {
        reader = new PdfReader(getAssets().open("abc.pdf"));
        // reader = new PdfReader(getResources().openRawResource(R.raw.abc));
        //  reader = new PdfReader( pdfPath );
    } catch (IOException e) {
        e.printStackTrace();
    }
    AcroFields fields = reader.getAcroFields();

    try {
        OutputStream output = null;
        PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(pdfPath1));
        AcroFields acroFields = stamper.getAcroFields();
        acroFields.setField("page2_1", getUserdetails(0));
        acroFields.setField("page3_2", getUserdetails(1));
        acroFields.setField("page3_3", getUserdetails(2));
        acroFields.setField("page3_4", getUserdetails(3));
        acroFields.setField("page3_6", getUserdetails(4));
        acroFields.setField("page6_1", getUserdetails(5));
        acroFields.setField("page6_2", getUserdetails(6));
        acroFields.setField("page6_4", getUserdetails(7));
        setSignatureStamp(stamper, acroFields, "page3_1");
        setSignatureStamp(stamper, acroFields, "page3_5");
        setSignatureStamp(stamper, acroFields, "page6_3");
        stamper.setFormFlattening(true);
        stamper.close();
        int cou = Integer.parseInt(count);

        String newCount = Integer.toString(++cou);
        SharedPreferences.Editor editor = sharedpreferences.edit();
        editor.putString("count", newCount);
        editor.commit();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (DocumentException e) {
        e.printStackTrace();
    }

}

From source file:com.iei.web.businesscard.business.businesscard.boundary.EmailService.java

public byte[] writePdf(ByteArrayOutputStream outputStream, BusinessCard businessCard)
        throws IOException, DocumentException {
    PdfStamper stamper = null;/*from   ww w  .j a  v a 2  s.c o m*/
    ByteArrayOutputStream byteStream = null;
    String template = getTemplate(businessCard);
    String email = convertEmail(businessCard);
    InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(template);
    PdfReader outReader = new PdfReader(is);
    byteStream = new ByteArrayOutputStream();
    stamper = new PdfStamper(outReader, byteStream);
    AcroFields acroField = stamper.getAcroFields();
    acroField.setFieldProperty("Name", "textsize", new Float(6), null);
    acroField.setField("Name", businessCard.getName());
    acroField.setField("Title", businessCard.getDesignation());
    acroField.setField("Cell", businessCard.getCell());
    acroField.setField("Phone", businessCard.getCompany().getPhone() + "  Ext." + businessCard.getExtension());
    acroField.setField("Web", businessCard.getCompany().getCompanyURL());
    acroField.setField("Email", email);

    stamper.setFormFlattening(true);
    FdfWriter fdfWriter = new FdfWriter();
    acroField.exportAsFdf(fdfWriter);
    stamper.close();
    return byteStream.toByteArray();
}

From source file:com.kentcommunications.paf.StampFields.java

License:Apache License

public void stampPdf(String dest, HashMap<String, String> fields) throws Exception {
    PdfReader reader = new PdfReader(getClass().getResource("/Form.pdf"));
    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
    AcroFields form = stamper.getAcroFields();

    fields.forEach((field, value) -> {
        try {// ww w  .  j  a va 2 s  .  c o  m
            form.setField(field, value);
        } catch (Exception e) {
            e.printStackTrace();
        }
    });

    stamper.close();
}

From source file:com.mui.certificate.core.HalalCertification.java

License:Apache License

@Override
public void exportCertificate(Certificate cert, File outputPdf) throws Exception {
    ByteMatrix matrix = generateQRCode(cert.getCertificateURL().toString());
    int scale = sMagicNumber / matrix.getWidth();
    BufferedImage buffImage = convertToImage(matrix, scale);
    File tempOutput = new File("tmp-qrcode.png");
    ImageIO.write(buffImage, "png", tempOutput);
    Image itImage = Image.getInstance(tempOutput.getCanonicalPath());
    PdfReader reader = new PdfReader("doc/template_certificate_halal.pdf");
    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(outputPdf));
    int centerY = 715;
    int centerX = 135;
    itImage.setAbsolutePosition(centerX - (itImage.getWidth() / 2), centerY - (itImage.getHeight() / 2));
    stamper.getOverContent(1).addImage(itImage);
    AcroFields form1 = stamper.getAcroFields();
    String nameHeader = "topmostSubform[0].Page1[0].";
    form1.setField(nameHeader + "no_certificate[0]", cert.getCertificateNumber().toString());
    form1.setField(nameHeader + "name_product[0]", cert.getProductName());
    form1.setField(nameHeader + "type_product[0]", cert.getProductType());
    form1.setField(nameHeader + "name_company[0]", cert.getCompanyName());
    form1.setField(nameHeader + "company_address[0]", cert.getCompanyAddress());
    Calendar cal = Calendar.getInstance(new Locale("id"));
    Locale idLocale = new Locale("id");
    cal.setTime(cert.getIssuedDate());/*  ww w  .  j  av a2  s  . co m*/
    form1.setField(nameHeader + "issued_date[0]", String.format(idLocale, "%1$tA, %1$te %1$tB %1$tY", cal));
    cal.setTime(cert.getValidDate());
    form1.setField(nameHeader + "expired_date[0]", String.format(idLocale, "%1$tA, %1$te %1$tB %1$tY", cal));
    stamper.setFormFlattening(true);
    stamper.close();
    tempOutput.delete();
}

From source file:com.stee.emer.util.PdfGenerator.java

License:Open Source License

public static byte[] generate(Map<String, String> map) throws IOException, DocumentException {
    URL classPath = PdfGenerator.class.getClassLoader().getResource("");
    PdfReader pdfReader = new PdfReader(classPath + "com/stee/emer/model/model.pdf");
    ByteArrayOutputStream os = new ByteArrayOutputStream();
    PdfStamper pdfStamper = new PdfStamper(pdfReader, os);
    AcroFields acroFields = pdfStamper.getAcroFields();
    BaseFont baseFont = BaseFont.createFont(classPath + "MSYH.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
    ArrayList<BaseFont> list = new ArrayList<BaseFont>();
    list.add(baseFont);/*from  w ww  . ja v a 2  s .c om*/
    acroFields.setSubstitutionFonts(list);
    Iterator<Entry<String, String>> iterator = map.entrySet().iterator();
    while (iterator.hasNext()) {
        Entry<String, String> next = iterator.next();
        acroFields.setField(next.getKey(), next.getValue());
    }

    pdfStamper.setFormFlattening(true);
    pdfStamper.close();

    // File file = new File("e:/temp.pdf");
    // FileOutputStream fileOutputStream = new FileOutputStream(file);
    // fileOutputStream.write(os.toByteArray());
    // fileOutputStream.flush();
    // fileOutputStream.close();
    return os.toByteArray();
}

From source file:com.wabacus.system.assistant.PdfAssistant.java

License:Open Source License

private ByteArrayOutputStream showReportOneRowDataOnPdf(ReportRequest rrequest,
        Map<String, AbsReportType> mReportTypeObjs, IComponentConfigBean ccbean, PDFExportBean pdfbean,
        int rowidx) throws Exception {
    PdfReader pdfTplReader = null;/*from w  w  w.j  a  v a2  s .  c o  m*/
    InputStream istream = null;
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    try {
        istream = WabacusAssistant.getInstance().readFile(pdfbean.getPdftemplate());
        if (istream == null)
            return null;
        pdfTplReader = new PdfReader(new BufferedInputStream(istream));
        PdfStamper stamp = new PdfStamper(pdfTplReader, baos);
        /* ?? */
        AcroFields form = stamp.getAcroFields();
        form.addSubstitutionFont(bfChinese);
        boolean flag = true;
        if (pdfbean != null && pdfbean.getInterceptorObj() != null) {
            flag = pdfbean.getInterceptorObj().beforeDisplayPdfPageWithTemplate(ccbean, mReportTypeObjs, rowidx,
                    stamp);
        }
        if (flag) {
            Map<String, Item> mFields = form.getFields();
            if (mFields != null) {
                String fieldValueTmp = null;
                for (String fieldNameTmp : mFields.keySet()) {
                    fieldValueTmp = getPdfFieldValueByName(rrequest, mReportTypeObjs, ccbean, fieldNameTmp,
                            rowidx);//?
                    if (pdfbean != null && pdfbean.getInterceptorObj() != null) {
                        fieldValueTmp = pdfbean.getInterceptorObj().beforeDisplayFieldWithTemplate(ccbean,
                                mReportTypeObjs, rowidx, stamp, fieldNameTmp, fieldValueTmp);
                    }
                    if (fieldValueTmp != null)
                        form.setField(fieldNameTmp, fieldValueTmp);
                }
            }
        }
        if (pdfbean != null && pdfbean.getInterceptorObj() != null) {
            pdfbean.getInterceptorObj().afterDisplayPdfPageWithTemplate(ccbean, mReportTypeObjs, rowidx, stamp);
        }
        stamp.setFormFlattening(true);
        stamp.close();
    } finally {
        try {
            if (istream != null)
                istream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        if (pdfTplReader != null)
            pdfTplReader.close();
    }
    return baos;
}