Example usage for com.lowagie.text.pdf PdfPTable setTotalWidth

List of usage examples for com.lowagie.text.pdf PdfPTable setTotalWidth

Introduction

In this page you can find the example usage for com.lowagie.text.pdf PdfPTable setTotalWidth.

Prototype

public void setTotalWidth(float columnWidth[]) throws DocumentException 

Source Link

Document

Sets the full width of the table from the absolute column width.

Usage

From source file:CPS.Core.TODOLists.PDFExporter.java

License:Open Source License

private Document prepareDocument(String filename, final String title, final String author, final String creator,
        final Rectangle pageSize) {

    System.out.println("DEBUG(PDFExporter): Creating document: " + filename);

    Document d = new Document();

    d.setPageSize(pageSize);/*from w  ww .  ja v  a2  s  .c om*/
    // TODO alter page orientation?  maybe useful for seed order worksheet

    d.addTitle(title);
    d.addAuthor(author);
    //        d.addSubject( );
    //        d.addKeywords( );
    d.addCreator(creator);

    // left, right, top, bottom - scale in points (~72 points/inch)
    d.setMargins(35, 35, 35, 44);

    try {
        PdfWriter writer = PdfWriter.getInstance(d, new FileOutputStream(filename));
        // add header and footer
        writer.setPageEvent(new PdfPageEventHelper() {
            public void onEndPage(PdfWriter writer, Document document) {
                try {
                    Rectangle page = document.getPageSize();

                    PdfPTable head = new PdfPTable(3);
                    head.getDefaultCell().setBorderWidth(0);
                    head.getDefaultCell().setHorizontalAlignment(PdfPCell.ALIGN_LEFT);
                    head.addCell(new Phrase(author, fontHeadFootItal));

                    head.getDefaultCell().setHorizontalAlignment(PdfPCell.ALIGN_CENTER);
                    head.addCell(new Phrase(title, fontHeadFootReg));

                    head.getDefaultCell().setHorizontalAlignment(PdfPCell.ALIGN_RIGHT);
                    head.addCell("");

                    head.setTotalWidth(page.getWidth() - document.leftMargin() - document.rightMargin());
                    head.writeSelectedRows(0, -1, document.leftMargin(),
                            page.getHeight() - document.topMargin() + head.getTotalHeight(),
                            writer.getDirectContent());

                    PdfPTable foot = new PdfPTable(3);

                    foot.getDefaultCell().setBorderWidth(0);
                    foot.getDefaultCell().setHorizontalAlignment(PdfPCell.ALIGN_LEFT);
                    foot.addCell(new Phrase(creator, fontHeadFootItal));

                    foot.getDefaultCell().setHorizontalAlignment(PdfPCell.ALIGN_CENTER);
                    foot.addCell("");

                    foot.getDefaultCell().setHorizontalAlignment(PdfPCell.ALIGN_RIGHT);
                    foot.addCell(new Phrase("Page " + document.getPageNumber(), fontHeadFootReg));

                    foot.setTotalWidth(page.getWidth() - document.leftMargin() - document.rightMargin());
                    foot.writeSelectedRows(0, -1, document.leftMargin(), document.bottomMargin(),
                            writer.getDirectContent());
                } catch (Exception e) {
                    throw new ExceptionConverter(e);
                }
            }
        });
    } catch (Exception e) {
        e.printStackTrace();
    }

    return d;
}

From source file:de.dhbw.humbuch.util.PDFHandler.java

/**
 * Set the logo of Humboldt on the left corner and the current date on the
 * right corner/*  w  ww .  ja  v a  2  s.  c  o  m*/
 * 
 * @param document
 *            reference of the pdfDocument object
 */
protected void addHeading(Document document) {
    Paragraph paragraph = new Paragraph();
    PdfPTable table = createMyStandardTable(2);

    table.setTotalWidth(TABLEWIDTH);
    PdfPCell cell;

    Image img = new ResourceLoader("pdf/humboldt_logo.png").getImage();
    img.setAlignment(Element.ALIGN_BOTTOM);
    img.scaleToFit(205f, 65f);
    cell = new PdfPCell(img);

    cell.setBorder(0);
    table.addCell(cell);

    String date = new SimpleDateFormat("dd.MM.yyyy", Locale.GERMAN).format(Calendar.getInstance().getTime());

    cell = new PdfPCell(new Phrase(date));
    cell.setBorder(0);
    cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
    cell.setVerticalAlignment(Element.ALIGN_BOTTOM);
    table.addCell(cell);

    cell = new PdfPCell(new Phrase(""));
    cell.setBorder(Rectangle.BOTTOM);
    table.addCell(cell);
    cell = new PdfPCell(new Phrase(""));
    cell.setBorder(Rectangle.BOTTOM);
    table.addCell(cell);

    paragraph.add(table);
    addEmptyLine(paragraph, 1);

    try {
        document.add(paragraph);
    } catch (DocumentException e) {
        e.printStackTrace();
    }
}

