Example usage for com.itextpdf.text.pdf PdfWriter getInstance

List of usage examples for com.itextpdf.text.pdf PdfWriter getInstance

Introduction

In this page you can find the example usage for com.itextpdf.text.pdf PdfWriter getInstance.

Prototype


public static PdfWriter getInstance(final Document document, final OutputStream os) throws DocumentException 

Source Link

Document

Use this method to get an instance of the PdfWriter.

Usage

From source file:com.datamyne.charts.AlmostThereDemo.java

License:Apache License

/**
 * Creates PDf file./*  www  .  j a va2  s  . c o  m*/
 * @param outputStream {@link OutputStream}.
 * @throws DocumentException
 * @throws IOException
 */
public void create(OutputStream outputStream) throws DocumentException, IOException {
    Document document = null;
    PdfWriter writer = null;

    try {
        //instantiate document and writer
        document = new Document();
        writer = PdfWriter.getInstance(document, outputStream);

        //open document
        document.open();

        //add image
        int width = 300;
        int height = 300;
        JFreeChart chart = getChart();

        //create PdfContentByte
        //if you work with this object, you write to
        //the top most layer, meaning anything behind
        //will be clipped
        PdfContentByte contentByte = writer.getDirectContent();
        //create PdfTemplate from PdfContentByte
        PdfTemplate template = contentByte.createTemplate(width, height);
        //create Graphics2D from PdfTemplate
        Graphics2D g2 = template.createGraphics(width, height, new DefaultFontMapper());
        //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, null);
        g2.dispose(); //always dispose this
        //add the PdfTemplate to the PdfContentByte
        contentByte.addTemplate(template, 0, 300);

        //release resources
        document.close();
        document = null;

        writer.close();
        writer = null;
    } catch (DocumentException de) {
        throw de;
    } finally {
        //release resources
        if (null != document) {
            try {
                document.close();
            } catch (Exception ex) {
            }
        }

        if (null != writer) {
            try {
                writer.close();
            } catch (Exception ex) {
            }
        }
    }
}

From source file:com.datamyne.charts.FinallyDemo.java

License:Apache License

/**
 * Creates PDf file.//from   ww  w . java 2s . c  o  m
 * @param outputStream {@link OutputStream}.
 * @throws DocumentException
 * @throws IOException
 */
public void create(OutputStream outputStream) throws DocumentException, IOException {
    Document document = null;
    PdfWriter writer = null;

    try {
        //instantiate document and writer
        document = new Document();
        writer = PdfWriter.getInstance(document, outputStream);

        //open document
        document.open();

        //get dummy text
        String text = getText();
        //create text font
        com.itextpdf.text.Font font = new com.itextpdf.text.Font(FontFamily.TIMES_ROMAN, 10.0f);

        //add text before
        document.add(new Paragraph(new Chunk(text, font)));

        //add image
        int width = 300;
        int height = 300;
        JFreeChart chart = getChart();

        //create PdfContentByte
        //if you work with this object, you write to
        //the top most layer, meaning anything behind
        //will be clipped
        PdfContentByte contentByte = writer.getDirectContent();
        //create PdfTemplate from PdfContentByte
        PdfTemplate template = contentByte.createTemplate(width, height);
        //create Graphics2D from PdfTemplate
        Graphics2D g2 = template.createGraphics(width, height, new DefaultFontMapper());
        //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, null);
        g2.dispose(); //always dispose this

        //create Image from PdfTemplate
        Image image = Image.getInstance(template);
        document.add(image);

        //add text after
        document.add(new Paragraph(new Chunk(text, font)));

        //release resources
        document.close();
        document = null;

        writer.close();
        writer = null;
    } catch (DocumentException de) {
        throw de;
    } finally {
        //release resources
        if (null != document) {
            try {
                document.close();
            } catch (Exception ex) {
            }
        }

        if (null != writer) {
            try {
                writer.close();
            } catch (Exception ex) {
            }
        }
    }
}

From source file:com.datamyne.charts.FixingUglyDemoByScaling.java

License:Apache License

/**
 * Creates PDf file./*w w w. j  a v  a 2  s.  co m*/
 * @param outputStream {@link OutputStream}.
 * @throws DocumentException
 * @throws IOException
 */
public void create(OutputStream outputStream) throws DocumentException, IOException {
    Document document = null;
    PdfWriter writer = null;

    try {
        //instantiate document and writer
        document = new Document();
        writer = PdfWriter.getInstance(document, outputStream);

        //open document
        document.open();

        //add image
        int width = 300;
        int height = 300;
        float fWidth = 0.6f * width;
        float fHeight = 0.6f * height;
        JFreeChart chart = getChart();
        BufferedImage bufferedImage = chart.createBufferedImage(width, height);
        Image image = Image.getInstance(writer, bufferedImage, 1.0f);
        image.scaleAbsolute(fWidth, fHeight);
        document.add(image);

        //release resources
        document.close();
        document = null;

        writer.close();
        writer = null;
    } catch (DocumentException de) {
        throw de;
    } catch (IOException ioe) {
        throw ioe;
    } finally {
        //release resources
        if (null != document) {
            try {
                document.close();
            } catch (Exception ex) {
            }
        }

        if (null != writer) {
            try {
                writer.close();
            } catch (Exception ex) {
            }
        }
    }
}

From source file:com.datamyne.charts.UglyDemo.java

License:Apache License

/**
 * Creates PDf file.//from w w  w. j  a v  a2 s  .  c  om
 * @param outputStream {@link OutputStream}.
 * @throws DocumentException
 * @throws IOException
 */
public void create(OutputStream outputStream) throws DocumentException, IOException {
    Document document = null;
    PdfWriter writer = null;

    try {
        //instantiate document and writer
        document = new Document();
        writer = PdfWriter.getInstance(document, outputStream);

        //open document
        document.open();

        //add image
        int width = 300;
        int height = 300;
        JFreeChart chart = getChart();
        BufferedImage bufferedImage = chart.createBufferedImage(width, height);
        Image image = Image.getInstance(writer, bufferedImage, 1.0f);
        document.add(image);

        //release resources
        document.close();
        document = null;

        writer.close();
        writer = null;
    } catch (DocumentException de) {
        throw de;
    } catch (IOException ioe) {
        throw ioe;
    } finally {
        //release resources
        if (null != document) {
            try {
                document.close();
            } catch (Exception ex) {
            }
        }

        if (null != writer) {
            try {
                writer.close();
            } catch (Exception ex) {
            }
        }
    }
}

