// TODO
Sebelum memilih, kita harus tau konsep dasar dari library reporting
CSV Text Based
asdf
Word API
dfd
// TODO
Sebelum memilih, kita harus tau konsep dasar dari library reporting
asdf
dfd
Aspose.word merupakan library untuk mengedit file microsoft office .docx. Sebenernya microsoft tidak mengeluarkan dokumentasi resmi API microsoft word. Dan file microsoft word dibuat sesuah mungkin untuk di edit (obfuscate). Makanya ada library open source bernama Apache POI (Poor Obfuscation Implementation) untuk mengedit file .docx (seperti Aspose.Word)
// TODO
com.aspose.words.List docList = doc.getLists().get(0);
docList.getListLevels().get(2).setNumberStyle(NumberStyle.ARABIC);
docList.getListLevels().get(2).setNumberFormat("\u0002)");
if(paragraph.getListFormat().getListLevelNumber() == 0) {
paragraph.getParagraphFormat().setFirstLineIndent(FIRST_LINE_INDENT_PT);
paragraph.getParagraphFormat().setLeftIndent(LEFT_INDENT_PT);
}
JasperReport adalah library reporting untuk membuat file docx, pdf, csv, xls. Berbeda dengan aspose/poi yang langsung berinteraksi dengan API microsoft office. Jasper menggunakan engine sendiri.
// TODO
Jasper support html tag di textfield nya. Namun tidak semua tag di support. dan bold dan italic harus di ubah dulu tag nya.
public static String convertHtmlTagToJasper(String text) {
String newText = text;
newText = newText.replace("<strong>", "<b>");
newText = newText.replace("</strong>", "</b>");
newText = newText.replace("<em>", "<i>");
newText = newText.replace("</em>", "</i>");
return newText;
}
Menggunakan parameter dengan type ArrayList<String>
<subDataset name="tableDataset">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
<parameter name="tableDatasetParam" class="java.util.ArrayList" nestedType="java.lang.String"/>
</subDataset>
<jr:table>
<datasetRun subDataset="tableDataset">
<datasetParameter name="tableDatasetParam">
<datasetParameterExpression><![CDATA[$P{kepadaArray}]]></datasetParameterExpression>
</datasetParameter>
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.JREmptyDataSource($P{tableArray}.size())]]></dataSourceExpression>
</datasetRun>
<jr:column>
<property/>
<jr:detailCell>
<property/>
<textField>
<reportElement/>
<textFieldExpression><![CDATA[$P{tableDatasetArray}.get($V{REPORT_COUNT} - 1)]]></textFieldExpression>
</textField>
</jr:detailCell>
</jr:column>
</jr:table>