From source file:de.dhbw.humbuch.util.PDFHandler.java

/**
 * Create a standard table with constant table width.
 * /*from   www .jav a2 s  .co m*/
 * @param columnNumber
 *            set how many columns the table will have
 * @return table
 */
protected static PdfPTable createMyStandardTable(int columnNumber) {
    PdfPTable table = new PdfPTable(columnNumber);
    table.setLockedWidth(true);
    table.setTotalWidth(TABLEWIDTH);

    return table;
}

From source file:de.dhbw.humbuch.util.PDFHandler.java

/**
 * Create a standard table with constant table width.
 * /*from  w  w w .  j ava 2s  .c o m*/
 * @param columnNumber
 *            set how many columns the table will have
 * @param columnWidths
 *            set the ratio between the columns. If null, all columns will
 *            be equal.
 * @return table
 */
protected static PdfPTable createMyStandardTable(int columnNumber, float[] columnWidths) {
    PdfPTable table = new PdfPTable(columnNumber);
    table.setLockedWidth(true);
    table.setTotalWidth(TABLEWIDTH);

    if (!(columnWidths == null) && (columnWidths.length != 0)) {
        try {
            table.setWidths(columnWidths);
        } catch (DocumentException e) {
            System.err.println("Could not set columnWidths of standardTable " + e.getStackTrace());
        }
    }

    return table;
}

From source file:de.tr1.cooperator.manager.web.CreateSubscriberListAction.java

License:Open Source License