From source file:com.deadormi.servlet.CreaPdfServlet.java

/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
 * methods./*from   ww w.  j  a  v a 2 s  .  c  o  m*/
 *
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    String url = request.getQueryString();
    Integer gruppo_id = Integer.parseInt(url.substring(url.indexOf("=") + 1, url.length()));

    List<Utente> iscritti = null;
    List<Post> posts = null;
    Gruppo gruppo = null;
    Utente utente = null;
    String imageUrl = null;
    String baseUrl = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort();

    try {
        iscritti = UtenteController.getUserByGroupId(request, gruppo_id);
        gruppo = GruppoController.getGruppoById(request, gruppo_id);
    } catch (SQLException ex) {
        log.error(ex);
    }

    // step 1: creation of a document-object
    Document document = new Document();
    try {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        PdfWriter.getInstance(document, baos);
        document.open();

        String incipit = "Report del " + CurrentDate.getCurrentDate() + "\n";
        Paragraph pIncipit = new Paragraph(incipit,
                FontFactory.getFont(FontFactory.HELVETICA, 14, BaseColor.BLACK));
        pIncipit.setAlignment(Element.ALIGN_CENTER);
        pIncipit.setSpacingAfter(10);
        document.add(pIncipit);

        String title = "Gruppo " + gruppo.getNome();
        Paragraph pTitle = new Paragraph(title, FontFactory.getFont(FontFactory.HELVETICA, 18, BaseColor.BLUE));
        pTitle.setAlignment(Element.ALIGN_CENTER);
        pTitle.setSpacingAfter(40);
        document.add(pTitle);

        PdfPCell labelNome = new PdfPCell(new Paragraph("Nome utente"));
        PdfPCell labelNumPost = new PdfPCell(new Paragraph("Num. post"));
        PdfPCell labelData = new PdfPCell(new Paragraph("Data ultimo post"));
        labelNome.setBorder(Rectangle.NO_BORDER);
        labelNumPost.setBorder(Rectangle.NO_BORDER);
        labelData.setBorder(Rectangle.NO_BORDER);

        for (int i = 0; i < iscritti.size(); i++) {
            utente = iscritti.get(i);
            try {
                posts = PostController.getPostByGruppoIdAndUserId(request, gruppo_id, utente.getId_utente());
            } catch (SQLException ex) {
                Logger.getLogger(CreaPdfServlet.class.getName()).log(Level.SEVERE, null, ex);
            }

            if (utente.getNome_avatar() != null) {
                imageUrl = baseUrl + request.getContextPath() + AVATAR_RESOURCE_PATH + "/"
                        + utente.getId_utente() + "_" + utente.getNome_avatar();
                ;
            } else {
                imageUrl = baseUrl + request.getContextPath() + "/res/images/user_avatar.png";
            }
            Image image = Image.getInstance(new URL(imageUrl));
            image.scaleToFit(50, 50);

            PdfPTable table = new PdfPTable(3);

            PdfPCell cellAvatar = new PdfPCell(image);
            cellAvatar.setHorizontalAlignment(Element.ALIGN_CENTER);
            cellAvatar.setBorder(Rectangle.NO_BORDER);
            cellAvatar.setRowspan(3);

            PdfPCell cellNome = new PdfPCell(new Paragraph(utente.getUsername() + ""));
            cellNome.setBorder(Rectangle.NO_BORDER);

            PdfPCell cellNumPost = new PdfPCell(new Paragraph(posts.size() + ""));
            cellNumPost.setBorder(Rectangle.NO_BORDER);

            //L'ultimo  sempre il piu recente siccome la query  ORDER BY data_creazione
            PdfPCell cellData;
            if (posts.size() != 0) {
                cellData = new PdfPCell(new Paragraph(posts.get(posts.size() - 1).getData_creazione()));
            } else {
                cellData = new PdfPCell(new Paragraph("N/A"));

            }
            cellData.setBorder(Rectangle.NO_BORDER);

            PdfPCell cellVoidBottom = new PdfPCell(new Paragraph(" "));
            cellVoidBottom.setBorder(Rectangle.BOTTOM);
            cellVoidBottom.setPaddingBottom(10);
            cellVoidBottom.setColspan(3);

            PdfPCell cellVoidTop = new PdfPCell(new Paragraph(" "));
            cellVoidTop.setBorder(Rectangle.NO_BORDER);
            cellVoidTop.setPaddingTop(10);
            cellVoidTop.setColspan(3);

            table.addCell(cellVoidTop);
            table.addCell(cellAvatar);
            table.addCell(labelNome);
            table.addCell(cellNome);
            table.addCell(labelNumPost);
            table.addCell(cellNumPost);
            table.addCell(labelData);
            table.addCell(cellData);
            table.addCell(cellVoidBottom);

            document.add(table);

        }

        document.close();
        response.setContentType("application/pdf");
        response.addHeader("Content-Disposition", "inline; filename=ahahah.pdf");
        OutputStream os = response.getOutputStream();
        baos.writeTo(os);
        os.flush();
        os.close();
    } catch (DocumentException ex) {
        Logger.getLogger(CreaPdfServlet.class.getName()).log(Level.SEVERE, null, ex);
    }
}

