← Back to team overview

dhis2-devs team mailing list archive

Re: [Branch ~dhis2-devs-core/dhis2/trunk] Rev 2428: Removed the proprietary Arial true type font and replaced with the nice Ubuntu font for PDF writi...

 

Thats a relief !

On 26 December 2010 21:42,  <noreply@xxxxxxxxxxxxx> wrote:
> ------------------------------------------------------------
> revno: 2428
> committer: Lars Helge Overland <larshelge@xxxxxxxxx>
> branch nick: dhis2
> timestamp: Sun 2010-12-26 22:40:52 +0100
> message:
>  Removed the proprietary Arial true type font and replaced with the nice Ubuntu font for PDF writing. Cleaned up the PDF writing code.
> removed:
>  dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/pdf/converter/ExtendedDataElementConverter.java
>  dhis-2/dhis-support/dhis-support-system/src/main/resources/arial.ttf
> added:
>  dhis-2/dhis-support/dhis-support-system/src/main/resources/ubuntu-bold.ttf
>  dhis-2/dhis-support/dhis-support-system/src/main/resources/ubuntu-font-licence-1.0.txt
>  dhis-2/dhis-support/dhis-support-system/src/main/resources/ubuntu-italic.ttf
>  dhis-2/dhis-support/dhis-support-system/src/main/resources/ubuntu.ttf
> modified:
>  dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/databrowser/DefaultDataBrowserPdfService.java
>  dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/pdf/converter/DataElementConverter.java
>  dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/pdf/converter/IndicatorConverter.java
>  dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/pdf/converter/OrganisationUnitConverter.java
>  dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/pdf/converter/OrganisationUnitHierarchyConverter.java
>  dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/pdf/converter/ValidationRuleConverter.java
>  dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/pdf/exporter/ITextPDFExportService.java
>  dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/synchronous/ExportPivotViewService.java
>  dhis-2/dhis-services/dhis-service-importexport/src/test/java/org/hisp/dhis/importexport/util/XsltUtils.java
>  dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/pdf/impl/ItextPdfService.java
>  dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/tallysheet/DefaultTallySheetPdfService.java
>  dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/PDFUtils.java
>  dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/result/GridPdfResult.java
>
>
> --
> lp:dhis2
> https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk
>
> Your team DHIS 2 developers is subscribed to branch lp:dhis2.
> To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
>
> === modified file 'dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/databrowser/DefaultDataBrowserPdfService.java'
> --- dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/databrowser/DefaultDataBrowserPdfService.java  2010-10-21 06:21:39 +0000
> +++ dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/databrowser/DefaultDataBrowserPdfService.java  2010-12-26 21:40:52 +0000
> @@ -29,13 +29,8 @@
>
>  import static org.hisp.dhis.system.util.PDFUtils.addTableToDocument;
>  import static org.hisp.dhis.system.util.PDFUtils.closeDocument;
> -import static org.hisp.dhis.system.util.PDFUtils.getHeader5Cell;
> -import static org.hisp.dhis.system.util.PDFUtils.getHeader6Cell;
> -import static org.hisp.dhis.system.util.PDFUtils.getHeader7Cell;
> -import static org.hisp.dhis.system.util.PDFUtils.getText5Cell;
> -import static org.hisp.dhis.system.util.PDFUtils.getText6Cell;
> -import static org.hisp.dhis.system.util.PDFUtils.getText7Cell;
> -import static org.hisp.dhis.system.util.PDFUtils.getTrueTypeFontByDimension;
> +import static org.hisp.dhis.system.util.PDFUtils.getHeaderCell;
> +import static org.hisp.dhis.system.util.PDFUtils.getTextCell;
>  import static org.hisp.dhis.system.util.PDFUtils.openDocument;
>
>  import java.awt.Color;
> @@ -45,6 +40,7 @@
>
>  import org.hisp.dhis.i18n.I18n;
>  import org.hisp.dhis.system.util.DateUtils;
> +import org.hisp.dhis.system.util.PDFUtils;
>
>  import com.lowagie.text.Document;
>  import com.lowagie.text.DocumentException;
> @@ -54,7 +50,6 @@
>  import com.lowagie.text.Paragraph;
>  import com.lowagie.text.Phrase;
>  import com.lowagie.text.Rectangle;
> -import com.lowagie.text.pdf.BaseFont;
>  import com.lowagie.text.pdf.PdfPCell;
>  import com.lowagie.text.pdf.PdfPTable;
>
> @@ -65,24 +60,6 @@
>  public class DefaultDataBrowserPdfService
>     implements DataBrowserPdfService
>  {
> -    private static BaseFont bf;
> -
> -    private Font titleFont;
> -
> -    private Font periodFont;
> -
> -    private Font header5Font;
> -
> -    private Font header6Font;
> -
> -    private Font header7Font;
> -
> -    private Font text5Font;
> -
> -    private Font text6Font;
> -
> -    private Font text7Font;
> -
>     private static final Color headColor = new Color( 0xC0D9D9 ); // Blueish
>
>     private static final Color parColor = new Color( 0xDDDDDD ); // Greyish
> @@ -103,7 +80,6 @@
>
>         try
>         {
> -            this.initFont();
>             Document document;
>
>             // DataBrowser table
> @@ -154,8 +130,7 @@
>         String dataBrowserToDate, String dataBrowserPeriodType, I18n i18n )
>         throws DocumentException
>     {
> -        Paragraph titleParagraph = new Paragraph( i18n.getString( "export_results_for" ) + " " + dataBrowserTitleName,
> -            titleFont );
> +        Paragraph titleParagraph = new Paragraph( i18n.getString( "export_results_for" ) + " " + dataBrowserTitleName, PDFUtils.getBoldFont( 12 ) );
>
>         String fromDate = dataBrowserFromDate;
>         if ( dataBrowserFromDate.length() == 0 )
> @@ -171,7 +146,7 @@
>
>         Paragraph periodParagraph = new Paragraph( i18n.getString( "from_date" ) + ": " + fromDate + " "
>             + i18n.getString( "to_date" ) + ": " + toDate + ", " + i18n.getString( "period_type" ) + ": "
> -            + i18n.getString( dataBrowserPeriodType ), periodFont );
> +            + i18n.getString( dataBrowserPeriodType ), PDFUtils.getFont( 8 ) );
>
>         if ( i18n != null )
>         {
> @@ -261,22 +236,7 @@
>
>     private PdfPCell createHeaderCell( String columnName, int fontSize, Color color )
>     {
> -        PdfPCell cell;
> -
> -        // Set font size for header cell
> -        if ( fontSize == 4 )
> -        {
> -            cell = new PdfPCell( getHeader7Cell( columnName, 1, header7Font ) );
> -        }
> -        else if ( fontSize == 6 )
> -        {
> -            cell = new PdfPCell( getHeader6Cell( columnName, 1, header6Font ) );
> -        }
> -        else
> -        // Default is 8
> -        {
> -            cell = new PdfPCell( getHeader5Cell( columnName, 1, header5Font ) );
> -        }
> +        PdfPCell cell = getHeaderCell( columnName, 1 );
>
>         cell.setMinimumHeight( fontSize );
>         cell.setBorder( Rectangle.BOX );
> @@ -287,22 +247,7 @@
>
>     private PdfPCell createTextCell( String columnName, int fontSize, Color color )
>     {
> -        PdfPCell cell;
> -
> -        // Set font size for header cell
> -        if ( fontSize == 4 )
> -        {
> -            cell = new PdfPCell( getText7Cell( columnName, text7Font ) );
> -        }
> -        else if ( fontSize == 6 )
> -        {
> -            cell = new PdfPCell( getText6Cell( columnName, text6Font ) );
> -        }
> -        else
> -        // Default is 8
> -        {
> -            cell = new PdfPCell( getText5Cell( columnName, text5Font ) );
> -        }
> +        PdfPCell cell = getTextCell( columnName );
>
>         cell.setMinimumHeight( fontSize );
>         cell.setBorder( Rectangle.BOX );
> @@ -324,19 +269,4 @@
>         }
>         table.setWidths( widths );
>     }
> -
> -    private void initFont()
> -    {
> -        bf = getTrueTypeFontByDimension( BaseFont.IDENTITY_H );
> -
> -        titleFont = new Font( bf, 16, Font.HELVETICA );
> -        periodFont = new Font( bf, 8, Font.HELVETICA );
> -        header5Font = new Font( bf, 8, Font.BOLD );
> -        header6Font = new Font( bf, 6, Font.BOLD );
> -        header7Font = new Font( bf, 4, Font.BOLD );
> -        text5Font = new Font( bf, 8, Font.NORMAL );
> -        text6Font = new Font( bf, 6, Font.NORMAL );
> -        text7Font = new Font( bf, 4, Font.NORMAL );
> -    }
> -
>  }
>
> === modified file 'dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/pdf/converter/DataElementConverter.java'
> --- dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/pdf/converter/DataElementConverter.java     2010-12-09 05:53:20 +0000
> +++ dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/pdf/converter/DataElementConverter.java     2010-12-26 21:40:52 +0000
> @@ -75,14 +75,9 @@
>         List<DataElement> elements = new ArrayList<DataElement>( dataElementService.getDataElements( params.getDataElements() ) );
>         Collections.sort( elements, new DataElementNameComparator() );
>
> -        BaseFont bf = getTrueTypeFontByDimension( BaseFont.IDENTITY_H );
> -        Font TEXT = new Font( bf, 9, Font.NORMAL );
> -        Font ITALIC = new Font( bf, 9, Font.ITALIC );
> -        Font HEADER3 = new Font( bf, 12, Font.BOLD );
> -
>         for ( DataElement element : elements )
>         {
> -            addTableToDocument( document, printDataElement( element, i18n, HEADER3, ITALIC, TEXT, true, 0.40f, 0.60f ) );
> +            addTableToDocument( document, printDataElement( element, i18n, true, 0.40f, 0.60f ) );
>         }
>     }
>  }
>
> === removed file 'dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/pdf/converter/ExtendedDataElementConverter.java'
> --- dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/pdf/converter/ExtendedDataElementConverter.java     2010-12-09 05:53:20 +0000
> +++ dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/pdf/converter/ExtendedDataElementConverter.java     1970-01-01 00:00:00 +0000
> @@ -1,242 +0,0 @@
> -package org.hisp.dhis.importexport.pdf.converter;
> -
> -/*
> - * Copyright (c) 2004-2010, University of Oslo
> - * All rights reserved.
> - *
> - * Redistribution and use in source and binary forms, with or without
> - * modification, are permitted provided that the following conditions are met:
> - * * Redistributions of source code must retain the above copyright notice, this
> - *   list of conditions and the following disclaimer.
> - * * Redistributions in binary form must reproduce the above copyright notice,
> - *   this list of conditions and the following disclaimer in the documentation
> - *   and/or other materials provided with the distribution.
> - * * Neither the name of the HISP project nor the names of its contributors may
> - *   be used to endorse or promote products derived from this software without
> - *   specific prior written permission.
> - *
> - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
> - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
> - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
> - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
> - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
> - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
> - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
> - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> - */
> -
> -import java.util.Collection;
> -
> -import org.hisp.dhis.dataelement.DataElement;
> -import org.hisp.dhis.dataelement.DataElementService;
> -import org.hisp.dhis.i18n.I18n;
> -import org.hisp.dhis.i18n.I18nFormat;
> -import org.hisp.dhis.importexport.ExportParams;
> -import org.hisp.dhis.importexport.PDFConverter;
> -import org.hisp.dhis.system.util.DateUtils;
> -import org.hisp.dhis.system.util.PDFUtils;
> -
> -import com.lowagie.text.Document;
> -import com.lowagie.text.Font;
> -import com.lowagie.text.pdf.BaseFont;
> -import com.lowagie.text.pdf.PdfPTable;
> -
> -/**
> - * @author Lars Helge Overland
> - * @version $Id: ExtendedDataElementConverter.java 4646 2008-02-26 14:54:29Z
> - *          larshelg $
> - * @modifier Dang Duy Hieu
> - * @since 2010-05-19
> - */
> -public class ExtendedDataElementConverter
> -    extends PDFUtils
> -    implements PDFConverter
> -{
> -    private DataElementService dataElementService;
> -
> -    public ExtendedDataElementConverter( DataElementService dataElementService )
> -    {
> -        this.dataElementService = dataElementService;
> -    }
> -
> -    // -------------------------------------------------------------------------
> -    // PDFConverter implementation
> -    // -------------------------------------------------------------------------
> -
> -    public void write( Document document, ExportParams params )
> -    {
> -        I18n i18n = params.getI18n();
> -        I18nFormat format = params.getFormat();
> -
> -        PDFUtils.printObjectFrontPage( document, params.getDataElements(), i18n, format, "data_elments" );
> -
> -        Collection<DataElement> elements = dataElementService.getDataElements( params.getDataElements() );
> -
> -        BaseFont bf = getTrueTypeFontByDimension( BaseFont.IDENTITY_H );
> -        Font TEXT = new Font( bf, 9, Font.NORMAL );
> -        Font ITALIC = new Font( bf, 9, Font.ITALIC );
> -        Font HEADER3 = new Font( bf, 12, Font.BOLD );
> -        Font HEADER4 = new Font( bf, 9, Font.BOLD );
> -
> -        for ( DataElement element : elements )
> -        {
> -            PdfPTable table = getPdfPTable( true, 0.40f, 0.60f );
> -
> -            table.addCell( getHeader3Cell( element.getName(), 2, HEADER3 ) );
> -
> -            table.addCell( getCell( 2, 15 ) );
> -
> -            // -------------------------------------------------------------------------
> -            // Identifying and definitional attributes
> -            // -------------------------------------------------------------------------
> -
> -            table.addCell( getHeader4Cell( i18n.getString( "identifying_and_definitional_attributes" ), 2, HEADER4 ) );
> -
> -            table.addCell( getCell( 2, 8 ) );
> -
> -            table.addCell( getItalicCell( i18n.getString( "short_name" ), 1, ITALIC ) );
> -            table.addCell( getTextCell( element.getShortName(), TEXT ) );
> -
> -            table.addCell( getItalicCell( i18n.getString( "alternative_name" ), 1, ITALIC ) );
> -            table.addCell( getTextCell( element.getAlternativeName(), TEXT ) );
> -
> -            table.addCell( getItalicCell( i18n.getString( "code" ), 1, ITALIC ) );
> -            table.addCell( getTextCell( element.getCode(), TEXT ) );
> -
> -            table.addCell( getItalicCell( i18n.getString( "description" ), 1, ITALIC ) );
> -            table.addCell( getTextCell( element.getDescription(), TEXT ) );
> -
> -            table.addCell( getItalicCell( i18n.getString( "active" ), 1, ITALIC ) );
> -            table.addCell( getTextCell( i18n.getString( String.valueOf( element.isActive() ) ), TEXT ) );
> -
> -            table.addCell( getItalicCell( i18n.getString( "type" ), 1, ITALIC ) );
> -            table.addCell( getTextCell( i18n.getString( element.getType() ), TEXT ) );
> -
> -            table.addCell( getItalicCell( i18n.getString( "aggregation_operator" ), 1, ITALIC ) );
> -            table.addCell( getTextCell( i18n.getString( element.getAggregationOperator() ) ) );
> -
> -            if ( element.getExtended() != null )
> -            {
> -                table.addCell( getItalicCell( i18n.getString( "mnemonic" ), 1, ITALIC ) );
> -                table.addCell( getTextCell( element.getExtended().getMnemonic(), TEXT ) );
> -
> -                table.addCell( getItalicCell( i18n.getString( "version" ), 1, ITALIC ) );
> -                table.addCell( getTextCell( element.getExtended().getVersion(), TEXT ) );
> -
> -                table.addCell( getItalicCell( i18n.getString( "context" ), 1, ITALIC ) );
> -                table.addCell( getTextCell( element.getExtended().getContext(), TEXT ) );
> -
> -                table.addCell( getItalicCell( i18n.getString( "synonyms" ), 1, ITALIC ) );
> -                table.addCell( getTextCell( element.getExtended().getSynonyms(), TEXT ) );
> -
> -                table.addCell( getItalicCell( i18n.getString( "hononyms" ), 1, ITALIC ) );
> -                table.addCell( getTextCell( element.getExtended().getHononyms(), TEXT ) );
> -
> -                table.addCell( getItalicCell( i18n.getString( "keywords" ), 1, ITALIC ) );
> -                table.addCell( getTextCell( element.getExtended().getKeywords(), TEXT ) );
> -
> -                table.addCell( getItalicCell( i18n.getString( "status" ), 1, ITALIC ) );
> -                table.addCell( getTextCell( element.getExtended().getStatus(), TEXT ) );
> -
> -                table.addCell( getItalicCell( i18n.getString( "status_date" ), 1, ITALIC ) );
> -                table.addCell( getTextCell( DateUtils.getMediumDateString( element.getExtended().getStatusDate() ) ) );
> -
> -                table.addCell( getCell( 2, 15 ) );
> -
> -                // -------------------------------------------------------------------------
> -                // Relational and representational attributes
> -                // -------------------------------------------------------------------------
> -
> -                table.addCell( getHeader4Cell( i18n.getString( "relational_and_representational_attributes" ), 2,
> -                    HEADER4 ) );
> -
> -                table.addCell( getCell( 2, 8 ) );
> -
> -                table.addCell( getItalicCell( i18n.getString( "data_type" ), 1, ITALIC ) );
> -                table.addCell( getTextCell( element.getExtended().getDataType(), TEXT ) );
> -
> -                table.addCell( getItalicCell( i18n.getString( "representational_form" ), 1, ITALIC ) );
> -                table.addCell( getTextCell( element.getExtended().getRepresentationalForm(), TEXT ) );
> -
> -                table.addCell( getItalicCell( i18n.getString( "representational_layout" ), 1, ITALIC ) );
> -                table.addCell( getTextCell( element.getExtended().getRepresentationalLayout(), TEXT ) );
> -
> -                table.addCell( getItalicCell( i18n.getString( "minimum_size" ), 1, ITALIC ) );
> -                table.addCell( getTextCell( String.valueOf( element.getExtended().getMinimumSize() ) ) );
> -
> -                table.addCell( getItalicCell( i18n.getString( "maximum_size" ), 1, ITALIC ) );
> -                table.addCell( getTextCell( String.valueOf( element.getExtended().getMaximumSize() ) ) );
> -
> -                table.addCell( getItalicCell( i18n.getString( "data_domain" ), 1, ITALIC ) );
> -                table.addCell( getTextCell( element.getExtended().getDataDomain(), TEXT ) );
> -
> -                table.addCell( getItalicCell( i18n.getString( "validation_rules" ), 1, ITALIC ) );
> -                table.addCell( getTextCell( element.getExtended().getValidationRules(), TEXT ) );
> -
> -                table.addCell( getItalicCell( i18n.getString( "related_data_references" ), 1, ITALIC ) );
> -                table.addCell( getTextCell( element.getExtended().getRelatedDataReferences(), TEXT ) );
> -
> -                table.addCell( getItalicCell( i18n.getString( "guide_for_use" ), 1, ITALIC ) );
> -                table.addCell( getTextCell( element.getExtended().getGuideForUse(), TEXT ) );
> -
> -                table.addCell( getItalicCell( i18n.getString( "collection_methods" ), 1, ITALIC ) );
> -                table.addCell( getTextCell( element.getExtended().getCollectionMethods(), TEXT ) );
> -
> -                table.addCell( getCell( 2, 15 ) );
> -
> -                // -------------------------------------------------------------------------
> -                // Administrative attributes
> -                // -------------------------------------------------------------------------
> -
> -                table.addCell( getHeader4Cell( i18n.getString( "administrative_attributes" ), 2, HEADER4 ) );
> -
> -                table.addCell( getCell( 2, 8 ) );
> -
> -                table.addCell( getItalicCell( i18n.getString( "responsible_authority" ), 1, ITALIC ) );
> -                table.addCell( getTextCell( element.getExtended().getResponsibleAuthority(), TEXT ) );
> -
> -                table.addCell( getItalicCell( i18n.getString( "update_rules" ), 1, ITALIC ) );
> -                table.addCell( getTextCell( element.getExtended().getUpdateRules(), TEXT ) );
> -
> -                table.addCell( getItalicCell( i18n.getString( "access_authority" ), 1, ITALIC ) );
> -                table.addCell( getTextCell( element.getExtended().getAccessAuthority(), TEXT ) );
> -
> -                table.addCell( getItalicCell( i18n.getString( "update_frequency" ), 1, ITALIC ) );
> -                table.addCell( getTextCell( element.getExtended().getUpdateFrequency(), TEXT ) );
> -
> -                table.addCell( getItalicCell( i18n.getString( "location" ), 1, ITALIC ) );
> -                table.addCell( getTextCell( element.getExtended().getLocation(), TEXT ) );
> -
> -                table.addCell( getItalicCell( i18n.getString( "reporting_methods" ), 1, ITALIC ) );
> -                table.addCell( getTextCell( element.getExtended().getReportingMethods(), TEXT ) );
> -
> -                table.addCell( getItalicCell( i18n.getString( "version_status" ), 1, ITALIC ) );
> -                table.addCell( getTextCell( element.getExtended().getVersionStatus(), TEXT ) );
> -
> -                table.addCell( getItalicCell( i18n.getString( "previous_version_references" ), 1, ITALIC ) );
> -                table.addCell( getTextCell( element.getExtended().getPreviousVersionReferences(), TEXT ) );
> -
> -                table.addCell( getItalicCell( i18n.getString( "source_document" ), 1, ITALIC ) );
> -                table.addCell( getTextCell( element.getExtended().getSourceDocument(), TEXT ) );
> -
> -                table.addCell( getItalicCell( i18n.getString( "source_organisation" ), 1, ITALIC ) );
> -                table.addCell( getTextCell( element.getExtended().getSourceOrganisation(), TEXT ) );
> -
> -                table.addCell( getItalicCell( i18n.getString( "comment" ), 1, ITALIC ) );
> -                table.addCell( getTextCell( element.getExtended().getComment(), TEXT ) );
> -
> -                table.addCell( getItalicCell( i18n.getString( "saved" ), 1, ITALIC ) );
> -                table.addCell( getTextCell( DateUtils.getMediumDateString( element.getExtended().getSaved() ) ) );
> -
> -                table.addCell( getItalicCell( i18n.getString( "last_updated" ), 1, ITALIC ) );
> -                table.addCell( getTextCell( DateUtils.getMediumDateString( element.getExtended().getLastUpdated() ) ) );
> -            }
> -
> -            table.addCell( getCell( 2, 30 ) );
> -
> -            addTableToDocument( document, table );
> -        }
> -    }
> -}
>
> === modified file 'dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/pdf/converter/IndicatorConverter.java'
> --- dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/pdf/converter/IndicatorConverter.java       2010-12-09 05:53:20 +0000
> +++ dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/pdf/converter/IndicatorConverter.java       2010-12-26 21:40:52 +0000
> @@ -42,8 +42,6 @@
>  import org.hisp.dhis.system.util.PDFUtils;
>
>  import com.lowagie.text.Document;
> -import com.lowagie.text.Font;
> -import com.lowagie.text.pdf.BaseFont;
>
>  /**
>  * @author Lars Helge Overland
> @@ -79,15 +77,9 @@
>         List<Indicator> indicators = new ArrayList<Indicator>( indicatorService.getIndicators( params.getIndicators() ) );
>         Collections.sort( indicators, new IndicatorNameComparator() );
>
> -        BaseFont bf = getTrueTypeFontByDimension( BaseFont.IDENTITY_H );
> -        Font TEXT = new Font( bf, 9, Font.NORMAL );
> -        Font ITALIC = new Font( bf, 9, Font.ITALIC );
> -        Font HEADER3 = new Font( bf, 12, Font.BOLD );
> -
>         for ( Indicator indicator : indicators )
>         {
> -            addTableToDocument( document, printIndicator( indicator, i18n, expressionService, HEADER3, ITALIC, TEXT,
> -                true, 0.40f, 0.60f ) );
> +            addTableToDocument( document, printIndicator( indicator, i18n, expressionService, true, 0.40f, 0.60f ) );
>         }
>     }
>  }
>
> === modified file 'dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/pdf/converter/OrganisationUnitConverter.java'
> --- dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/pdf/converter/OrganisationUnitConverter.java        2010-12-09 05:53:20 +0000
> +++ dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/pdf/converter/OrganisationUnitConverter.java        2010-12-26 21:40:52 +0000
> @@ -41,8 +41,6 @@
>  import org.hisp.dhis.system.util.PDFUtils;
>
>  import com.lowagie.text.Document;
> -import com.lowagie.text.Font;
> -import com.lowagie.text.pdf.BaseFont;
>
>  /**
>  * @author Lars Helge Overland
> @@ -76,14 +74,9 @@
>         List<OrganisationUnit> units = new ArrayList<OrganisationUnit>( organisationUnitService.getOrganisationUnits( params.getOrganisationUnits() ) );
>         Collections.sort( units, new OrganisationUnitNameComparator() );
>
> -        BaseFont bf = getTrueTypeFontByDimension( BaseFont.IDENTITY_H );
> -        Font ITALIC = new Font( bf, 9, Font.ITALIC );
> -        Font TEXT = new Font( bf, 9, Font.NORMAL );
> -        Font HEADER3 = new Font( bf, 12, Font.BOLD );
> -
>         for ( OrganisationUnit unit : units )
>         {
> -            addTableToDocument( document, printOrganisationUnit( unit, i18n, format, HEADER3, ITALIC, TEXT, true, 0.40f, 0.60f ) );
> +            addTableToDocument( document, printOrganisationUnit( unit, i18n, format, true, 0.40f, 0.60f ) );
>         }
>     }
>  }
>
> === modified file 'dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/pdf/converter/OrganisationUnitHierarchyConverter.java'
> --- dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/pdf/converter/OrganisationUnitHierarchyConverter.java       2010-12-09 05:53:20 +0000
> +++ dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/pdf/converter/OrganisationUnitHierarchyConverter.java       2010-12-26 21:40:52 +0000
> @@ -39,8 +39,6 @@
>  import org.hisp.dhis.system.util.PDFUtils;
>
>  import com.lowagie.text.Document;
> -import com.lowagie.text.Font;
> -import com.lowagie.text.pdf.BaseFont;
>  import com.lowagie.text.pdf.PdfPTable;
>
>  /**
> @@ -76,8 +74,6 @@
>
>         if ( params.getOrganisationUnits() != null && params.getOrganisationUnits().size() > 0 )
>         {
> -            Font TEXT = new Font( getTrueTypeFontByDimension( BaseFont.IDENTITY_H ), 9, Font.NORMAL );
> -
>             Collection<OrganisationUnit> hierarchy = getHierarchy();
>
>             PdfPTable table = getPdfPTable( false, 0.100f );
> @@ -86,7 +82,7 @@
>             {
>                 String indent = getIndent( unit.getLevel() );
>
> -                table.addCell( getTextCell( indent + unit.getName(), TEXT ) );
> +                table.addCell( getTextCell( indent + unit.getName() ) );
>             }
>
>             addTableToDocument( document, table );
>
> === modified file 'dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/pdf/converter/ValidationRuleConverter.java'
> --- dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/pdf/converter/ValidationRuleConverter.java  2010-12-09 06:25:37 +0000
> +++ dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/pdf/converter/ValidationRuleConverter.java  2010-12-26 21:40:52 +0000
> @@ -42,8 +42,6 @@
>  import org.hisp.dhis.validation.comparator.ValidationRuleNameComparator;
>
>  import com.lowagie.text.Document;
> -import com.lowagie.text.Font;
> -import com.lowagie.text.pdf.BaseFont;
>
>  /**
>  * @author Dang Duy Hieu
> @@ -80,15 +78,9 @@
>         List<ValidationRule> validationRules = new ArrayList<ValidationRule>( validationRuleService.getValidationRules( params.getValidationRules() ) );
>         Collections.sort( validationRules, new ValidationRuleNameComparator() );
>
> -        BaseFont bf = getTrueTypeFontByDimension( BaseFont.IDENTITY_H );
> -        Font TEXT = new Font( bf, 9, Font.NORMAL );
> -        Font ITALIC = new Font( bf, 9, Font.ITALIC );
> -        Font HEADER3 = new Font( bf, 12, Font.BOLD );
> -
>         for ( ValidationRule rule : validationRules )
>         {
> -            addTableToDocument( document, printValidationRule( rule, i18n, expressionService, HEADER3, ITALIC, TEXT,
> -                true, 0.40f, 0.60f ) );
> +            addTableToDocument( document, printValidationRule( rule, i18n, expressionService, true, 0.40f, 0.60f ) );
>         }
>     }
>  }
>
> === modified file 'dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/pdf/exporter/ITextPDFExportService.java'
> --- dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/pdf/exporter/ITextPDFExportService.java     2010-12-09 05:53:20 +0000
> +++ dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/pdf/exporter/ITextPDFExportService.java     2010-12-26 21:40:52 +0000
> @@ -41,7 +41,6 @@
>  import org.hisp.dhis.importexport.ExportParams;
>  import org.hisp.dhis.importexport.ExportService;
>  import org.hisp.dhis.importexport.pdf.converter.DataElementConverter;
> -import org.hisp.dhis.importexport.pdf.converter.ExtendedDataElementConverter;
>  import org.hisp.dhis.importexport.pdf.converter.IndicatorConverter;
>  import org.hisp.dhis.importexport.pdf.converter.OrganisationUnitConverter;
>  import org.hisp.dhis.importexport.pdf.converter.OrganisationUnitHierarchyConverter;
> @@ -132,7 +131,6 @@
>
>             thread.setDataElementConverter( new DataElementConverter( dataElementService ) );
>             thread.setIndicatorConverter( new IndicatorConverter( indicatorService, expressionService ) );
> -            thread.setExtendedDataElementConverter( new ExtendedDataElementConverter( dataElementService ) );
>             thread.setOrganisationUnitHierarchyConverter( new OrganisationUnitHierarchyConverter(
>                 organisationUnitService ) );
>             thread.setOrganisationUnitConverter( new OrganisationUnitConverter( organisationUnitService ) );
>
> === modified file 'dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/synchronous/ExportPivotViewService.java'
> --- dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/synchronous/ExportPivotViewService.java     2010-12-22 11:09:05 +0000
> +++ dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/synchronous/ExportPivotViewService.java     2010-12-26 21:40:52 +0000
> @@ -1,11 +1,32 @@
> +package org.hisp.dhis.importexport.synchronous;
> +
>  /*
> - * To change this template, choose Tools | Templates
> - * and open the template in the editor.
> + * Copyright (c) 2004-2010, University of Oslo
> + * All rights reserved.
> + *
> + * Redistribution and use in source and binary forms, with or without
> + * modification, are permitted provided that the following conditions are met:
> + * * Redistributions of source code must retain the above copyright notice, this
> + *   list of conditions and the following disclaimer.
> + * * Redistributions in binary form must reproduce the above copyright notice,
> + *   this list of conditions and the following disclaimer in the documentation
> + *   and/or other materials provided with the distribution.
> + * * Neither the name of the HISP project nor the names of its contributors may
> + *   be used to endorse or promote products derived from this software without
> + *   specific prior written permission.
> + *
> + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
> + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
> + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
> + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
> + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
> + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
> + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
> + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
>  */
>
> -package org.hisp.dhis.importexport.synchronous;
> -
> -
>  import java.io.BufferedWriter;
>  import java.io.IOException;
>  import java.io.OutputStream;
> @@ -13,11 +34,11 @@
>  import java.io.Writer;
>  import java.util.Collection;
>  import java.util.Date;
> +
>  import org.apache.commons.logging.Log;
>  import org.apache.commons.logging.LogFactory;
>  import org.hisp.dhis.aggregation.AggregatedDataValue;
>  import org.hisp.dhis.aggregation.AggregatedDataValueService;
> -import org.hisp.dhis.aggregation.AggregatedDataValueStore;
>  import org.hisp.dhis.aggregation.AggregatedDataValueStoreIterator;
>  import org.hisp.dhis.organisationunit.OrganisationUnit;
>  import org.hisp.dhis.organisationunit.OrganisationUnitLevel;
> @@ -34,7 +55,6 @@
>  *
>  * @author bobj
>  */
> -
>  public class ExportPivotViewService {
>
>     private static final Log log = LogFactory.getLog( ExportPivotViewService.class );
>
> === modified file 'dhis-2/dhis-services/dhis-service-importexport/src/test/java/org/hisp/dhis/importexport/util/XsltUtils.java'
> --- dhis-2/dhis-services/dhis-service-importexport/src/test/java/org/hisp/dhis/importexport/util/XsltUtils.java 2010-10-29 08:56:13 +0000
> +++ dhis-2/dhis-services/dhis-service-importexport/src/test/java/org/hisp/dhis/importexport/util/XsltUtils.java 2010-12-26 21:40:52 +0000
> @@ -38,7 +38,6 @@
>
>  import org.hisp.dhis.DhisTest;
>  import org.hisp.dhis.external.location.LocationManager;
> -import org.junit.Before;
>  import org.junit.Ignore;
>  import org.junit.Test;
>
>
> === modified file 'dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/pdf/impl/ItextPdfService.java'
> --- dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/pdf/impl/ItextPdfService.java       2010-12-26 16:55:25 +0000
> +++ dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/pdf/impl/ItextPdfService.java       2010-12-26 21:40:52 +0000
> @@ -27,15 +27,14 @@
>  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
>  */
>
> -import static org.hisp.dhis.system.util.PDFUtils.ALIGN_CENTER;
>  import static org.hisp.dhis.system.util.PDFUtils.addTableToDocument;
>  import static org.hisp.dhis.system.util.PDFUtils.closeDocument;
> -import static org.hisp.dhis.system.util.PDFUtils.getCell;
> -import static org.hisp.dhis.system.util.PDFUtils.getHeader3Cell;
> +import static org.hisp.dhis.system.util.PDFUtils.getEmptyCell;
>  import static org.hisp.dhis.system.util.PDFUtils.getItalicCell;
>  import static org.hisp.dhis.system.util.PDFUtils.getPdfPTable;
> +import static org.hisp.dhis.system.util.PDFUtils.getSubtitleCell;
>  import static org.hisp.dhis.system.util.PDFUtils.getTextCell;
> -import static org.hisp.dhis.system.util.PDFUtils.getTrueTypeFontByDimension;
> +import static org.hisp.dhis.system.util.PDFUtils.getTitleCell;
>  import static org.hisp.dhis.system.util.PDFUtils.openDocument;
>
>  import java.io.OutputStream;
> @@ -54,8 +53,6 @@
>  import org.springframework.transaction.annotation.Transactional;
>
>  import com.lowagie.text.Document;
> -import com.lowagie.text.Font;
> -import com.lowagie.text.pdf.BaseFont;
>  import com.lowagie.text.pdf.PdfPTable;
>
>  /**
> @@ -69,25 +66,12 @@
>     implements PdfService
>  {
>     // -------------------------------------------------------------------------
> -    // Variables
> -    // -------------------------------------------------------------------------
> -
> -    private static BaseFont bf;
> -
> -    private static Font TEXT;
> -
> -    private static Font ITALIC;
> -
> -    private static Font HEADER3;
> -
> -    // -------------------------------------------------------------------------
>     // PdfService implementation
>     // -------------------------------------------------------------------------
>
>     public void writeDataSetCompletenessResult( Collection<DataSetCompletenessResult> results, OutputStream out,
>         I18n i18n, OrganisationUnit unit, DataSet dataSet )
>     {
> -        initFont();
>         Document document = openDocument( out );
>
>         PdfPTable table = getPdfPTable( true, 0.501f, 0.10f, 0.10f, 0.10f, 0.10f, 0.10f );
> @@ -96,30 +80,30 @@
>
>         String dataSetName = dataSet != null ? " - " + dataSet.getName() : "";
>
> -        table.addCell( getHeader3Cell( i18n.getString( "data_completeness_report" ) + " - " + unit.getName()
> -            + dataSetName, 6, HEADER3 ) );
> -
> -        table.addCell( getCell( 6, 8 ) );
> -
> -        table.addCell( getTextCell( i18n.getString( "district_health_information_software" ) + " - "
> -            + DateUtils.getMediumDateString(), 6, TEXT ) );
> -
> -        table.addCell( getCell( 6, 15 ) );
> -
> -        table.addCell( getItalicCell( i18n.getString( "name" ), 1, ITALIC ) );
> -        table.addCell( getItalicCell( i18n.getString( "actual" ), 1, ITALIC ) );
> -        table.addCell( getItalicCell( i18n.getString( "target" ), 1, ITALIC ) );
> -        table.addCell( getItalicCell( i18n.getString( "percent" ), 1, ITALIC ) );
> -        table.addCell( getItalicCell( i18n.getString( "on_time" ), 1, ITALIC ) );
> -        table.addCell( getItalicCell( i18n.getString( "percent" ), 1, ITALIC ) );
> -
> -        table.addCell( getCell( 6, 8 ) );
> +        table.addCell( getTitleCell( i18n.getString( "data_completeness_report" ) + " - " + unit.getName()
> +            + dataSetName, 6 ) );
> +
> +        table.addCell( getEmptyCell( 6, 10 ) );
> +
> +        table.addCell( getSubtitleCell( i18n.getString( "district_health_information_software" ) + " - "
> +            + DateUtils.getMediumDateString(), 6 ) );
> +
> +        table.addCell( getEmptyCell( 6, 25 ) );
> +
> +        table.addCell( getItalicCell( i18n.getString( "name" ) ) );
> +        table.addCell( getItalicCell( i18n.getString( "actual" ) ) );
> +        table.addCell( getItalicCell( i18n.getString( "target" ) ) );
> +        table.addCell( getItalicCell( i18n.getString( "percent" ) ) );
> +        table.addCell( getItalicCell( i18n.getString( "on_time" ) ) );
> +        table.addCell( getItalicCell( i18n.getString( "percent" ) ) );
> +
> +        table.addCell( getEmptyCell( 6, 8 ) );
>
>         if ( results != null )
>         {
>             for ( DataSetCompletenessResult result : results )
>             {
> -                table.addCell( getTextCell( result.getName(), TEXT ) );
> +                table.addCell( getTextCell( result.getName() ) );
>                 table.addCell( getTextCell( String.valueOf( result.getRegistrations() ) ) );
>                 table.addCell( getTextCell( String.valueOf( result.getSources() ) ) );
>                 table.addCell( getTextCell( String.valueOf( result.getPercentage() ) ) );
> @@ -135,31 +119,30 @@
>
>     public void writeValidationResult( List<ValidationResult> results, OutputStream out, I18n i18n, I18nFormat format )
>     {
> -        initFont();
>         Document document = openDocument( out );
>
>         PdfPTable table = getPdfPTable( true, 0.19f, 0.13f, 0.21f, 0.07f, 0.12f, 0.07f, 0.21f );
>
>         table.setHeaderRows( 0 );
>
> -        table.addCell( getHeader3Cell( i18n.getString( "data_quality_report" ), 7, HEADER3 ) );
> -
> -        table.addCell( getCell( 7, 8 ) );
> -
> -        table.addCell( getTextCell( i18n.getString( "district_health_information_software" ) + " - "
> -            + format.parseDate( DateUtils.getMediumDateString() ), 7, TEXT ) );
> -
> -        table.addCell( getCell( 7, 15 ) );
> -
> -        table.addCell( getItalicCell( i18n.getString( "source" ), 1, ITALIC ) );
> -        table.addCell( getItalicCell( i18n.getString( "period" ), 1, ITALIC ) );
> -        table.addCell( getItalicCell( i18n.getString( "left_side_description" ), 1, ITALIC ) );
> -        table.addCell( getItalicCell( i18n.getString( "value" ), 1, ITALIC ) );
> -        table.addCell( getItalicCell( i18n.getString( "operator" ), 1, ITALIC ) );
> -        table.addCell( getItalicCell( i18n.getString( "value" ), 1, ITALIC ) );
> -        table.addCell( getItalicCell( i18n.getString( "right_side_description" ), 1, ITALIC ) );
> -
> -        table.addCell( getCell( 7, 8 ) );
> +        table.addCell( getTitleCell( i18n.getString( "data_quality_report" ), 7 ) );
> +
> +        table.addCell( getEmptyCell( 7, 10 ) );
> +
> +        table.addCell( getSubtitleCell( i18n.getString( "district_health_information_software" ) + " - "
> +            + format.parseDate( DateUtils.getMediumDateString() ), 7) );
> +
> +        table.addCell( getEmptyCell( 7, 25 ) );
> +
> +        table.addCell( getItalicCell( i18n.getString( "source" ) ) );
> +        table.addCell( getItalicCell( i18n.getString( "period" ) ) );
> +        table.addCell( getItalicCell( i18n.getString( "left_side_description" ) ) );
> +        table.addCell( getItalicCell( i18n.getString( "value" ) ) );
> +        table.addCell( getItalicCell( i18n.getString( "operator" ) ) );
> +        table.addCell( getItalicCell( i18n.getString( "value" ) ) );
> +        table.addCell( getItalicCell( i18n.getString( "right_side_description" ) ) );
> +
> +        table.addCell( getEmptyCell( 7, 8 ) );
>
>         if ( results != null )
>         {
> @@ -169,16 +152,13 @@
>
>                 Period period = validationResult.getPeriod();
>
> -                table.addCell( getTextCell( unit.getName(), TEXT ) );
> -                table.addCell( getTextCell( format.formatPeriod( period ), TEXT ) );
> -                table
> -                    .addCell( getTextCell( validationResult.getValidationRule().getLeftSide().getDescription(), TEXT ) );
> +                table.addCell( getTextCell( unit.getName() ) );
> +                table.addCell( getTextCell( format.formatPeriod( period ) ) );
> +                table.addCell( getTextCell( validationResult.getValidationRule().getLeftSide().getDescription() ) );
>                 table.addCell( getTextCell( String.valueOf( validationResult.getLeftsideValue() ) ) );
> -                table.addCell( getTextCell( i18n.getString( validationResult.getValidationRule().getOperator() ), 1,
> -                    ALIGN_CENTER ) );
> +                table.addCell( getTextCell( i18n.getString( validationResult.getValidationRule().getOperator() ) ) );
>                 table.addCell( getTextCell( String.valueOf( validationResult.getRightsideValue() ) ) );
> -                table
> -                    .addCell( getTextCell( validationResult.getValidationRule().getRightSide().getDescription(), TEXT ) );
> +                table.addCell( getTextCell( validationResult.getValidationRule().getRightSide().getDescription() ) );
>             }
>         }
>
> @@ -186,18 +166,4 @@
>
>         closeDocument( document );
>     }
> -
> -    // -------------------------------------------------------------------------
> -    // Supportive methods
> -    // -------------------------------------------------------------------------
> -
> -    private void initFont()
> -    {
> -        bf = getTrueTypeFontByDimension( BaseFont.IDENTITY_H );
> -
> -        TEXT = new Font( bf, 9, Font.NORMAL );
> -        ITALIC = new Font( bf, 9, Font.ITALIC );
> -        HEADER3 = new Font( bf, 12, Font.BOLD );
> -    }
> -
>  }
>
> === modified file 'dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/tallysheet/DefaultTallySheetPdfService.java'
> --- dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/tallysheet/DefaultTallySheetPdfService.java 2010-10-15 10:47:44 +0000
> +++ dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/tallysheet/DefaultTallySheetPdfService.java 2010-12-26 21:40:52 +0000
> @@ -27,8 +27,6 @@
>  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
>  */
>
> -import static org.hisp.dhis.system.util.PDFUtils.getTrueTypeFontByDimension;
> -
>  import java.io.ByteArrayInputStream;
>  import java.io.ByteArrayOutputStream;
>  import java.io.InputStream;
> @@ -36,6 +34,7 @@
>
>  import org.hisp.dhis.dataelement.DataElement;
>  import org.hisp.dhis.i18n.I18n;
> +import org.hisp.dhis.system.util.PDFUtils;
>
>  import com.lowagie.text.Document;
>  import com.lowagie.text.DocumentException;
> @@ -43,7 +42,6 @@
>  import com.lowagie.text.Font;
>  import com.lowagie.text.PageSize;
>  import com.lowagie.text.Paragraph;
> -import com.lowagie.text.pdf.BaseFont;
>  import com.lowagie.text.pdf.PdfPCell;
>  import com.lowagie.text.pdf.PdfPTable;
>  import com.lowagie.text.pdf.PdfWriter;
> @@ -56,8 +54,8 @@
>  public class DefaultTallySheetPdfService
>     implements TallySheetPdfService
>  {
> -    private static BaseFont bf;
> -
> +    //TODO this class must be improved and use PdfUtils
> +
>     private static Font headerFont;
>
>     private static Font tableFont;
> @@ -229,9 +227,7 @@
>
>     private void initFont()
>     {
> -        bf = getTrueTypeFontByDimension( BaseFont.IDENTITY_H );
> -
> -        headerFont = new Font( bf, 12, Font.NORMAL );
> -        tableFont = new Font( bf, 8, Font.NORMAL );
> +        headerFont = PDFUtils.getBoldFont( 12 );
> +        tableFont = PDFUtils.getFont( 8 );
>     }
>  }
>
> === modified file 'dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/PDFUtils.java'
> --- dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/PDFUtils.java       2010-12-09 05:53:20 +0000
> +++ dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/PDFUtils.java       2010-12-26 21:40:52 +0000
> @@ -28,6 +28,7 @@
>  */
>
>  import static org.hisp.dhis.system.util.TextUtils.nullIfEmpty;
> +import static com.lowagie.text.pdf.PdfPCell.*;
>
>  import java.io.OutputStream;
>  import java.util.Calendar;
> @@ -56,44 +57,10 @@
>
>  /**
>  * @author Lars Helge Overland
> - * @version $Id$
> - * @modifier Dang Duy Hieu
> - * @since 2010-05-19
> + * @author Dang Duy Hieu
>  */
>  public class PDFUtils
>  {
> -    public static final int ALIGN_CENTER = PdfPCell.ALIGN_CENTER;
> -
> -    public static final int ALIGN_LEFT = PdfPCell.ALIGN_LEFT;
> -
> -    public static final int ALIGN_RIGHT = PdfPCell.ALIGN_RIGHT;
> -
> -    private static final Font TEXT = new Font( Font.HELVETICA, 9, Font.NORMAL );
> -
> -    private static final Font TEXT5 = new Font( Font.HELVETICA, 8, Font.NORMAL );
> -
> -    private static final Font TEXT6 = new Font( Font.HELVETICA, 6, Font.NORMAL );
> -
> -    private static final Font TEXT7 = new Font( Font.HELVETICA, 4, Font.NORMAL );
> -
> -    private static final Font ITALIC = new Font( Font.HELVETICA, 9, Font.ITALIC );
> -
> -    private static final Font HEADER1 = new Font( Font.HELVETICA, 20, Font.BOLD );
> -
> -    private static final Font HEADER2 = new Font( Font.HELVETICA, 16, Font.BOLD );
> -
> -    private static final Font HEADER3 = new Font( Font.HELVETICA, 12, Font.BOLD );
> -
> -    private static final Font HEADER4 = new Font( Font.HELVETICA, 9, Font.BOLD );
> -
> -    private static final Font HEADER5 = new Font( Font.HELVETICA, 8, Font.BOLD );
> -
> -    private static final Font HEADER6 = new Font( Font.HELVETICA, 6, Font.BOLD );
> -
> -    private static final Font HEADER7 = new Font( Font.HELVETICA, 4, Font.BOLD );
> -
> -    public static final String PDF_ARIAL_FONT = "arial.ttf";
> -
>     /**
>      * Creates a document.
>      *
> @@ -233,6 +200,31 @@
>
>         return cell;
>     }
> +
> +    public static PdfPCell getTitleCell( String text, int colspan )
> +    {
> +        return getCell( text, colspan, getBoldFont( 16 ), ALIGN_CENTER );
> +    }
> +
> +    public static PdfPCell getSubtitleCell( String text, int colspan )
> +    {
> +        return getCell( text, colspan, getItalicFont( 12 ), ALIGN_CENTER );
> +    }
> +
> +    public static PdfPCell getHeaderCell( String text, int colspan )
> +    {
> +        return getCell( text, colspan, getFont( 12 ), ALIGN_LEFT );
> +    }
> +
> +    public static PdfPCell getTextCell( String text )
> +    {
> +        return getCell( text, 1, getFont( 9 ), ALIGN_LEFT );
> +    }
> +
> +    public static PdfPCell getItalicCell( String text )
> +    {
> +        return getCell( text, 1, getItalicFont( 9 ), ALIGN_LEFT );
> +    }
>
>     /**
>      * Creates an empty cell.
> @@ -241,7 +233,7 @@
>      * @param height The height of the column.
>      * @return A PdfCell.
>      */
> -    public static PdfPCell getCell( int colSpan, int height )
> +    public static PdfPCell getEmptyCell( int colSpan, int height )
>     {
>         PdfPCell cell = new PdfPCell();
>
> @@ -252,340 +244,42 @@
>         return cell;
>     }
>
> -    /**
> -     * Creates a cell spanning one column.
> -     *
> -     * @param text The text to include in the cell.
> -     * @param font The font of the cell content.
> -     * @return A PdfCell.
> -     */
> -    public static PdfPCell getCell( String text, Font font )
> -    {
> -        return getCell( text, 1, font, ALIGN_LEFT );
> -    }
> -
> -    /**
> -     * Creates a cell with text font.
> -     *
> -     * @param text The text to include in the cell.
> -     * @param colspan The column span of the cell.
> -     * @return A PdfCell.
> -     */
> -    public static PdfPCell getTextCell( String text, int colspan )
> -    {
> -        return getCell( text, colspan, TEXT, ALIGN_LEFT );
> -    }
> -
> -    /**
> -     * Creates a cell with text font.
> -     *
> -     * @param text The text to include in the cell.
> -     * @param colspan The column span of the cell.
> -     * @param font The font for text in the cell.
> -     * @return A PdfCell.
> -     */
> -    public static PdfPCell getTextCell( String text, int colspan, Font font )
> -    {
> -        return getCell( text, colspan, font, ALIGN_LEFT );
> -    }
> -
> -    /**
> -     * Creates a cell with text font.
> -     *
> -     * @param text The text to include in the cell.
> -     * @param colspan The column span of the cell.
> -     * @param horizontalAlign The horizontal align, either ALIGN_LEFT,
> -     *        ALIGN_RIGHT, or ALIGN_CENTER.
> -     * @return A PdfCell.
> -     */
> -    public static PdfPCell getTextCell( String text, int colspan, int horizontalAlign )
> -    {
> -        return getCell( text, colspan, TEXT, horizontalAlign );
> -    }
> -
> -    /**
> -     * Creates a cell with text font spanning one column.
> -     *
> -     * @param text The text to include in the cell.
> -     * @return A PdfCell.
> -     */
> -    public static PdfPCell getTextCell( String text )
> -    {
> -        return getCell( text, 1, TEXT, ALIGN_LEFT );
> -    }
> -
> -    /**
> -     * Creates a cell with text font spanning one column.
> -     *
> -     * @param text The text to include in the cell.
> -     * @param font The font for text in the cell.
> -     * @return A PdfCell.
> -     */
> -    public static PdfPCell getTextCell( String text, Font font )
> -    {
> -        return getCell( text, 1, font, ALIGN_LEFT );
> -    }
> -
> -    /**
> -     * Creates a cell with text 5 font.
> -     *
> -     * @param text The text to include in the cell.
> -     * @return A PdfCell.
> -     */
> -    public static PdfPCell getText5Cell( String text )
> -    {
> -        return getCell( text, 1, TEXT5, ALIGN_LEFT );
> -    }
> -
> -    /**
> -     * Creates a cell with text 5 font.
> -     *
> -     * @param text The text to include in the cell.
> -     * @return A PdfCell.
> -     */
> -    public static PdfPCell getText5Cell( String text, Font font )
> -    {
> -        return getCell( text, 1, font, ALIGN_LEFT );
> -    }
> -
> -    /**
> -     * Creates a cell with text 6 font.
> -     *
> -     * @param text The text to include in the cell.
> -     * @return A PdfCell.
> -     */
> -    public static PdfPCell getText6Cell( String text )
> -    {
> -        return getCell( text, 1, TEXT6, ALIGN_LEFT );
> -    }
> -
> -    /**
> -     * Creates a cell with text 5 font.
> -     *
> -     * @param text The text to include in the cell.
> -     * @return A PdfCell.
> -     */
> -    public static PdfPCell getText6Cell( String text, Font font )
> -    {
> -        return getCell( text, 1, font, ALIGN_LEFT );
> -    }
> -
> -    /**
> -     * Creates a cell with text 7 font.
> -     *
> -     * @param text The text to include in the cell.
> -     * @return A PdfCell.
> -     */
> -    public static PdfPCell getText7Cell( String text )
> -    {
> -        return getCell( text, 1, TEXT7, ALIGN_LEFT );
> -    }
> -
> -    /**
> -     * Creates a cell with text 5 font.
> -     *
> -     * @param text The text to include in the cell.
> -     * @return A PdfCell.
> -     */
> -
> -    public static PdfPCell getText7Cell( String text, Font font )
> -    {
> -        return getCell( text, 1, font, ALIGN_LEFT );
> -    }
> -
> -    /**
> -     * Creates a cell with italic text font.
> -     *
> -     * @param text The text to include in the cell.
> -     * @param colspan The column span of the cell.
> -     * @return A PdfCell.
> -     */
> -    public static PdfPCell getItalicCell( String text, int colspan )
> -    {
> -        return getCell( text, colspan, ITALIC, ALIGN_LEFT );
> -    }
> -
> -    /**
> -     * Creates a cell with italic text font.
> -     *
> -     * @param text The text to include in the cell.
> -     * @param colspan The column span of the cell.
> -     * @param font The font to embed in text of the cell.
> -     * @return A PdfCell.
> -     */
> -    public static PdfPCell getItalicCell( String text, int colspan, Font font )
> -    {
> -        return getCell( text, colspan, font, ALIGN_LEFT );
> -    }
> -
> -    /**
> -     * Creates a cell with header 1 font.
> -     *
> -     * @param text The text to include in the cell.
> -     * @param colspan The column span of the cell.
> -     * @return A PdfCell.
> -     */
> -    public static PdfPCell getHeader1Cell( String text, int colspan )
> -    {
> -        return getCell( text, colspan, HEADER1, ALIGN_LEFT );
> -    }
> -
> -    /**
> -     * Creates a cell with header 2 font.
> -     *
> -     * @param text The text to include in the cell.
> -     * @param colspan The column span of the cell.
> -     * @return A PdfCell.
> -     */
> -    public static PdfPCell getHeader2Cell( String text, int colspan )
> -    {
> -        return getCell( text, colspan, HEADER2, ALIGN_LEFT );
> -    }
> -
> -    /**
> -     * Creates a cell with header 3 font.
> -     *
> -     * @param text The text to include in the cell.
> -     * @param colspan The column span of the cell.
> -     * @return A PdfCell.
> -     */
> -    public static PdfPCell getHeader3Cell( String text, int colspan )
> -    {
> -        return getCell( text, colspan, HEADER3, ALIGN_LEFT );
> -    }
> -
> -    /**
> -     * Creates a cell with header 3 font.
> -     *
> -     * @param text The text to include in the cell.
> -     * @param colspan The column span of the cell.
> -     * @param font The font of the cell content.
> -     * @return A PdfCell.
> -     */
> -    public static PdfPCell getHeader3Cell( String text, int colspan, Font font )
> -    {
> -        return getCell( text, colspan, font, ALIGN_LEFT );
> -    }
> -
> -    /**
> -     * Creates a cell with header 3 font.
> -     *
> -     * @param text The text to include in the cell.
> -     * @param colspan The column span of the cell.
> -     * @return A PdfCell.
> -     */
> -    public static PdfPCell getHeader4Cell( String text, int colspan )
> -    {
> -        return getCell( text, colspan, HEADER4, ALIGN_LEFT );
> -    }
> -
> -    /**
> -     * Creates a cell with header 3 font.
> -     *
> -     * @param text The text to include in the cell.
> -     * @param colspan The column span of the cell.
> -     * @param font The font of the cell content.
> -     * @return A PdfCell.
> -     */
> -    public static PdfPCell getHeader4Cell( String text, int colspan, Font font )
> -    {
> -        return getCell( text, colspan, font, ALIGN_LEFT );
> -    }
> -
> -    /**
> -     * Creates a cell with header 5 font.
> -     *
> -     * @param text The text to include in the cell.
> -     * @param colspan The column span of the cell.
> -     * @return A PdfCell.
> -     */
> -    public static PdfPCell getHeader5Cell( String text, int colspan )
> -    {
> -        return getCell( text, colspan, HEADER5, ALIGN_LEFT );
> -    }
> -
> -    /**
> -     * Creates a cell with header 5 font.
> -     *
> -     * @param text The text to include in the cell.
> -     * @param colspan The column span of the cell.
> -     * @param font The customize font of the cell.
> -     * @return A PdfCell.
> -     */
> -    public static PdfPCell getHeader5Cell( String text, int colspan, Font font )
> -    {
> -        return getCell( text, colspan, font, ALIGN_LEFT );
> -    }
> -
> -    /**
> -     * Creates a cell with header 6 font.
> -     *
> -     * @param text The text to include in the cell.
> -     * @param colspan The column span of the cell.
> -     * @return A PdfCell.
> -     */
> -    public static PdfPCell getHeader6Cell( String text, int colspan )
> -    {
> -        return getCell( text, colspan, HEADER6, ALIGN_LEFT );
> -    }
> -
> -    /**
> -     * Creates a cell with header 6 font.
> -     *
> -     * @param text The text to include in the cell.
> -     * @param colspan The column span of the cell.
> -     * @param font The customize font of the cell.
> -     * @return A PdfCell.
> -     */
> -    public static PdfPCell getHeader6Cell( String text, int colspan, Font font )
> -    {
> -        return getCell( text, colspan, font, ALIGN_LEFT );
> -    }
> -
> -    /**
> -     * Creates a cell with header 7 font.
> -     *
> -     * @param text The text to include in the cell.
> -     * @param colspan The column span of the cell.
> -     * @return A PdfCell.
> -     */
> -    public static PdfPCell getHeader7Cell( String text, int colspan )
> -    {
> -        return getCell( text, colspan, HEADER7, ALIGN_LEFT );
> -    }
> -
> -    /**
> -     * Creates a cell with header 7 font.
> -     *
> -     * @param text The text to include in the cell.
> -     * @param colspan The column span of the cell.
> -     * @param font The customize font of the cell.
> -     * @return A PdfCell.
> -     */
> -    public static PdfPCell getHeader7Cell( String text, int colspan, Font font )
> -    {
> -        return getCell( text, colspan, font, ALIGN_LEFT );
> -    }
> -
> -    /**
> -     * Creates a BaseFont with the given dimension
> -     *
> -     * @param dimension whether horizontal or vertical
> -     * @return A BaseFont.
> -     */
> -    public static BaseFont getTrueTypeFontByDimension( String dimension )
> +    // -------------------------------------------------------------------------
> +    // Font methods
> +    // -------------------------------------------------------------------------
> +
> +    public static Font getFont( float size )
> +    {
> +        return getFont( "ubuntu.ttf", size );
> +    }
> +
> +    public static Font getBoldFont( float size )
> +    {
> +        return getFont( "ubuntu-bold.ttf", size );
> +    }
> +
> +    public static Font getItalicFont( float size )
> +    {
> +        return getFont( "ubuntu-italic.ttf", size );
> +    }
> +
> +    private static Font getFont( String fontPath, float size )
>     {
>         try
>         {
> -            return BaseFont.createFont( PDF_ARIAL_FONT, dimension, BaseFont.EMBEDDED );
> +            BaseFont baseFont = BaseFont.createFont( fontPath, BaseFont.IDENTITY_H, BaseFont.EMBEDDED );
> +            return new Font( baseFont, size );
>         }
> -        catch ( Exception e )
> +        catch ( Exception ex )
>         {
> -            throw new RuntimeException( "Error occurred in creating a BaseFont instance by the given dimension" );
> -        }
> -
> +            throw new RuntimeException( "Error while creating base font", ex );
> +        }
>     }
>
> +    // -------------------------------------------------------------------------
> +    // Domain object methods
> +    // -------------------------------------------------------------------------
> +
>     /**
>      * Writes a "Data Elements" title in front of page
>      *
> @@ -621,7 +315,7 @@
>     }
>
>     /**
> -     * Writes a DHIS2.0 title in front of page
> +     * Writes a DHIS 2 title in front of page
>      *
>      * @param document The document
>      * @param exportParams the exporting params
> @@ -629,24 +323,19 @@
>      */
>     private static void printFrontPage( Document document, String title, I18n i18n, I18nFormat format )
>     {
> -        BaseFont bf = getTrueTypeFontByDimension( BaseFont.IDENTITY_H );
> -
> -        Font TEXT = new Font( bf, 9, Font.NORMAL );
> -        Font HEADER2 = new Font( bf, 16, Font.BOLD );
> -
>         PdfPTable table = getPdfPTable( true, 1.00f );
>
> -        table.addCell( getCell( i18n.getString( "district_health_information_software" ), 1, TEXT, ALIGN_CENTER ) );
> -
> -        table.addCell( getCell( 1, 40 ) );
> -
> -        table.addCell( getCell( title, 1, HEADER2, ALIGN_CENTER ) );
> -
> -        table.addCell( getCell( 1, 40 ) );
> +        table.addCell( getTitleCell( i18n.getString( "district_health_information_software" ), 1 ) );
> +
> +        table.addCell( getEmptyCell( 1, 40 ) );
> +
> +        table.addCell( getSubtitleCell( title, 1 ) );
> +
> +        table.addCell( getEmptyCell( 1, 40 ) );
>
>         String date = format.formatDate( Calendar.getInstance().getTime() );
>
> -        table.addCell( getCell( date, 1, TEXT, ALIGN_CENTER ) );
> +        table.addCell( getSubtitleCell( date, 1 ) );
>
>         addTableToDocument( document, table );
>
> @@ -665,45 +354,43 @@
>      *        multiple pages or should be kept at one page.
>      * @param columnWidths The column widths.
>      */
> -    public static PdfPTable printDataElement( DataElement element, I18n i18n, Font HEADER3, Font ITALIC, Font TEXT,
> -        boolean keepTogether, float... columnWidths )
> +    public static PdfPTable printDataElement( DataElement element, I18n i18n, boolean keepTogether, float... columnWidths )
>     {
>         PdfPTable table = getPdfPTable( keepTogether, columnWidths );
>
> -        table.addCell( getHeader3Cell( element.getName(), 2, HEADER3 ) );
> -
> -        table.addCell( getCell( 2, 15 ) );
> -
> -        table.addCell( getItalicCell( i18n.getString( "short_name" ), 1, ITALIC ) );
> -        table.addCell( getTextCell( element.getShortName(), TEXT ) );
> +        table.addCell( getHeaderCell( element.getName(), 2 ) );
> +
> +        table.addCell( getEmptyCell( 2, 15 ) );
> +
> +        table.addCell( getItalicCell( i18n.getString( "short_name" ) ) );
> +        table.addCell( getTextCell( element.getShortName() ) );
>
>         if ( nullIfEmpty( element.getAlternativeName() ) != null )
>         {
> -            table.addCell( getItalicCell( i18n.getString( "alternative_name" ), 1, ITALIC ) );
> -            table.addCell( getTextCell( element.getAlternativeName(), TEXT ) );
> +            table.addCell( getItalicCell( i18n.getString( "alternative_name" ) ) );
> +            table.addCell( getTextCell( element.getAlternativeName() ) );
>         }
>         if ( nullIfEmpty( element.getCode() ) != null )
>         {
> -            table.addCell( getItalicCell( i18n.getString( "code" ), 1, ITALIC ) );
> +            table.addCell( getItalicCell( i18n.getString( "code" ) ) );
>             table.addCell( getTextCell( element.getCode() ) );
>         }
>         if ( nullIfEmpty( element.getDescription() ) != null )
>         {
> -            table.addCell( getItalicCell( i18n.getString( "description" ), 1, ITALIC ) );
> -            table.addCell( getTextCell( element.getDescription(), TEXT ) );
> +            table.addCell( getItalicCell( i18n.getString( "description" ) ) );
> +            table.addCell( getTextCell( element.getDescription() ) );
>         }
>
> -        table.addCell( getItalicCell( i18n.getString( "active" ), 1, ITALIC ) );
> -        table.addCell( getTextCell( i18n.getString( getBoolean().get( element.isActive() ) ), TEXT ) );
> -
> -        table.addCell( getItalicCell( i18n.getString( "type" ), 1, ITALIC ) );
> -        table.addCell( getTextCell( i18n.getString( getType().get( element.getType() ) ), TEXT ) );
> -
> -        table.addCell( getItalicCell( i18n.getString( "aggregation_operator" ), 1, ITALIC ) );
> -        table.addCell( getTextCell( i18n.getString( getAggregationOperator().get( element.getAggregationOperator() ) ),
> -            TEXT ) );
> -
> -        table.addCell( getCell( 2, 30 ) );
> +        table.addCell( getItalicCell( i18n.getString( "active" ) ) );
> +        table.addCell( getTextCell( i18n.getString( getBoolean().get( element.isActive() ) ) ) );
> +
> +        table.addCell( getItalicCell( i18n.getString( "type" ) ) );
> +        table.addCell( getTextCell( i18n.getString( getType().get( element.getType() ) ) ) );
> +
> +        table.addCell( getItalicCell( i18n.getString( "aggregation_operator" ) ) );
> +        table.addCell( getTextCell( i18n.getString( getAggregationOperator().get( element.getAggregationOperator() ) ) ) );
> +
> +        table.addCell( getEmptyCell( 2, 30 ) );
>
>         return table;
>     }
> @@ -721,61 +408,59 @@
>      *        multiple pages or should be kept at one page.
>      * @param columnWidths The column widths.
>      */
> -    public static PdfPTable printIndicator( Indicator indicator, I18n i18n, ExpressionService expressionService,
> -        Font HEADER3, Font ITALIC, Font TEXT, boolean keepTogether, float... columnWidths )
> +    public static PdfPTable printIndicator( Indicator indicator, I18n i18n,
> +        ExpressionService expressionService, boolean keepTogether, float... columnWidths )
>     {
>         PdfPTable table = getPdfPTable( keepTogether, columnWidths );
>
> -        table.addCell( getHeader3Cell( indicator.getName(), 2, HEADER3 ) );
> -
> -        table.addCell( getCell( 2, 15 ) );
> -
> -        table.addCell( getItalicCell( i18n.getString( "short_name" ), 1, ITALIC ) );
> -        table.addCell( getTextCell( indicator.getShortName(), TEXT ) );
> +        table.addCell( getHeaderCell( indicator.getName(), 2 ) );
> +
> +        table.addCell( getEmptyCell( 2, 15 ) );
> +
> +        table.addCell( getItalicCell( i18n.getString( "short_name" ) ) );
> +        table.addCell( getTextCell( indicator.getShortName() ) );
>
>         if ( nullIfEmpty( indicator.getAlternativeName() ) != null )
>         {
> -            table.addCell( getItalicCell( i18n.getString( "alternative_name" ), 1, ITALIC ) );
> -            table.addCell( getTextCell( indicator.getAlternativeName(), TEXT ) );
> +            table.addCell( getItalicCell( i18n.getString( "alternative_name" ) ) );
> +            table.addCell( getTextCell( indicator.getAlternativeName() ) );
>         }
>         if ( nullIfEmpty( indicator.getCode() ) != null )
>         {
> -            table.addCell( getItalicCell( i18n.getString( "code" ), 1, ITALIC ) );
> +            table.addCell( getItalicCell( i18n.getString( "code" ) ) );
>             table.addCell( getTextCell( indicator.getCode() ) );
>         }
>         if ( nullIfEmpty( indicator.getDescription() ) != null )
>         {
> -            table.addCell( getItalicCell( i18n.getString( "description" ), 1, ITALIC ) );
> -            table.addCell( getTextCell( indicator.getDescription(), TEXT ) );
> +            table.addCell( getItalicCell( i18n.getString( "description" ) ) );
> +            table.addCell( getTextCell( indicator.getDescription() ) );
>         }
>
> -        table.addCell( getItalicCell( i18n.getString( "annualized" ), 1, ITALIC ) );
> -        table.addCell( getTextCell( i18n.getString( getBoolean().get( indicator.getAnnualized() ) ), TEXT ) );
> -
> -        table.addCell( getItalicCell( i18n.getString( "indicator_type" ), 1, ITALIC ) );
> -        table.addCell( getTextCell( indicator.getIndicatorType().getName(), TEXT ) );
> -
> -        table.addCell( getItalicCell( i18n.getString( "numerator_description" ), 1, ITALIC ) );
> -        table.addCell( getTextCell( indicator.getNumeratorDescription(), TEXT ) );
> -
> -        table.addCell( getItalicCell( i18n.getString( "numerator_aggregation_operator" ), 1, ITALIC ) );
> -        table.addCell( getTextCell( i18n.getString( getAggregationOperator().get(
> -            indicator.getNumeratorAggregationOperator() ) ), TEXT ) );
> -
> -        table.addCell( getItalicCell( i18n.getString( "numerator_formula" ), 1, ITALIC ) );
> -        table.addCell( getTextCell( expressionService.getExpressionDescription( indicator.getNumerator() ), TEXT ) );
> -
> -        table.addCell( getItalicCell( i18n.getString( "denominator_description" ), 1, ITALIC ) );
> -        table.addCell( getTextCell( indicator.getDenominatorDescription(), TEXT ) );
> -
> -        table.addCell( getItalicCell( i18n.getString( "denominator_aggregation_operator" ), 1, ITALIC ) );
> -        table.addCell( getTextCell( i18n.getString( getAggregationOperator().get(
> -            indicator.getDenominatorAggregationOperator() ) ), TEXT ) );
> -
> -        table.addCell( getItalicCell( i18n.getString( "denominator_formula" ), 1, ITALIC ) );
> -        table.addCell( getTextCell( expressionService.getExpressionDescription( indicator.getDenominator() ), TEXT ) );
> -
> -        table.addCell( getCell( 2, 30 ) );
> +        table.addCell( getItalicCell( i18n.getString( "annualized" ) ) );
> +        table.addCell( getTextCell( i18n.getString( getBoolean().get( indicator.getAnnualized() ) ) ) );
> +
> +        table.addCell( getItalicCell( i18n.getString( "indicator_type" ) ) );
> +        table.addCell( getTextCell( indicator.getIndicatorType().getName() ) );
> +
> +        table.addCell( getItalicCell( i18n.getString( "numerator_description" ) ) );
> +        table.addCell( getTextCell( indicator.getNumeratorDescription() ) );
> +
> +        table.addCell( getItalicCell( i18n.getString( "numerator_aggregation_operator" ) ) );
> +        table.addCell( getTextCell( i18n.getString( getAggregationOperator().get( indicator.getNumeratorAggregationOperator() ) ) ) );
> +
> +        table.addCell( getItalicCell( i18n.getString( "numerator_formula" ) ) );
> +        table.addCell( getTextCell( expressionService.getExpressionDescription( indicator.getNumerator() ) ) );
> +
> +        table.addCell( getItalicCell( i18n.getString( "denominator_description" ) ) );
> +        table.addCell( getTextCell( indicator.getDenominatorDescription() ) );
> +
> +        table.addCell( getItalicCell( i18n.getString( "denominator_aggregation_operator" ) ) );
> +        table.addCell( getTextCell( i18n.getString( getAggregationOperator().get( indicator.getDenominatorAggregationOperator() ) ) ) );
> +
> +        table.addCell( getItalicCell( i18n.getString( "denominator_formula" ) ) );
> +        table.addCell( getTextCell( expressionService.getExpressionDescription( indicator.getDenominator() ) ) );
> +
> +        table.addCell( getEmptyCell( 2, 30 ) );
>
>         return table;
>     }
> @@ -793,43 +478,42 @@
>      *        multiple pages or should be kept at one page.
>      * @param columnWidths The column widths.
>      */
> -    public static PdfPTable printOrganisationUnit( OrganisationUnit unit, I18n i18n, I18nFormat format, Font HEADER3,
> -        Font ITALIC, Font TEXT, boolean keepTogether, float... columnWidths )
> +    public static PdfPTable printOrganisationUnit( OrganisationUnit unit, I18n i18n, I18nFormat format, boolean keepTogether, float... columnWidths )
>     {
>         PdfPTable table = getPdfPTable( keepTogether, columnWidths );
>
> -        table.addCell( getHeader3Cell( unit.getName(), 2, HEADER3 ) );
> -
> -        table.addCell( getCell( 2, 15 ) );
> -
> -        table.addCell( getItalicCell( i18n.getString( "short_name" ), 1, ITALIC ) );
> -        table.addCell( getTextCell( unit.getShortName(), TEXT ) );
> +        table.addCell( getHeaderCell( unit.getName(), 2 ) );
> +
> +        table.addCell( getEmptyCell( 2, 15 ) );
> +
> +        table.addCell( getItalicCell( i18n.getString( "short_name" ) ) );
> +        table.addCell( getTextCell( unit.getShortName() ) );
>
>         if ( nullIfEmpty( unit.getCode() ) != null )
>         {
> -            table.addCell( getItalicCell( i18n.getString( "code" ), 1, ITALIC ) );
> +            table.addCell( getItalicCell( i18n.getString( "code" ) ) );
>             table.addCell( getTextCell( unit.getCode() ) );
>         }
>
> -        table.addCell( getItalicCell( i18n.getString( "opening_date" ), 1, ITALIC ) );
> +        table.addCell( getItalicCell( i18n.getString( "opening_date" ) ) );
>         table.addCell( getTextCell( unit.getOpeningDate() != null ? format.formatDate( unit.getOpeningDate() ) : "" ) );
>
> -        if ( nullIfEmpty( unit.getClosedDate().toString() ) != null )
> +        if ( unit.getClosedDate() != null )
>         {
> -            table.addCell( getItalicCell( i18n.getString( "closed_date" ), 1, ITALIC ) );
> +            table.addCell( getItalicCell( i18n.getString( "closed_date" ) ) );
>             table.addCell( getTextCell( unit.getClosedDate() != null ? format.formatDate( unit.getClosedDate() ) : "" ) );
>         }
>
> -        table.addCell( getItalicCell( i18n.getString( "active" ), 1, ITALIC ) );
> -        table.addCell( getTextCell( i18n.getString( getBoolean().get( unit.isActive() ) ), TEXT ) );
> +        table.addCell( getItalicCell( i18n.getString( "active" ) ) );
> +        table.addCell( getTextCell( i18n.getString( getBoolean().get( unit.isActive() ) ) ) );
>
>         if ( nullIfEmpty( unit.getComment() ) != null )
>         {
> -            table.addCell( getItalicCell( i18n.getString( "comment" ), 1, ITALIC ) );
> -            table.addCell( getTextCell( unit.getComment(), TEXT ) );
> +            table.addCell( getItalicCell( i18n.getString( "comment" ) ) );
> +            table.addCell( getTextCell( unit.getComment() ) );
>         }
>
> -        table.addCell( getCell( 2, 30 ) );
> +        table.addCell( getEmptyCell( 2, 30 ) );
>
>         return table;
>     }
> @@ -847,46 +531,45 @@
>      *        multiple pages or should be kept at one page.
>      * @param columnWidths The column widths.
>      */
> -    public static PdfPTable printValidationRule( ValidationRule validationRule, I18n i18n,
> -        ExpressionService expressionService, Font HEADER3, Font ITALIC, Font TEXT, boolean keepTogether,
> -        float... columnWidths )
> +    public static PdfPTable printValidationRule( ValidationRule validationRule, I18n i18n,
> +        ExpressionService expressionService, boolean keepTogether, float... columnWidths )
>     {
>         PdfPTable table = getPdfPTable( keepTogether, columnWidths );
>
> -        table.addCell( getHeader3Cell( validationRule.getName(), 2, HEADER3 ) );
> +        table.addCell( getHeaderCell( validationRule.getName(), 2 ) );
>
> -        table.addCell( getCell( 2, 15 ) );
> +        table.addCell( getEmptyCell( 2, 15 ) );
>
>         if ( nullIfEmpty( validationRule.getDescription() ) != null )
>         {
> -            table.addCell( getItalicCell( i18n.getString( "description" ), 1, ITALIC ) );
> -            table.addCell( getTextCell( validationRule.getDescription(), TEXT ) );
> +            table.addCell( getItalicCell( i18n.getString( "description" ) ) );
> +            table.addCell( getTextCell( validationRule.getDescription() ) );
>         }
>
> -        table.addCell( getItalicCell( i18n.getString( "type" ), 1, ITALIC ) );
> -        table.addCell( getTextCell( i18n.getString( validationRule.getType() ), TEXT ) );
> -
> -        table.addCell( getItalicCell( i18n.getString( "operator" ), 1, ITALIC ) );
> -        table.addCell( getTextCell( i18n.getString( validationRule.getOperator() ), TEXT ) );
> -
> -        table.addCell( getItalicCell( i18n.getString( "left_side_of_expression" ), 1, ITALIC ) );
> +        table.addCell( getItalicCell( i18n.getString( "type" ) ) );
> +        table.addCell( getTextCell( i18n.getString( validationRule.getType() ) ) );
> +
> +        table.addCell( getItalicCell( i18n.getString( "operator" ) ) );
> +        table.addCell( getTextCell( i18n.getString( validationRule.getOperator() ) ) );
> +
> +        table.addCell( getItalicCell( i18n.getString( "left_side_of_expression" ) ) );
>         table.addCell( getTextCell( expressionService.getExpressionDescription( validationRule.getLeftSide()
> -            .getExpression() ), TEXT ) );
> -
> -        table.addCell( getItalicCell( i18n.getString( "left_side_description" ), 1, ITALIC ) );
> -        table.addCell( getTextCell( validationRule.getLeftSide().getDescription(), TEXT ) );
> -
> -        table.addCell( getItalicCell( i18n.getString( "right_side_of_expression" ), 1, ITALIC ) );
> +            .getExpression() ) ) );
> +
> +        table.addCell( getItalicCell( i18n.getString( "left_side_description" ) ) );
> +        table.addCell( getTextCell( validationRule.getLeftSide().getDescription() ) );
> +
> +        table.addCell( getItalicCell( i18n.getString( "right_side_of_expression" ) ) );
>         table.addCell( getTextCell( expressionService.getExpressionDescription( validationRule.getRightSide()
> -            .getExpression() ), TEXT ) );
> -
> -        table.addCell( getItalicCell( i18n.getString( "right_side_description" ), 1, ITALIC ) );
> -        table.addCell( getTextCell( validationRule.getRightSide().getDescription(), TEXT ) );
> -
> -        table.addCell( getItalicCell( i18n.getString( "period_type" ), 1, ITALIC ) );
> -        table.addCell( getTextCell( i18n.getString( validationRule.getPeriodType().getName() ), TEXT ) );
> -
> -        table.addCell( getCell( 2, 30 ) );
> +            .getExpression() ) ) );
> +
> +        table.addCell( getItalicCell( i18n.getString( "right_side_description" ) ) );
> +        table.addCell( getTextCell( validationRule.getRightSide().getDescription() ) );
> +
> +        table.addCell( getItalicCell( i18n.getString( "period_type" ) ) );
> +        table.addCell( getTextCell( i18n.getString( validationRule.getPeriodType().getName() ) ) );
> +
> +        table.addCell( getEmptyCell( 2, 30 ) );
>
>         return table;
>     }
> @@ -920,5 +603,4 @@
>         map.put( DataElement.AGGREGATION_OPERATOR_COUNT, "count" );
>         return map;
>     }
> -
>  }
>
> === removed file 'dhis-2/dhis-support/dhis-support-system/src/main/resources/arial.ttf'
> Binary files dhis-2/dhis-support/dhis-support-system/src/main/resources/arial.ttf       2010-06-03 07:44:47 +0000 and dhis-2/dhis-support/dhis-support-system/src/main/resources/arial.ttf      1970-01-01 00:00:00 +0000 differ
> === added file 'dhis-2/dhis-support/dhis-support-system/src/main/resources/ubuntu-bold.ttf'
> Binary files dhis-2/dhis-support/dhis-support-system/src/main/resources/ubuntu-bold.ttf 1970-01-01 00:00:00 +0000 and dhis-2/dhis-support/dhis-support-system/src/main/resources/ubuntu-bold.ttf        2010-12-26 21:40:52 +0000 differ
> === added file 'dhis-2/dhis-support/dhis-support-system/src/main/resources/ubuntu-font-licence-1.0.txt'
> --- dhis-2/dhis-support/dhis-support-system/src/main/resources/ubuntu-font-licence-1.0.txt      1970-01-01 00:00:00 +0000
> +++ dhis-2/dhis-support/dhis-support-system/src/main/resources/ubuntu-font-licence-1.0.txt      2010-12-26 21:40:52 +0000
> @@ -0,0 +1,96 @@
> +-------------------------------
> +UBUNTU FONT LICENCE Version 1.0
> +-------------------------------
> +
> +PREAMBLE
> +This licence allows the licensed fonts to be used, studied, modified and
> +redistributed freely. The fonts, including any derivative works, can be
> +bundled, embedded, and redistributed provided the terms of this licence
> +are met. The fonts and derivatives, however, cannot be released under
> +any other licence. The requirement for fonts to remain under this
> +licence does not require any document created using the fonts or their
> +derivatives to be published under this licence, as long as the primary
> +purpose of the document is not to be a vehicle for the distribution of
> +the fonts.
> +
> +DEFINITIONS
> +"Font Software" refers to the set of files released by the Copyright
> +Holder(s) under this licence and clearly marked as such. This may
> +include source files, build scripts and documentation.
> +
> +"Original Version" refers to the collection of Font Software components
> +as received under this licence.
> +
> +"Modified Version" refers to any derivative made by adding to, deleting,
> +or substituting -- in part or in whole -- any of the components of the
> +Original Version, by changing formats or by porting the Font Software to
> +a new environment.
> +
> +"Copyright Holder(s)" refers to all individuals and companies who have a
> +copyright ownership of the Font Software.
> +
> +"Substantially Changed" refers to Modified Versions which can be easily
> +identified as dissimilar to the Font Software by users of the Font
> +Software comparing the Original Version with the Modified Version.
> +
> +To "Propagate" a work means to do anything with it that, without
> +permission, would make you directly or secondarily liable for
> +infringement under applicable copyright law, except executing it on a
> +computer or modifying a private copy. Propagation includes copying,
> +distribution (with or without modification and with or without charging
> +a redistribution fee), making available to the public, and in some
> +countries other activities as well.
> +
> +PERMISSION & CONDITIONS
> +This licence does not grant any rights under trademark law and all such
> +rights are reserved.
> +
> +Permission is hereby granted, free of charge, to any person obtaining a
> +copy of the Font Software, to propagate the Font Software, subject to
> +the below conditions:
> +
> +1) Each copy of the Font Software must contain the above copyright
> +notice and this licence. These can be included either as stand-alone
> +text files, human-readable headers or in the appropriate machine-
> +readable metadata fields within text or binary files as long as those
> +fields can be easily viewed by the user.
> +
> +2) The font name complies with the following:
> +(a) The Original Version must retain its name, unmodified.
> +(b) Modified Versions which are Substantially Changed must be renamed to
> +avoid use of the name of the Original Version or similar names entirely.
> +(c) Modified Versions which are not Substantially Changed must be
> +renamed to both (i) retain the name of the Original Version and (ii) add
> +additional naming elements to distinguish the Modified Version from the
> +Original Version. The name of such Modified Versions must be the name of
> +the Original Version, with "derivative X" where X represents the name of
> +the new work, appended to that name.
> +
> +3) The name(s) of the Copyright Holder(s) and any contributor to the
> +Font Software shall not be used to promote, endorse or advertise any
> +Modified Version, except (i) as required by this licence, (ii) to
> +acknowledge the contribution(s) of the Copyright Holder(s) or (iii) with
> +their explicit written permission.
> +
> +4) The Font Software, modified or unmodified, in part or in whole, must
> +be distributed entirely under this licence, and must not be distributed
> +under any other licence. The requirement for fonts to remain under this
> +licence does not affect any document created using the Font Software,
> +except any version of the Font Software extracted from a document
> +created using the Font Software may only be distributed under this
> +licence.
> +
> +TERMINATION
> +This licence becomes null and void if any of the above conditions are
> +not met.
> +
> +DISCLAIMER
> +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
> +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
> +COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
> +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
> +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
> +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER
> +DEALINGS IN THE FONT SOFTWARE.
>
> === added file 'dhis-2/dhis-support/dhis-support-system/src/main/resources/ubuntu-italic.ttf'
> Binary files dhis-2/dhis-support/dhis-support-system/src/main/resources/ubuntu-italic.ttf       1970-01-01 00:00:00 +0000 and dhis-2/dhis-support/dhis-support-system/src/main/resources/ubuntu-italic.ttf      2010-12-26 21:40:52 +0000 differ
> === added file 'dhis-2/dhis-support/dhis-support-system/src/main/resources/ubuntu.ttf'
> Binary files dhis-2/dhis-support/dhis-support-system/src/main/resources/ubuntu.ttf      1970-01-01 00:00:00 +0000 and dhis-2/dhis-support/dhis-support-system/src/main/resources/ubuntu.ttf     2010-12-26 21:40:52 +0000 differ
> === modified file 'dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/result/GridPdfResult.java'
> --- dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/result/GridPdfResult.java      2010-12-26 18:47:16 +0000
> +++ dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/result/GridPdfResult.java      2010-12-26 21:40:52 +0000
> @@ -102,15 +102,15 @@
>
>         table.setHeaderRows( 1 );
>
> -        table.addCell( getHeader2Cell( grid.getTitle(), grid.getWidth() ) );
> -        table.addCell( getCell( grid.getWidth(), 8 ) );
> +        table.addCell( getTitleCell( grid.getTitle(), grid.getWidth() ) );
> +        table.addCell( getEmptyCell( grid.getWidth(), 20 ) );
>
>         for ( String header : grid.getHeaders() )
>         {
> -            table.addCell( getItalicCell( header, 1 ) );
> +            table.addCell( getItalicCell( header ) );
>         }
>
> -        table.addCell( getCell( grid.getWidth(), 8 ) );
> +        table.addCell( getEmptyCell( grid.getWidth(), 8 ) );
>
>         for ( List<String> row : grid.getRows() )
>         {
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~dhis2-devs
> Post to     : dhis2-devs@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~dhis2-devs
> More help   : https://help.launchpad.net/ListHelp
>
>



References