/**
 * This method is called by the struts-framework if the submit-button is pressed.
 * It creates a PDF-File and puts in into the output-stream of the response.
 *///from  www  .jav a  2 s .  c  o  m
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
        HttpServletResponse response) throws Exception {

    CreateSubscriberListForm myForm = (CreateSubscriberListForm) form;
    boolean bSortByName;

    if (myForm.getSortBy().equals(myForm.SORTBYPN))
        bSortByName = false;
    else
        bSortByName = true;

    //create Collection for the results...
    Event eEvent = EventManager.getInstance().getEventByID(myForm.getEventID());
    Collection cSubscriberList = UserManager.getInstance().getUsersByCollection(eEvent.getSubscriberList());
    Collection cExamResults = EventResultManager.getInstance().getResults(eEvent.getID());

    Iterator cSubscriberListIT = cSubscriberList.iterator();
    Collection cSubscriberResultList = new ArrayList();

    while (cSubscriberListIT.hasNext()) {
        User CurUser = (User) cSubscriberListIT.next();
        String UserPNR = CurUser.getPersonalNumber();

        Iterator cExamResultsIT = cExamResults.iterator();
        ExamResult curExamResult = null;
        String ResultUserPNR = null;
        while (cExamResultsIT.hasNext()) {
            curExamResult = (ExamResult) cExamResultsIT.next();

            ResultUserPNR = curExamResult.getUserPersonalNumber();
            if (UserPNR.equals(ResultUserPNR))
                break;
        }

        if (UserPNR.equals(ResultUserPNR)) {
            if (bSortByName) {
                UserResultSortByName URS = new UserResultSortByName(CurUser, "" + curExamResult.getResult());
                cSubscriberResultList.add(URS);
            } else {
                UserResultSortByPersonalNumber URS = new UserResultSortByPersonalNumber(CurUser,
                        "" + curExamResult.getResult());
                cSubscriberResultList.add(URS);
            }
        } else {
            if (bSortByName) {
                UserResultSortByName URS = new UserResultSortByName(CurUser, "-");
                cSubscriberResultList.add(URS);
            } else {
                UserResultSortByPersonalNumber URS = new UserResultSortByPersonalNumber(CurUser, "-");
                cSubscriberResultList.add(URS);
            }
        }

    }

    //sort List
    Collections.sort((List) cSubscriberResultList);

    BaseFont bf;
    //36pt = 0.5inch
    Document document = new Document(PageSize.A4, 36, 36, 72, 72);

    try {
        bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
    } catch (Exception e) {
        Log.addLog("CreateSubscriberListAction: Error creating BaseFont: " + e);
        //2do: add ErrorMessage and return to inputFormular!
        return mapping.findForward("GeneralFailure");
    }

    //calculate the number of cols and their width
    int cols = 0;
    ArrayList alWidth = new ArrayList();
    float boldItalicFactor = 1.2f;
    if (myForm.getShowNumber())
        alWidth.add(new Float(boldItalicFactor * bf.getWidthPoint(TABLEHEADER_NUMBER, TABLEHEADER_FONTSIZE)));

    if (myForm.getShowPersonalNumber())
        alWidth.add(new Float(
                boldItalicFactor * bf.getWidthPoint(TABLEHEADER_PERSONALNUMBER, TABLEHEADER_FONTSIZE)));

    if (myForm.getShowName())
        alWidth.add(new Float(boldItalicFactor * bf.getWidthPoint(TABLEHEADER_NAME, TABLEHEADER_FONTSIZE)));

    if (myForm.getShowEmail())
        alWidth.add(new Float(boldItalicFactor * bf.getWidthPoint(TABLEHEADER_EMAIL, TABLEHEADER_FONTSIZE)));

    if (myForm.getShowResult())
        alWidth.add(new Float(boldItalicFactor * bf.getWidthPoint(TABLEHEADER_RESULT, TABLEHEADER_FONTSIZE)));

    if (myForm.getAddInfoField())
        alWidth.add(new Float(boldItalicFactor * bf.getWidthPoint(TABLEHEADER_INFO, TABLEHEADER_FONTSIZE)));

    if (myForm.getAddSignField())
        alWidth.add(new Float(boldItalicFactor * bf.getWidthPoint(TABLEHEADER_SIGN, TABLEHEADER_FONTSIZE)));

    cols = alWidth.size();

    float totalWidth = 0;
    //calculate the whole length
    Iterator alIterator = alWidth.iterator();
    for (; alIterator.hasNext(); totalWidth += ((Float) alIterator.next()).floatValue())
        ;

    //calculate relativ width for the table
    float[] width = new float[cols];
    alIterator = alWidth.iterator();
    int i = 0;
    while (alIterator.hasNext()) {
        float pixLength = ((Float) alIterator.next()).floatValue();
        //alWidthRelativ.add( new Float( pixLength/totalWidth ) );
        width[i] = pixLength / totalWidth;
        i++;
    }

    //needed for the shrink (enlarge?)
    float shrinkFactor;

    try {
        //1st: set correct outputstream
        PdfWriter writer = PdfWriter.getInstance(document, response.getOutputStream());

        //1.5st: set content-stuff
        response.setContentType("application/pdf");

        //2nd: set EventManager for PageEvents to Helper
        writer.setPageEvent(
                new CreateSubscriberListActionHelper(myForm.getHeaderLeft(), myForm.getHeaderRight()));

        //3rd: open document for editing the content
        document.open();

        //4th: add content
        Phrase pInfoText = new Phrase(myForm.getInfoText(), new Font(bf, 12, Font.BOLD));
        document.add(pInfoText);

        //PdfPTable( cols )
        PdfPTable table = new PdfPTable(width);

        float documentWidth = document.right() - document.left();
        if (documentWidth < totalWidth) {
            table.setTotalWidth(documentWidth);
            shrinkFactor = documentWidth / totalWidth;
        } else {
            table.setTotalWidth(totalWidth);
            shrinkFactor = 1;
        }
        table.setLockedWidth(true);

        Font headerFont = new Font(bf, TABLEHEADER_FONTSIZE * shrinkFactor, Font.BOLDITALIC);
        Font cellFont = new Font(bf, TABLECELL_FONTSIZE * shrinkFactor, Font.NORMAL);

        if (myForm.getShowNumber())
            table.addCell(new Phrase(TABLEHEADER_NUMBER, headerFont));
        if (myForm.getShowPersonalNumber())
            table.addCell(new Phrase(TABLEHEADER_PERSONALNUMBER, headerFont));
        if (myForm.getShowName())
            table.addCell(new Phrase(TABLEHEADER_NAME, headerFont));
        if (myForm.getShowEmail())
            table.addCell(new Phrase(TABLEHEADER_EMAIL, headerFont));
        if (myForm.getShowResult())
            table.addCell(new Phrase(TABLEHEADER_RESULT, headerFont));
        if (myForm.getAddInfoField())
            table.addCell(new Phrase(TABLEHEADER_INFO, headerFont));
        if (myForm.getAddSignField())
            table.addCell(new Phrase(TABLEHEADER_SIGN, headerFont));

        //fill table
        Iterator iSRL = cSubscriberResultList.iterator();
        int counter = 1;
        while (iSRL.hasNext()) {
            UserResult curResult = (UserResult) iSRL.next();

            table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_RIGHT);
            if (myForm.getShowNumber())
                table.addCell(new Phrase("" + counter++, cellFont));

            table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);
            if (myForm.getShowPersonalNumber())
                table.addCell(new Phrase(curResult.getPersonalNumber(), cellFont));

            table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_LEFT);
            if (myForm.getShowName())
                table.addCell(new Phrase(curResult.getSurname() + ", " + curResult.getFirstName(), cellFont));
            if (myForm.getShowEmail())
                table.addCell(new Phrase(curResult.getEmailAddress(), cellFont));
            if (myForm.getShowResult())
                table.addCell(new Phrase(curResult.getResult(), cellFont));
            if (myForm.getAddInfoField())
                table.addCell(new Phrase("", cellFont));
            if (myForm.getAddSignField())
                table.addCell(new Phrase("", cellFont));
        }

        //set how many rows are header...
        table.setHeaderRows(1);

        document.add(table);

        //5th: close document, write the output to the stream...
        document.close();
    } catch (Exception de) {
        Log.addLog("CreateSubscriberListAction: Error creating PDF: " + de);
    }

    //we dont need to return a forward, because we write directly to the outputstream!
    return null;
}