From source file:com.debashubham.dumpy.ChainageCalcActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.chainage_calc_activity);

    chain_lcr = (Spinner) findViewById(R.id.spinner_LCR);
    chain_points = (Spinner) findViewById(R.id.spinner_chain_points);

    ArrayAdapter<String> adapter;
    List<String> list;

    list = new ArrayList<String>();
    list.add("L");
    list.add("C");
    list.add("R");
    adapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.spinner_item, list);
    adapter.setDropDownViewResource(R.layout.spinner_item);
    chain_lcr.setAdapter(adapter);/*from   ww w .ja  va  2s .  c o m*/

    list = new ArrayList<String>();
    for (int i = 0; i <= 5000; i += 5) {
        list.add(String.valueOf(i));
    }
    adapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.spinner_item, list);
    adapter.setDropDownViewResource(R.layout.spinner_item);
    chain_points.setAdapter(adapter);

    back_button = (ImageView) findViewById(R.id.back_button_chainage_calc);

    bs = (EditText) findViewById(R.id.BS_chain);
    rl = (EditText) findViewById(R.id.RL_chain);
    is = (EditText) findViewById(R.id.IS_chain);
    fs = (EditText) findViewById(R.id.FS_chain);
    hi = (TextView) findViewById(R.id.HI_chain);
    last_entered = (TextView) findViewById(R.id.last_entry_chain);

    document = new Document();
    introduction = getSharedPreferences("introduction", MODE_PRIVATE);
    String restoredText = introduction.getString("work_name", null);
    if (restoredText != null) {
        work_name = introduction.getString("work_name", "Default");
        surveyor_name = introduction.getString("surveyor_name", "Default");
        date_of_survey = introduction.getString("date_of_survey", "00/00/0000");
    }

    pdfDirectory = new File(Environment.getExternalStorageDirectory() + File.separator + "Dumpy");
    if (!pdfDirectory.exists()) {
        dirSuccess = pdfDirectory.mkdirs();
        Log.e("File:", "Directory Dumpy created!");
    } else {
        Log.e("File:", "Dumpy Directory already exists!");
    }

    bs_input = (Button) findViewById(R.id.button_BS_chain);
    rl_input = (Button) findViewById(R.id.button_RL_chain);
    is_input = (Button) findViewById(R.id.button_IS_chain);
    fs_input = (Button) findViewById(R.id.button_FS_chain);
    clear_button = (Button) findViewById(R.id.clear_button_chain);
    clear_single_value = (Button) findViewById(R.id.clear_last_button_chain);

    accept = (FloatingActionButton) findViewById(R.id.fab_accept_chainage_values);

    rl.setEnabled(false);
    is.setEnabled(false);
    fs.setEnabled(false);
    rl_input.setEnabled(false);
    is_input.setEnabled(false);
    fs_input.setEnabled(false);
    accept.setEnabled(false);

    bs_list = new HashMap<>();
    rl_list = new HashMap<>();
    is_list = new HashMap<>();
    fs_list = new HashMap<>();
    hi_list = new HashMap<>();
    remarks_list = new HashMap<>();
    left = new HashMap<>();
    center = new HashMap<>();
    right = new HashMap<>();
    values_list = new LinkedList<>();
    hi_counter_list = new LinkedList<>();
    chainage = new LinkedList<>();
    chainage_points = new LinkedList<>();

    clear_single_value.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (!values_list.isEmpty()) {
                switch (values_list.getLast()) {
                case 0:
                    bs_list.remove(counter);
                    remarks_list.remove(counter);
                    counter--;
                    values_list.removeLast();
                    flag_enter = 9999;
                    last_entered.setText("No Data!");
                    clear_single_value.setEnabled(false);
                    bs.setEnabled(true);
                    is.setEnabled(false);
                    rl.setEnabled(false);
                    fs.setEnabled(false);
                    bs_input.setEnabled(true);
                    is_input.setEnabled(false);
                    rl_input.setEnabled(false);
                    fs_input.setEnabled(false);
                    accept.setEnabled(false);
                    Toast.makeText(getApplicationContext(), "All values cleared, no data remaining!",
                            Toast.LENGTH_SHORT).show();
                    bs.setEnabled(true);
                    is.setEnabled(false);
                    rl.setEnabled(false);
                    fs.setEnabled(false);
                    bs_input.setEnabled(true);
                    is_input.setEnabled(false);
                    rl_input.setEnabled(false);
                    fs_input.setEnabled(false);
                    Toast.makeText(getApplicationContext(), "BS value cleared!", Toast.LENGTH_SHORT).show();
                    break;
                case 1:
                    rl_list.remove(counter);
                    hi_list.remove(store_hi_counter);
                    hi_counter_list.removeLast();
                    if (!hi_counter_list.isEmpty())
                        store_hi_counter = hi_counter_list.getLast();
                    else
                        store_hi_counter = 0;
                    values_list.removeLast();
                    last_entered.setText(getLastData(values_list.getLast()));
                    bs.setEnabled(false);
                    is.setEnabled(false);
                    rl.setEnabled(true);
                    fs.setEnabled(false);
                    bs_input.setEnabled(false);
                    is_input.setEnabled(false);
                    rl_input.setEnabled(true);
                    fs_input.setEnabled(false);
                    Toast.makeText(getApplicationContext(), "RL and HI value cleared!", Toast.LENGTH_SHORT)
                            .show();
                    break;
                case 2:
                    bs_list.remove(counter);
                    hi_list.remove(store_hi_counter);
                    hi_counter_list.removeLast();
                    if (!hi_counter_list.isEmpty())
                        store_hi_counter = hi_counter_list.getLast();
                    else
                        store_hi_counter = 0;
                    Log.e("Counter:", String.valueOf(counter));
                    values_list.removeLast();
                    chainage.removeLast();
                    chainage_points.removeLast();
                    last_entered.setText(String.valueOf(chainage.getLast()) + ":"
                            + String.valueOf(String.valueOf(chainage_points.getLast())) + " "
                            + getLastData(values_list.getLast()));
                    bs.setEnabled(true);
                    is.setEnabled(false);
                    rl.setEnabled(false);
                    fs.setEnabled(false);
                    bs_input.setEnabled(true);
                    is_input.setEnabled(false);
                    rl_input.setEnabled(false);
                    fs_input.setEnabled(false);
                    Toast.makeText(getApplicationContext(), "BS value cleared!", Toast.LENGTH_SHORT).show();
                    break;
                case 3:
                    is_list.remove(counter);
                    rl_list.remove(counter);
                    counter--;
                    values_list.removeLast();
                    chainage.removeLast();
                    chainage_points.removeLast();
                    last_entered.setText(String.valueOf(chainage.getLast()) + ":"
                            + String.valueOf(String.valueOf(chainage_points.getLast())) + " "
                            + getLastData(values_list.getLast()));
                    bs.setEnabled(false);
                    is.setEnabled(true);
                    rl.setEnabled(false);
                    fs.setEnabled(true);
                    bs_input.setEnabled(false);
                    is_input.setEnabled(true);
                    rl_input.setEnabled(false);
                    fs_input.setEnabled(true);
                    Toast.makeText(getApplicationContext(), "IS and RL value cleared!", Toast.LENGTH_SHORT)
                            .show();
                    break;
                case 4:
                    fs_list.remove(counter);
                    rl_list.remove(counter);
                    remarks_list.remove(counter);
                    change_point_count--;
                    counter--;
                    values_list.removeLast();
                    last_entered.setText(String.valueOf(chainage.getLast()) + ":"
                            + String.valueOf(String.valueOf(chainage_points.getLast())) + " "
                            + getLastData(values_list.getLast()));
                    bs.setEnabled(false);
                    is.setEnabled(true);
                    rl.setEnabled(false);
                    fs.setEnabled(true);
                    bs_input.setEnabled(false);
                    is_input.setEnabled(true);
                    rl_input.setEnabled(false);
                    fs_input.setEnabled(true);
                    Toast.makeText(getApplicationContext(), "FS and HI value cleared!", Toast.LENGTH_SHORT)
                            .show();
                    break;
                default:
                    last_entered.setText(getLastData(values_list.getLast()));
                    bs.setEnabled(true);
                    is.setEnabled(false);
                    rl.setEnabled(false);
                    fs.setEnabled(false);
                    bs_input.setEnabled(true);
                    is_input.setEnabled(false);
                    rl_input.setEnabled(false);
                    fs_input.setEnabled(false);
                    Toast.makeText(getApplicationContext(), "All values cleared, no data remaining!",
                            Toast.LENGTH_SHORT).show();
                }
            } else {
                flag_enter = 9999;
                last_entered.setText("No Data!");
                clear_single_value.setEnabled(false);
                bs.setEnabled(true);
                is.setEnabled(false);
                rl.setEnabled(false);
                fs.setEnabled(false);
                bs_input.setEnabled(true);
                is_input.setEnabled(false);
                rl_input.setEnabled(false);
                fs_input.setEnabled(false);
                accept.setEnabled(false);
                Toast.makeText(getApplicationContext(), "All values cleared, no data remaining!",
                        Toast.LENGTH_SHORT).show();
            }
        }
    });

    clear_button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            bs_list.clear();
            rl_list.clear();
            is_list.clear();
            fs_list.clear();
            hi_list.clear();
            left.clear();
            right.clear();
            center.clear();
            remarks_list.clear();
            values_list.clear();
            chainage.clear();
            chainage_points.clear();
            rl.setEnabled(false);
            is.setEnabled(false);
            fs.setEnabled(false);
            last_entered.setText("");
            rl_input.setEnabled(false);
            is_input.setEnabled(false);
            fs_input.setEnabled(false);
            bs.setEnabled(true);
            bs_input.setEnabled(true);
            clear_single_value.setEnabled(false);
            c = 0;
            counter = 0;
            change_point_count = 0;
            hi.setText("");
            Toast.makeText(getApplicationContext(), "Values in memory cleared!", Toast.LENGTH_SHORT).show();
        }
    });

    bs_input.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (c == 0) {
                rl_input.setEnabled(true);
                rl.setEnabled(true);
                clear_single_value.setEnabled(true);
                counter++;
                remarks = "B.M.";
                remarks_list.put(counter, remarks);
                bs_list.put(counter, Double.parseDouble(bs.getText().toString()));
                values_list.add(0);
                last_entered.setText(getLastData(values_list.getLast()));
                rl.requestFocus();
            } else {
                is_input.setEnabled(true);
                is.setEnabled(true);
                fs_input.setEnabled(true);
                fs.setEnabled(true);
                bs_list.put(counter, Double.parseDouble(bs.getText().toString()));

                if (chain_lcr.getSelectedItem().toString().equals("L")) {
                    left.put(counter, chain_points.getSelectedItem().toString());
                    chainage.add('L');
                    chainage_points.add(Integer.parseInt(chain_points.getSelectedItem().toString()));
                } else if (chain_lcr.getSelectedItem().toString().equals("C")) {
                    center.put(counter, chain_points.getSelectedItem().toString());
                    chainage.add('C');
                    chainage_points.add(Integer.parseInt(chain_points.getSelectedItem().toString()));
                } else {
                    right.put(counter, chain_points.getSelectedItem().toString());
                    chainage.add('R');
                    chainage_points.add(Integer.parseInt(chain_points.getSelectedItem().toString()));
                }
                chain_points.setEnabled(true);
                chain_lcr.setEnabled(true);
                values_list.add(2);
                last_entered.setText(String.valueOf(chainage.getLast()) + ":"
                        + String.valueOf(String.valueOf(chainage_points.getLast())) + " "
                        + getLastData(values_list.getLast()));
                is.requestFocus();
            }
            bs.setText("");
            bs.setEnabled(false);
            bs_input.setEnabled(false);
            if (c == 1) {
                hi_list.put(counter,
                        (Math.round((bs_list.get(counter) + rl_list.get(counter)) * 1000.0) / 1000.0));
                store_hi_counter = counter;
                hi_counter_list.add(store_hi_counter);
                hi.setText(String.valueOf(bs_list.get(counter) + rl_list.get(counter)));
                if (chain_lcr.getSelectedItem().toString().equals("L")) {
                    left.put(counter, chain_points.getSelectedItem().toString());
                    chainage.add('L');
                    chainage_points.add(Integer.parseInt(chain_points.getSelectedItem().toString()));
                } else if (chain_lcr.getSelectedItem().toString().equals("C")) {
                    center.put(counter, chain_points.getSelectedItem().toString());
                    chainage.add('C');
                    chainage_points.add(Integer.parseInt(chain_points.getSelectedItem().toString()));
                } else {
                    right.put(counter, chain_points.getSelectedItem().toString());
                    chainage.add('R');
                    chainage_points.add(Integer.parseInt(chain_points.getSelectedItem().toString()));
                }
                chain_lcr.setEnabled(true);
                chain_points.setEnabled(true);
            }
            Toast.makeText(getApplicationContext(), "BS entered!", Toast.LENGTH_SHORT).show();
        }
    });

    rl_input.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            rl_list.put(counter, Double.parseDouble(rl.getText().toString()));
            is_input.setEnabled(true);
            is.setEnabled(true);
            fs_input.setEnabled(true);
            fs.setEnabled(true);
            bs_input.setEnabled(false);
            bs.setEnabled(false);
            rl.setText("");
            rl_input.setEnabled(false);
            rl.setEnabled(false);

            hi_list.put(counter, (Math.round((bs_list.get(counter) + rl_list.get(counter)) * 1000.0) / 1000.0));
            store_hi_counter = counter;
            hi_counter_list.add(store_hi_counter);
            hi.setText(String.valueOf(hi_list.get(counter)));
            c = 1;
            Toast.makeText(getApplicationContext(), "RL entered!", Toast.LENGTH_SHORT).show();
            values_list.add(1);
            last_entered.setText(getLastData(values_list.getLast()));
            is.requestFocus();
        }
    });

    is_input.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            counter++;
            is_list.put(counter, Double.parseDouble(is.getText().toString()));
            is.setText("");

            rl_list.put(counter,
                    Math.round((hi_list.get(store_hi_counter) - is_list.get(counter)) * 1000.0) / 1000.0);
            if (chain_lcr.getSelectedItem().toString().equals("L")) {
                left.put(counter, chain_points.getSelectedItem().toString());
                chainage.add('L');
                chainage_points.add(Integer.parseInt(chain_points.getSelectedItem().toString()));
            } else if (chain_lcr.getSelectedItem().toString().equals("C")) {
                center.put(counter, chain_points.getSelectedItem().toString());
                chainage.add('C');
                chainage_points.add(Integer.parseInt(chain_points.getSelectedItem().toString()));
            } else {
                right.put(counter, chain_points.getSelectedItem().toString());
                chainage.add('R');
                chainage_points.add(Integer.parseInt(chain_points.getSelectedItem().toString()));
            }
            Toast.makeText(getApplicationContext(), "IS entered!", Toast.LENGTH_SHORT).show();
            values_list.add(3);
            last_entered.setText(String.valueOf(chainage.getLast()) + ":"
                    + String.valueOf(String.valueOf(chainage_points.getLast())) + " "
                    + getLastData(values_list.getLast()));
            is.requestFocus();
        }
    });

    fs_input.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            counter++;
            change_point_count++;
            remarks = "CP:" + String.valueOf(change_point_count);
            remarks_list.put(counter, remarks);
            fs_list.put(counter, Double.parseDouble(fs.getText().toString()));
            fs.setText("");
            bs.setEnabled(true);
            bs_input.setEnabled(true);
            is.setEnabled(false);
            is_input.setEnabled(false);
            fs.setEnabled(false);
            fs_input.setEnabled(false);
            accept.setEnabled(true);
            chain_lcr.setEnabled(false);
            chain_points.setEnabled(false);

            rl_list.put(counter,
                    Math.round((hi_list.get(store_hi_counter) - fs_list.get(counter)) * 1000.0) / 1000.0);
            Toast.makeText(getApplicationContext(), "FS entered!", Toast.LENGTH_SHORT).show();
            values_list.add(4);
            last_entered.setText(getLastData(values_list.getLast()));
            bs.requestFocus();
        }
    });
    accept.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            remarks = "Last Station";
            remarks_list.put(counter, remarks);
            if (chain_lcr.getSelectedItem().toString().equals("L"))
                left.put(counter, chain_points.getSelectedItem().toString());
            else if (chain_lcr.getSelectedItem().toString().equals("C"))
                center.put(counter, chain_points.getSelectedItem().toString());
            else
                right.put(counter, chain_points.getSelectedItem().toString());
            Toast.makeText(getApplicationContext(), "Values accepted!", Toast.LENGTH_SHORT).show();
            Log.e("BS:", bs_list.toString());
            Log.e("IS:", is_list.toString());
            Log.e("FS:", fs_list.toString());
            Log.e("HI:", hi_list.toString());
            Log.e("RL:", rl_list.toString());
            Log.e("Remarks:", remarks_list.toString());
            Log.e("Chaining Left:", left.toString());
            Log.e("Chaining Center:", center.toString());
            Log.e("Chaining Right:", right.toString());
            accept.setEnabled(false);

            newFile = new File(Environment.getExternalStorageDirectory() + File.separator + "Dumpy"
                    + File.separator + "Reading" + formattedDate + ".pdf");

            try {
                newFile.createNewFile();
            } catch (IOException e) {
                Toast.makeText(getApplicationContext(), "File not created!", Toast.LENGTH_SHORT).show();
                e.printStackTrace();
            }
            try {
                PdfWriter.getInstance(document, new FileOutputStream(newFile));
            } catch (DocumentException e) {
                e.printStackTrace();
            } catch (FileNotFoundException e) {
                Toast.makeText(getApplicationContext(), "File to be written not created!", Toast.LENGTH_SHORT)
                        .show();
                e.printStackTrace();
            }
            document.open();
            try {
                addMetaData(document);
                addTitlePage(document);
                addContent(document);
                document.close();
                Toast.makeText(getApplicationContext(), "PDF Exported to " + newFile.getAbsolutePath(),
                        Toast.LENGTH_LONG).show();
            } catch (Exception e) {
                e.printStackTrace();
            }

            Intent target = new Intent(Intent.ACTION_VIEW);
            target.setDataAndType(Uri.fromFile(newFile), "application/pdf");
            target.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);

            Intent intent = Intent.createChooser(target, "Open File");
            try {
                startActivity(intent);
            } catch (ActivityNotFoundException e) {
                Toast.makeText(getApplicationContext(), "No PDF reader application found. Please install one.",
                        Toast.LENGTH_SHORT).show();
                // Instruct the user to install a PDF reader here, or something
            }
        }
    });
    back_button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            onBackPressed();
        }
    });
}

