Hi buddy ,thanks for the prompt reply,,
I have downloaded the zip for arial unicode font jar ,and has included both arial unicode .jar and itextasian.jar in the buildpath of my web folder .but as I am using
Adhoc Reports ,so do i need to make any additional changes in templates.java file .
Below is the code for the file:-
import static net.sf.dynamicreports.report.builder.DynamicReports.*;
import java.awt.Color;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import com.lowagie.text.Font;
import net.sf.dynamicreports.report.base.expression.AbstractValueFormatter;
import net.sf.dynamicreports.report.builder.HyperLinkBuilder;
import net.sf.dynamicreports.report.builder.ReportTemplateBuilder;
import net.sf.dynamicreports.report.builder.component.ComponentBuilder;
import net.sf.dynamicreports.report.builder.datatype.BigDecimalType;
import net.sf.dynamicreports.report.builder.style.StyleBuilder;
import net.sf.dynamicreports.report.builder.tableofcontents.TableOfContentsCustomizerBuilder;
import net.sf.dynamicreports.report.constant.HorizontalAlignment;
import net.sf.dynamicreports.report.constant.PageOrientation;
import net.sf.dynamicreports.report.constant.PageType;
import net.sf.dynamicreports.report.constant.StretchType;
import net.sf.dynamicreports.report.constant.VerticalAlignment;
import net.sf.dynamicreports.report.definition.ReportParameters;
/**
* @author Ricardo Mariaca (
[email protected])
*/
public class Templates {
public static final StyleBuilder rootStyle;
public static final StyleBuilder boldStyle;
public static final StyleBuilder italicStyle;
public static final StyleBuilder boldCenteredStyle;
public static final StyleBuilder bold12CenteredStyle;
public static final StyleBuilder bold18CenteredStyle;
public static final StyleBuilder bold22CenteredStyle;
public static final StyleBuilder columnStyle;
public static final StyleBuilder columnTitleStyle;
public static final StyleBuilder groupStyle;
public static final StyleBuilder subtotalStyle;
public static final StyleBuilder aman;
public static final ReportTemplateBuilder reportTemplate1;
public static final ReportTemplateBuilder reportTemplate2;
public static final ReportTemplateBuilder reportTemplate3;
public static final CurrencyType currencyType;
public static final ComponentBuilder<?, ?> dynamicReportsComponent;
public static final ComponentBuilder<?, ?> footerComponent;
static {
rootStyle = stl.style().setPadding(1);
boldStyle = stl.style(rootStyle).bold();
italicStyle = stl.style(rootStyle).italic();
boldCenteredStyle = stl.style(boldStyle).setAlignment(
HorizontalAlignment.CENTER, VerticalAlignment.MIDDLE);
bold12CenteredStyle = stl.style(boldCenteredStyle).setFontSize(12);
bold18CenteredStyle = stl.style(boldCenteredStyle).setFontSize(18);
bold22CenteredStyle = stl.style(boldCenteredStyle).setFontSize(22);
columnStyle = stl.style(rootStyle)
.setVerticalAlignment(VerticalAlignment.JUSTIFIED)
.setBorder(stl.pen1Point())
.setHorizontalAlignment(HorizontalAlignment.CENTER);// to set
// the
// alignment
// of the
// data
columnTitleStyle = stl.style(columnStyle).setBorder(stl.pen1Point())
.setHorizontalAlignment(HorizontalAlignment.CENTER)
.setBackgroundColor(Color.LIGHT_GRAY).bold();
groupStyle = stl.style(boldStyle).setHorizontalAlignment(
HorizontalAlignment.LEFT);
subtotalStyle = stl.style(boldStyle).setTopBorder(stl.pen1Point());
aman = stl.style().setBackgroundColor(Color.WHITE);
StyleBuilder crosstabGroupStyle = stl.style(columnTitleStyle);
StyleBuilder crosstabGroupTotalStyle = stl.style(columnTitleStyle)
.setBackgroundColor(new Color(170, 170, 170));
StyleBuilder crosstabGrandTotalStyle = stl.style(columnTitleStyle)
.setBackgroundColor(new Color(140, 140, 140));
StyleBuilder crosstabCellStyle = stl.style(columnStyle).setBorder(
stl.pen1Point());
TableOfContentsCustomizerBuilder tableOfContentsCustomizer = tableOfContentsCustomizer()
.setHeadingStyle(0, stl.style(rootStyle).bold());
reportTemplate1 = template().setLocale(Locale.ENGLISH)
.setColumnStyle(columnStyle)
.setColumnTitleStyle(columnTitleStyle)
.setGroupStyle(groupStyle).setGroupTitleStyle(groupStyle)
.setSubtotalStyle(subtotalStyle).highlightDetailEvenRows()
.crosstabHighlightEvenRows()
.setCrosstabGroupStyle(crosstabGroupStyle)
.setCrosstabGroupTotalStyle(crosstabGroupTotalStyle)
.setCrosstabGrandTotalStyle(crosstabGrandTotalStyle)
.setCrosstabCellStyle(crosstabCellStyle)
.setTableOfContentsCustomizer(tableOfContentsCustomizer);
reportTemplate2 = template().setLocale(Locale.ENGLISH)
.setColumnStyle(columnStyle)
.setColumnTitleStyle(columnTitleStyle)
.setGroupStyle(groupStyle).setGroupTitleStyle(groupStyle)
.setSubtotalStyle(subtotalStyle).highlightDetailEvenRows()
.setPageFormat(PageType.A1, PageOrientation.LANDSCAPE)
.crosstabHighlightEvenRows()
.setCrosstabGroupStyle(crosstabGroupStyle)
.setCrosstabGroupTotalStyle(crosstabGroupTotalStyle)
.setCrosstabGrandTotalStyle(crosstabGrandTotalStyle)
.setCrosstabCellStyle(crosstabCellStyle)
.setTableOfContentsCustomizer(tableOfContentsCustomizer);
reportTemplate3 = template().setLocale(Locale.ENGLISH)
.setColumnStyle(columnStyle)
.setColumnTitleStyle(columnTitleStyle)
.setGroupStyle(groupStyle).setGroupTitleStyle(groupStyle)
.setSubtotalStyle(subtotalStyle).highlightDetailEvenRows()
.setPageFormat(PageType.A1, PageOrientation.PORTRAIT)
.crosstabHighlightEvenRows()
.setCrosstabGroupStyle(crosstabGroupStyle)
.setCrosstabGroupTotalStyle(crosstabGroupTotalStyle)
.setCrosstabGrandTotalStyle(crosstabGrandTotalStyle)
.setCrosstabCellStyle(crosstabCellStyle)
.setTableOfContentsCustomizer(tableOfContentsCustomizer);
currencyType = new CurrencyType();
dynamicReportsComponent = cmp.horizontalList(cmp
.image(Templates.class
.getResource("/MDMWAR.war/images/imdm.png"))
.setFixedDimension(40, 50)
.setHorizontalAlignment(HorizontalAlignment.LEFT)
.setFixedWidth(40));
footerComponent = cmp.pageXofY().setStyle(
stl.style(boldCenteredStyle).setTopBorder(stl.pen1Point())
.setHorizontalAlignment(HorizontalAlignment.CENTER));
}
/**
* Creates custom component which is possible to add to any report band
* component
*/
public static ComponentBuilder<?, ?> createTitleComponent(String label,String username,String Currentdate,String Beforedate) {
SimpleDateFormat sim = new SimpleDateFormat(
"dd-MMM-yy hh:mm:ss aa");
return cmp
.horizontalList()
.add(dynamicReportsComponent)
.newRow()
.add(cmp.text(label).setStyle(bold18CenteredStyle)
.setHorizontalAlignment(HorizontalAlignment.LEFT))
.newRow()
.add(cmp.horizontalList(cmp.text(
"Report Generated On : " +sim.format(new Date()) +" by "+username+" for the period "+Beforedate+" to "+Currentdate+"").setStyle(
stl.style(boldCenteredStyle)
.setTopBorder(stl.pen1Point())
.setHorizontalAlignment(
HorizontalAlignment.LEFT)))).newRow()
;
}
public static CurrencyValueFormatter createCurrencyValueFormatter(
String label) {
return new CurrencyValueFormatter(label);
}
public static class CurrencyType extends BigDecimalType {
private static final long serialVersionUID = 1L;
@Override
public String getPattern() {
return "$ #,###.00";
}
}
private static class CurrencyValueFormatter extends
AbstractValueFormatter<String, Number> {
private static final long serialVersionUID = 1L;
private String label;
public CurrencyValueFormatter(String label) {
this.label = label;
}
@Override
public String format(Number value, ReportParameters reportParameters) {
return label
+ currencyType.valueToString(value,
reportParameters.getLocale());
}
}
}