From source file:fr.opensagres.xdocreport.itext.extension.ExtendedPdfPTable.java

License:Open Source License

private PdfPTable createTable(PdfPCell cell) {
    PdfPTable table = new PdfPTable(1);
    table.setSpacingBefore(this.spacingBefore());
    table.setSpacingAfter(this.spacingAfter());
    table.setHorizontalAlignment(this.getHorizontalAlignment());
    table.setTotalWidth(cell.getPaddingLeft() + this.getTotalWidth() + cell.getPaddingRight());
    table.setLockedWidth(true);/*from   ww  w .ja va 2  s .c o  m*/
    table.setSplitLate(false);
    table.addCell(cell);
    return table;
}

From source file:gov.medicaid.binders.LicenseInformationFormBinder.java

License:Apache License

@Override
public void renderPDF(EnrollmentType enrollment, Document document, Map<String, Object> model)
        throws DocumentException {
    String ns = NAMESPACE;/*w  w  w  .  j  a  va  2 s .c om*/
    if ("Y".equals(PDFHelper.value(model, ns, "bound"))) {
        // License Info Section
        PdfPTable licenseInfo = new PdfPTable(new float[] { 3, 10, 10, 10, 10, 10, 10 });
        licenseInfo.getDefaultCell().setBorder(0);
        licenseInfo.getDefaultCell().setHorizontalAlignment(PdfPCell.ALIGN_CENTER);

        licenseInfo.setTotalWidth(72 * 7);
        licenseInfo.setLockedWidth(true);

        PDFHelper.addCenterCell(licenseInfo, "#");
        PDFHelper.addCenterCell(licenseInfo, "Specialty");
        PDFHelper.addCenterCell(licenseInfo, "Type of License/Certification");
        PDFHelper.addCenterCell(licenseInfo, "License/Certification #");
        PDFHelper.addCenterCell(licenseInfo, "Original Issue Date (MM/DD/YYYY)");
        PDFHelper.addCenterCell(licenseInfo, "Renewal End Date (MM/DD/YYYY)");
        PDFHelper.addCenterCell(licenseInfo, "Issuing State");
        licenseInfo.completeRow();

        int size = Integer.parseInt(PDFHelper.value(model, ns, "attachmentSize"));
        for (int i = 0; i < size; i++) {
            PDFHelper.addCenterCell(licenseInfo, String.valueOf(i + 1));
            PDFHelper.addCenterCell(licenseInfo, "");
            PDFHelper.addCenterCell(licenseInfo, PDFHelper.value(model, ns, "licenseType", i));
            PDFHelper.addCenterCell(licenseInfo, PDFHelper.value(model, ns, "licenseNumber", i));
            PDFHelper.addCenterCell(licenseInfo, PDFHelper.value(model, ns, "originalIssueDate", i));
            PDFHelper.addCenterCell(licenseInfo, PDFHelper.value(model, ns, "renewalDate", i));
            PDFHelper.addCenterCell(licenseInfo, PDFHelper.value(model, ns, "issuingState", i));
        }

        document.add(licenseInfo);
    }
}

From source file:gov.medicaid.binders.MemberInfoFormBinder.java

License:Apache License