From source file:com.debashubham.dumpy.SimpleCalcActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.simple_calc_acitivity);
    back_button = (ImageView) findViewById(R.id.back_button_simple_calc);

    bs = (EditText) findViewById(R.id.BS);
    rl = (EditText) findViewById(R.id.RL);
    is = (EditText) findViewById(R.id.IS);
    fs = (EditText) findViewById(R.id.FS);
    hi = (TextView) findViewById(R.id.HI);
    last_entered = (TextView) findViewById(R.id.last_entered);

    document = new Document();
    introduction = getSharedPreferences("introduction", MODE_PRIVATE);
    String restoredText = introduction.getString("work_name", null);
    if (restoredText != null) {
        work_name = introduction.getString("work_name", "Default");
        surveyor_name = introduction.getString("surveyor_name", "Default");
        date_of_survey = introduction.getString("date_of_survey", "00/00/0000");
    }//from   www . ja v  a 2s .  co  m

    pdfDirectory = new File(Environment.getExternalStorageDirectory() + File.separator + "Dumpy");
    if (!pdfDirectory.exists()) {
        dirSuccess = pdfDirectory.mkdirs();
        Log.e("File:", "Directory Dumpy created!");
    } else {
        Log.e("File:", "Dumpy Directory already exists!");
    }

    bs_input = (Button) findViewById(R.id.button_BS);
    rl_input = (Button) findViewById(R.id.button_RL);
    is_input = (Button) findViewById(R.id.button_IS);
    fs_input = (Button) findViewById(R.id.button_FS);
    clear_button = (Button) findViewById(R.id.clear_button);
    clear_single_value = (Button) findViewById(R.id.clear_last_button);

    accept = (FloatingActionButton) findViewById(R.id.fab_accept_simple_values);

    rl.setEnabled(false);
    is.setEnabled(false);
    fs.setEnabled(false);
    rl_input.setEnabled(false);
    is_input.setEnabled(false);
    fs_input.setEnabled(false);
    accept.setEnabled(false);
    clear_single_value.setEnabled(false);

    bs_list = new HashMap<>();
    rl_list = new HashMap<>();
    is_list = new HashMap<>();
    fs_list = new HashMap<>();
    hi_list = new HashMap<>();
    remarks_list = new HashMap<>();
    values_list = new LinkedList<>();
    hi_counter_list = new LinkedList<>();

    clear_single_value.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (!values_list.isEmpty()) {
                switch (values_list.getLast()) {
                case 0:
                    bs_list.remove(counter);
                    remarks_list.remove(counter);
                    counter--;
                    values_list.removeLast();
                    flag_enter = 9999;
                    last_entered.setText("No Data!");
                    clear_single_value.setEnabled(false);
                    bs.setEnabled(true);
                    is.setEnabled(false);
                    rl.setEnabled(false);
                    fs.setEnabled(false);
                    bs_input.setEnabled(true);
                    is_input.setEnabled(false);
                    rl_input.setEnabled(false);
                    fs_input.setEnabled(false);
                    accept.setEnabled(false);
                    Toast.makeText(getApplicationContext(), "All values cleared, no data remaining!",
                            Toast.LENGTH_SHORT).show();
                    bs.setEnabled(true);
                    is.setEnabled(false);
                    rl.setEnabled(false);
                    fs.setEnabled(false);
                    bs_input.setEnabled(true);
                    is_input.setEnabled(false);
                    rl_input.setEnabled(false);
                    fs_input.setEnabled(false);
                    Toast.makeText(getApplicationContext(), "BS value cleared!", Toast.LENGTH_SHORT).show();
                    break;
                case 1:
                    rl_list.remove(counter);
                    hi_list.remove(store_hi_counter);
                    hi_counter_list.removeLast();
                    if (!hi_counter_list.isEmpty())
                        store_hi_counter = hi_counter_list.getLast();
                    else
                        store_hi_counter = 0;
                    values_list.removeLast();
                    last_entered.setText(getLastData(values_list.getLast()));
                    bs.setEnabled(false);
                    is.setEnabled(false);
                    rl.setEnabled(true);
                    fs.setEnabled(false);
                    bs_input.setEnabled(false);
                    is_input.setEnabled(false);
                    rl_input.setEnabled(true);
                    fs_input.setEnabled(false);
                    Toast.makeText(getApplicationContext(), "RL and HI value cleared!", Toast.LENGTH_SHORT)
                            .show();
                    break;
                case 2:
                    bs_list.remove(counter);
                    hi_list.remove(store_hi_counter);
                    hi_counter_list.removeLast();
                    if (!hi_counter_list.isEmpty())
                        store_hi_counter = hi_counter_list.getLast();
                    else
                        store_hi_counter = 0;
                    Log.e("Counter:", String.valueOf(counter));
                    values_list.removeLast();
                    last_entered.setText(getLastData(values_list.getLast()));
                    bs.setEnabled(true);
                    is.setEnabled(false);
                    rl.setEnabled(false);
                    fs.setEnabled(false);
                    bs_input.setEnabled(true);
                    is_input.setEnabled(false);
                    rl_input.setEnabled(false);
                    fs_input.setEnabled(false);
                    Toast.makeText(getApplicationContext(), "BS value cleared!", Toast.LENGTH_SHORT).show();
                    break;
                case 3:
                    is_list.remove(counter);
                    rl_list.remove(counter);
                    counter--;
                    values_list.removeLast();
                    last_entered.setText(getLastData(values_list.getLast()));
                    bs.setEnabled(false);
                    is.setEnabled(true);
                    rl.setEnabled(false);
                    fs.setEnabled(true);
                    bs_input.setEnabled(false);
                    is_input.setEnabled(true);
                    rl_input.setEnabled(false);
                    fs_input.setEnabled(true);
                    Toast.makeText(getApplicationContext(), "IS and RL value cleared!", Toast.LENGTH_SHORT)
                            .show();
                    break;
                case 4:
                    fs_list.remove(counter);
                    rl_list.remove(counter);
                    remarks_list.remove(counter);
                    change_point_count--;
                    counter--;
                    values_list.removeLast();
                    last_entered.setText(getLastData(values_list.getLast()));
                    bs.setEnabled(false);
                    is.setEnabled(true);
                    rl.setEnabled(false);
                    fs.setEnabled(true);
                    bs_input.setEnabled(false);
                    is_input.setEnabled(true);
                    rl_input.setEnabled(false);
                    fs_input.setEnabled(true);
                    Toast.makeText(getApplicationContext(), "FS and HI value cleared!", Toast.LENGTH_SHORT)
                            .show();
                    break;
                default:
                    last_entered.setText(getLastData(values_list.getLast()));
                    bs.setEnabled(true);
                    is.setEnabled(false);
                    rl.setEnabled(false);
                    fs.setEnabled(false);
                    bs_input.setEnabled(true);
                    is_input.setEnabled(false);
                    rl_input.setEnabled(false);
                    fs_input.setEnabled(false);
                    Toast.makeText(getApplicationContext(), "All values cleared, no data remaining!",
                            Toast.LENGTH_SHORT).show();
                }
            } else {
                flag_enter = 9999;
                last_entered.setText("No Data!");
                clear_single_value.setEnabled(false);
                bs.setEnabled(true);
                is.setEnabled(false);
                rl.setEnabled(false);
                fs.setEnabled(false);
                bs_input.setEnabled(true);
                is_input.setEnabled(false);
                rl_input.setEnabled(false);
                fs_input.setEnabled(false);
                accept.setEnabled(false);
                Toast.makeText(getApplicationContext(), "All values cleared, no data remaining!",
                        Toast.LENGTH_SHORT).show();
            }
        }
    });

    clear_button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            bs_list.clear();
            rl_list.clear();
            is_list.clear();
            fs_list.clear();
            hi_list.clear();
            remarks_list.clear();
            values_list.clear();
            rl.setEnabled(false);
            is.setEnabled(false);
            fs.setEnabled(false);
            last_entered.setText("");
            rl_input.setEnabled(false);
            is_input.setEnabled(false);
            fs_input.setEnabled(false);
            bs.setEnabled(true);
            bs_input.setEnabled(true);
            accept.setEnabled(false);
            clear_single_value.setEnabled(false);
            c = 0;
            counter = 0;
            change_point_count = 0;
            hi.setText("");
            Toast.makeText(getApplicationContext(), "Values in memory cleared!", Toast.LENGTH_SHORT).show();
        }
    });

    bs_input.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (c == 0) {
                rl_input.setEnabled(true);
                rl.setEnabled(true);
                clear_single_value.setEnabled(true);
                counter++;
                remarks = "B.M.";
                remarks_list.put(counter, remarks);
                bs_list.put(counter, Double.parseDouble(bs.getText().toString()));
                values_list.add(0);
                last_entered.setText(getLastData(values_list.getLast()));
                rl.requestFocus();

                flag_enter = 0;
            } else {
                is_input.setEnabled(true);
                is.setEnabled(true);
                fs_input.setEnabled(true);
                fs.setEnabled(true);
                bs_list.put(counter, Double.parseDouble(bs.getText().toString()));
                Log.e("BS:", "Entered!");
                values_list.add(2);
                last_entered.setText(getLastData(values_list.getLast()));
                is.requestFocus();

                flag_enter = 2;
            }
            bs.setText("");
            bs.setEnabled(false);
            bs_input.setEnabled(false);
            if (c == 1) {
                Log.e("Counter:", String.valueOf(counter));
                hi_list.put(counter,
                        (Math.round((bs_list.get(counter) + rl_list.get(counter)) * 1000.0) / 1000.0));
                store_hi_counter = counter;
                hi_counter_list.add(store_hi_counter);
                hi.setText(String.valueOf(bs_list.get(counter) + rl_list.get(counter)));
            }
            Toast.makeText(getApplicationContext(), "BS entered!", Toast.LENGTH_SHORT).show();
        }
    });

    rl_input.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            rl_list.put(counter, Double.parseDouble(rl.getText().toString()));
            is_input.setEnabled(true);
            is.setEnabled(true);
            fs_input.setEnabled(true);
            fs.setEnabled(true);
            bs_input.setEnabled(false);
            bs.setEnabled(false);
            rl.setText("");
            rl_input.setEnabled(false);
            rl.setEnabled(false);

            hi_list.put(counter, (Math.round((bs_list.get(counter) + rl_list.get(counter)) * 1000.0) / 1000.0));
            store_hi_counter = counter;
            hi_counter_list.add(store_hi_counter);
            hi.setText(String.valueOf(hi_list.get(counter)));
            c = 1;
            Toast.makeText(getApplicationContext(), "RL entered!", Toast.LENGTH_SHORT).show();
            values_list.add(1);
            last_entered.setText(getLastData(values_list.getLast()));
            is.requestFocus();

            flag_enter = 1;
        }
    });

    is_input.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            counter++;
            is_list.put(counter, Double.parseDouble(is.getText().toString()));
            is.setText("");

            rl_list.put(counter,
                    Math.round((hi_list.get(store_hi_counter) - is_list.get(counter)) * 1000.0) / 1000.0);
            Toast.makeText(getApplicationContext(), "IS entered!", Toast.LENGTH_SHORT).show();
            values_list.add(3);
            last_entered.setText(getLastData(values_list.getLast()));
            is.requestFocus();

            flag_enter = 3;
        }
    });

    fs_input.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            counter++;
            change_point_count++;
            remarks = "CP:" + String.valueOf(change_point_count);
            remarks_list.put(counter, remarks);
            fs_list.put(counter, Double.parseDouble(fs.getText().toString()));
            fs.setText("");
            bs.setEnabled(true);
            bs_input.setEnabled(true);
            is.setEnabled(false);
            is_input.setEnabled(false);
            fs.setEnabled(false);
            fs_input.setEnabled(false);
            accept.setEnabled(true);

            rl_list.put(counter,
                    Math.round((hi_list.get(store_hi_counter) - fs_list.get(counter)) * 1000.0) / 1000.0);
            Toast.makeText(getApplicationContext(), "FS entered!", Toast.LENGTH_SHORT).show();
            values_list.add(4);
            last_entered.setText(getLastData(values_list.getLast()));
            bs.requestFocus();

            flag_enter = 4;
        }
    });

    accept.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            remarks = "Last Station";
            remarks_list.put(counter, remarks);
            Toast.makeText(getApplicationContext(), "Values accepted!", Toast.LENGTH_SHORT).show();
            Log.e("BS:", bs_list.toString());
            Log.e("IS:", is_list.toString());
            Log.e("FS:", fs_list.toString());
            Log.e("HI:", hi_list.toString());
            Log.e("RL:", rl_list.toString());
            Log.e("Remarks:", remarks_list.toString());
            accept.setEnabled(false);

            newFile = new File(Environment.getExternalStorageDirectory() + File.separator + "Dumpy"
                    + File.separator + "Reading" + formattedDate + ".pdf");

            try {
                newFile.createNewFile();
            } catch (IOException e) {
                Toast.makeText(getApplicationContext(), "File not created!", Toast.LENGTH_SHORT).show();
                e.printStackTrace();
            }
            try {
                PdfWriter.getInstance(document, new FileOutputStream(newFile));
            } catch (DocumentException e) {
                e.printStackTrace();
            } catch (FileNotFoundException e) {
                Toast.makeText(getApplicationContext(), "File to be written not created!", Toast.LENGTH_SHORT)
                        .show();
                e.printStackTrace();
            }
            document.open();
            try {
                addMetaData(document);
                addTitlePage(document);
                addContent(document);
                document.close();
                Toast.makeText(getApplicationContext(), "PDF Exported to " + newFile.getAbsolutePath(),
                        Toast.LENGTH_LONG).show();
            } catch (Exception e) {
                e.printStackTrace();
            }

            Intent target = new Intent(Intent.ACTION_VIEW);
            target.setDataAndType(Uri.fromFile(newFile), "application/pdf");
            target.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);

            Intent intent = Intent.createChooser(target, "Open File");
            try {
                startActivity(intent);
            } catch (ActivityNotFoundException e) {
                Toast.makeText(getApplicationContext(), "No PDF reader application found. Please install one.",
                        Toast.LENGTH_SHORT).show();
                // Instruct the user to install a PDF reader here, or something
            }
        }
    });

    back_button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            onBackPressed();
        }
    });
}

