Java tutorial
package com.horizzon.inventerium; import java.io.FileOutputStream; import java.sql.Date; import java.util.ArrayList; import java.util.HashMap; import android.os.Environment; import com.itextpdf.text.Anchor; import com.itextpdf.text.BadElementException; import com.itextpdf.text.Chapter; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Element; import com.itextpdf.text.List; import com.itextpdf.text.ListItem; import com.itextpdf.text.Paragraph; import com.itextpdf.text.Phrase; import com.itextpdf.text.Section; import com.itextpdf.text.pdf.PdfPCell; import com.itextpdf.text.pdf.PdfPTable; import com.itextpdf.text.pdf.PdfWriter; public class ExportPdf { private static String FILE = Environment.getExternalStorageDirectory().getPath() + "/FirstPdf.pdf"; static final String KEY_ITEM = "tran"; //not available // static final String T_ID = "t_id"; static final String SKU = "sku"; static final String USER_ID = "user_id"; static final String T_DATE = "tdate"; static final String T_QTY = "qty"; static final String T_UNIT_PRICE = "unitprice"; static final String T_PAYMENT_STATUS = "payment_status"; static final String URL = "http://www.thecampusguy.com/Inventa/transaction.xml"; /*private static Font catFont = new Font(Font.FontFamily.TIMES_ROMAN, 18, Font.BOLD); private static Font redFont = new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL, BaseColor.RED); private static Font subFont = new Font(Font.FontFamily.TIMES_ROMAN, 16, Font.BOLD); private static Font smallBold = new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD); */ static ArrayList<HashMap<String, String>> transaction_list_export; static ArrayList<String> shopkeeper_name_export, shopkeeper_id_export; //constructor public ExportPdf(String filepath, ArrayList<HashMap<String, String>> transaction_list, ArrayList<String> shopkeeper_name, ArrayList<String> shopkeeper_id) { // TODO Auto-generated constructor stub //FILE=filepath; transaction_list_export = transaction_list; shopkeeper_name_export = shopkeeper_name; shopkeeper_id_export = shopkeeper_id; } public static void main(String[] args) { try { Document document = new Document(); PdfWriter.getInstance(document, new FileOutputStream(FILE)); document.open(); addMetaData(document); addTitlePage(document); addContent(document); document.close(); } catch (Exception e) { e.printStackTrace(); } } // iText allows to add metadata to the PDF which can be viewed in your Adobe // Reader // under File -> Properties private static void addMetaData(Document document) { document.addTitle("Transaction Details"); document.addSubject("Detailed transaction"); // document.addKeywords("Java, PDF, iText"); // document.addAuthor("Lars Vogel"); // document.addCreator("Lars Vogel"); } private static void addTitlePage(Document document) throws DocumentException { Paragraph preface = new Paragraph(); // We add one empty line addEmptyLine(preface, 1); // Lets write a big header preface.add(new Paragraph("Transaction Details")); addEmptyLine(preface, 1); // Will create: Report generated by: _name, _date preface.add(new Paragraph("Report generated by: " + System.getProperty("user.name") + ", " + new Date(0))); addEmptyLine(preface, 3); // preface.add(new Paragraph("This document describes something which is very important ", // smallBold)); addEmptyLine(preface, 8); // preface.add(new Paragraph("This document is a preliminary version and not subject to your license agreement or any other agreement with vogella.com ;-).", // redFont)); document.add(preface); // Start a new page document.newPage(); } private static void addContent(Document document) throws DocumentException { Anchor anchor = new Anchor("First Chapter"); anchor.setName("First Chapter"); // Second parameter is the number of the chapter Chapter catPart = new Chapter(new Paragraph(anchor), 1); Paragraph subPara = new Paragraph("Subcategory 1"); Section subCatPart = catPart.addSection(subPara); subCatPart.add(new Paragraph("Hello")); subPara = new Paragraph("Subcategory 2"); subCatPart = catPart.addSection(subPara); subCatPart.add(new Paragraph("Paragraph 1")); subCatPart.add(new Paragraph("Paragraph 2")); subCatPart.add(new Paragraph("Paragraph 3")); // add a list createList(subCatPart); Paragraph paragraph = new Paragraph(); addEmptyLine(paragraph, 5); subCatPart.add(paragraph); // add a table createTable(subCatPart); // now add all this to the document document.add(catPart); // Next section // anchor = new Anchor("Second Chapter", catFont); // anchor.setName("Second Chapter"); // Second parameter is the number of the chapter // catPart = new Chapter(new Paragraph(anchor), 1); // subPara = new Paragraph("Subcategory", subFont); // subCatPart = catPart.addSection(subPara); // subCatPart.add(new Paragraph("This is a very important message")); // now add all this to the document // document.add(catPart); } private static void createTable(Section subCatPart) throws BadElementException { PdfPTable table = new PdfPTable(3); // t.setBorderColor(BaseColor.GRAY); // t.setPadding(4); // t.setSpacing(4); // t.setBorderWidth(1); PdfPCell c1 = new PdfPCell(new Phrase("Buy Date")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); c1 = new PdfPCell(new Phrase("Shopkeeper Name")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); c1 = new PdfPCell(new Phrase("Quantity")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); c1 = new PdfPCell(new Phrase("Amount")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); c1 = new PdfPCell(new Phrase("Profit")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); c1 = new PdfPCell(new Phrase("Payment Status")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); table.setHeaderRows(1); for (int i = 0; i < transaction_list_export.size(); i++) { HashMap<String, String> transactionlist = new HashMap<String, String>(); transactionlist = transaction_list_export.get(i); table.addCell("" + transactionlist.get(T_DATE)); int pos = find_Shopkeeper_id(transactionlist.get(USER_ID), shopkeeper_id_export); table.addCell("" + shopkeeper_name_export.get(pos)); table.addCell(transactionlist.get(T_QTY)); int am = Integer.parseInt(transactionlist.get(T_UNIT_PRICE)) * Integer.parseInt(transactionlist.get(T_QTY)); table.addCell("" + am); table.addCell("" + Integer.parseInt(transactionlist.get(T_UNIT_PRICE)) / 2); table.addCell(transactionlist.get(T_PAYMENT_STATUS)); } subCatPart.add(table); } private static void createList(Section subCatPart) { List list = new List(true, false, 10); list.add(new ListItem("First point")); list.add(new ListItem("Second point")); list.add(new ListItem("Third point")); subCatPart.add(list); } private static void addEmptyLine(Paragraph paragraph, int number) { for (int i = 0; i < number; i++) { paragraph.add(new Paragraph(" ")); } } static int find_Shopkeeper_id(String id, ArrayList<String> shop) { int i; for (i = 0; i < shop.size(); i++) if ((shop.get(i)).compareTo(id) == 0) break; if (i == shop.size()) return i - 1; return i; } }