@Override
public void renderPDF(EnrollmentType enrollment, Document document, Map<String, Object> model)
        throws DocumentException {
    String ns = NAMESPACE;/*w  w  w  .j  a v  a  2s  .co m*/
    if ("Y".equals(PDFHelper.value(model, ns, "bound"))) {
        // License Info Section
        PdfPTable membersInfo = new PdfPTable(new float[] { 5, 65 });
        membersInfo.getDefaultCell().setBorder(0);
        membersInfo.getDefaultCell().setHorizontalAlignment(PdfPCell.ALIGN_CENTER);

        membersInfo.setTotalWidth(72 * 7);
        membersInfo.setLockedWidth(true);

        int size = Integer.parseInt(PDFHelper.value(model, ns, "memberSize"));
        for (int i = 0; i < size; i++) {
            PDFHelper.addCenterCell(membersInfo, String.valueOf(i + 1));
            PdfPTable memberDetail = new PdfPTable(2);
            PDFHelper.addLabelValueCell(memberDetail, "NPI", PDFHelper.value(model, ns, "npi", i));
            PDFHelper.addLabelValueCell(memberDetail, "Provider Type",
                    PDFHelper.value(model, ns, "providerType", i));
            PDFHelper.addLabelValueCell(memberDetail, "Name", PDFHelper.value(model, ns, "name", i));
            PDFHelper.addLabelValueCell(memberDetail, "Date Of Birth", PDFHelper.value(model, ns, "dob", i));
            PDFHelper.addLabelValueCell(memberDetail, "SSN", PDFHelper.value(model, ns, "ssn", i));
            PDFHelper.addLabelValueCell(memberDetail, "Start Date", PDFHelper.value(model, ns, "startDate", i));
            membersInfo.addCell(memberDetail);
            membersInfo.completeRow();
        }
        document.add(membersInfo);
    }

}

From source file:gov.medicaid.services.impl.ExportServiceBean.java

License:Apache License

/**
 * Sets the given table to take an entire page with.
 * /*ww  w  .ja va 2  s  .  c  o m*/
 * @param table
 *            the table to make full width
 */
private static void setTableAsFullPage(PdfPTable table) {
    table.getDefaultCell().setBorder(0);
    table.setTotalWidth(72 * 7);
    table.setLockedWidth(true);
}

From source file:gov.medicaid.services.impl.ExportServiceBean.java

License:Apache License

/**
 * Exports the search results into PDF./*from w  w w  . ja  v  a2  s  .c  om*/
 * 
 * @param requests
 *            the list to be exported
 * @param status
 *            the status filter
 * @param outputStream
 *            the stream to export to
 * @throws PortalServiceException
 *             for any errors encountered
 */
public void export(List<UserRequest> requests, String status, OutputStream outputStream)
        throws PortalServiceException {
    PdfPTable resultTable;
    try {
        Document document = new Document();
        PdfWriter.getInstance(document, outputStream);
        document.open();

        resultTable = new PdfPTable(new float[] { 3, 8, 8, 8, 10, 25, 8, 8, 8 });
        resultTable.getDefaultCell().setBorder(0);
        resultTable.getDefaultCell().setHorizontalAlignment(PdfPCell.ALIGN_CENTER);

        resultTable.setTotalWidth(72 * 7);
        resultTable.setLockedWidth(true);

        resultTable.addCell(createHeaderCell("Enrollments", 9));
        resultTable.completeRow();

        addCenterCell(resultTable, "#");
        addCenterCell(resultTable, "NPI/UMPI");
        addCenterCell(resultTable, "Date Created");
        addCenterCell(resultTable, "Request Type");
        addCenterCell(resultTable, "Provider Type");
        addCenterCell(resultTable, "Provider Name");
        addCenterCell(resultTable, "Risk Level");
        addCenterCell(resultTable, "Status");
        addCenterCell(resultTable, "Status Date");
        resultTable.completeRow();

        int i = 0;
        for (UserRequest userRequest : requests) {
            addCenterCell(resultTable, String.valueOf(++i));
            addCenterCell(resultTable, userRequest.getNpi());
            addCenterCell(resultTable,
                    BinderUtils.formatCalendar(BinderUtils.toCalendar(userRequest.getCreateDate())));
            addCenterCell(resultTable, userRequest.getRequestType());
            addCenterCell(resultTable, userRequest.getProviderType());
            addCenterCell(resultTable, userRequest.getProviderName());
            addCenterCell(resultTable, userRequest.getRiskLevel());
            addCenterCell(resultTable, userRequest.getStatus());
            addCenterCell(resultTable,
                    BinderUtils.formatCalendar(BinderUtils.toCalendar(userRequest.getStatusDate())));
        }

        resultTable.setSpacingAfter(20);
        document.add(resultTable);

        document.close();
    } catch (DocumentException e) {
        throw new PortalServiceException("Export failed, see log for additional details.", e);
    }
}