From source file:com.dev.saurabh.TiffToPdf.java

License:Open Source License

/**
 * @param args//from   w w w .  j  a  v a  2 s  .  c om
 * @throws DocumentException
 * @throws IOException
 */
public static void main(String[] args) throws DocumentException, IOException {

    String imgeFilename = "/home/saurabh/Downloads/image.tif";

    Document document = new Document();
    PdfWriter writer = PdfWriter.getInstance(document,
            new FileOutputStream("/home/saurabh/Desktop/out" + Math.random() + ".pdf"));
    writer.setStrictImageSequence(true);
    document.open();

    document.add(new Paragraph("Multipages tiff file"));
    Image image;
    RandomAccessFileOrArray ra = new RandomAccessFileOrArray(imgeFilename);
    int pages = TiffImage.getNumberOfPages(ra);
    for (int i = 1; i <= pages; i++) {
        image = TiffImage.getTiffImage(ra, i);
        Rectangle pageSize = new Rectangle(image.getWidth(), image.getHeight());
        document.setPageSize(pageSize);
        document.add(image);
        document.newPage();
    }

    document.close();

}

From source file:com.devox.GUI.PDF.CrearReporteApto.java

@Override
public void crear(File file) {
    try {//from   w w  w  .j  av  a2s  .  c o m
        document = new Document(PageSize.A4.rotate());
        file.createNewFile();
        writer = PdfWriter.getInstance(document, new FileOutputStream(file));
        document.open();
        setLogo();
        CabeceraPieDePagina event = new CabeceraPieDePagina();
        writer.setPageEvent(event);
        document.setMargins(30, 30, 40, 360);
        document.newPage();
        Paragraph p = new Paragraph("RELACIN DE PRODUCTO APTO", FUENTE_TITULO_APTO);
        p.setAlignment(Element.ALIGN_CENTER);
        document.add(p);
        document.add(configurarInformacion());
        PdfPTable table = crearTabla();
        agregarProductos(table);
        document.add(table);
        document.close();

    } catch (IOException | DocumentException ex) {
        Log.print(ex);
    }

    Object[] options = { "Abrir PDF", "No" };
    int open = JOptionPane.showOptionDialog(null, "Desea abrir el reporte?", "Reporte guardado",
            JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE,
            new javax.swing.ImageIcon(getClass().getResource("/com/devox/GUI/images/print.png")), options,
            options[0]);
    if (open == JOptionPane.YES_OPTION) {
        try {
            Desktop.getDesktop().open(file);
        } catch (IOException ex) {
            Log.print("No se encontr la ruta");
            JOptionPane.showMessageDialog(null, "Error en el archivo");
        }
    }
}

From source file:com.devox.GUI.PDF.CrearReporteDestruccion.java

@Override
public void crear(File file) {
    try {/*from   w  ww  . j av  a  2 s  .  co  m*/
        document = new Document(PageSize.A4, 50f, 50f, 100f, 220f);
        file.createNewFile();
        writer = PdfWriter.getInstance(document, new FileOutputStream(file));
        document.open();
        setLogo();
        CabeceraPieDePagina event = new CabeceraPieDePagina();
        writer.setPageEvent(event);
        document.newPage();
        Paragraph p = new Paragraph("RELACIN DE PRODUCTOS PARA DESTRUCCIN", FUENTE_TITULO_APTO);
        p.setAlignment(Element.ALIGN_CENTER);
        document.add(p);
        document.add(configurarInformacion());
        PdfPTable table = crearTabla();
        agregarProductos(table);
        document.add(table);
        document.close();
    } catch (IOException | DocumentException ex) {
        Log.print(ex);
    }

    Object[] options = { "Abrir PDF", "No" };
    int open = JOptionPane.showOptionDialog(null, "Desea abrir el reporte?", "Reporte guardado",
            JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE,
            new javax.swing.ImageIcon(getClass().getResource("/com/devox/GUI/images/print.png")), options,
            options[0]);
    if (open == JOptionPane.YES_OPTION) {
        try {
            Desktop.getDesktop().open(file);
        } catch (IOException ex) {
            Log.print("No se encontr la ruta");
            JOptionPane.showMessageDialog(null, "Error en el archivo");
        }
    }
}