Converter Txt em Pdf com Ireport
Ola boa noite eu tenho um arquivo txt com varias linhas e gostaria de converte-lo para um arquivo pdf usando o ireport
eu abro o arquivo, leio o txt intero armazeno dentro um array list porem quando é na hora do ireport gera o arquivo ele gera em branco, o array list ele contem dados que
e o meu report
esta somente com a band detail com o componente List usando a expresao $F
e passo da seguinte forma o ArrayList
eu abro o arquivo, leio o txt intero armazeno dentro um array list porem quando é na hora do ireport gera o arquivo ele gera em branco, o array list ele contem dados que
List<String> listaTexto = new ArrayList<>();
BufferedReader bufferedReader = new BufferedReader(fileReader); //aqui ele vai receber o arquivo
String linha = "";
int i = 1;
try {
while ((linha = bufferedReader.readLine()) != null) {
listaTexto.add(linha);
i++;
}
} catch (IOException e1) {
System.out.println("Nao consegui ler o arquivo " + e1.getMessage());
e1.printStackTrace();
}
e o meu report
esta somente com a band detail com o componente List usando a expresao $F
<?xml version="1.0" encoding="UTF-8"?> <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Rel 80colunas" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="39f06f89-39fc-4794-8a1b-a29bcf65609c"> <property name="ireport.zoom" value="1.0"/> <property name="ireport.x" value="0"/> <property name="ireport.y" value="0"/> <subDataset name="dataset1" uuid="9cd118e1-78c2-4476-bc86-2a6397030f75"> <field name="_THIS" class="java.lang.String"/> </subDataset> <parameter name="MinhaLista" class="java.util.List"/> <detail> <band height="27" splitType="Stretch"> <componentElement> <reportElement x="0" y="0" width="555" height="27" uuid="87c45759-a2c4-42e2-8f6c-568badf6b92f"/> <jr:list xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" printOrder="Vertical"> <datasetRun subDataset="dataset1" uuid="a6662c01-6e19-448b-8f45-2ae4038c44a6"> <parametersMapExpression><![CDATA[$P]]></parametersMapExpression> <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P)]]></dataSourceExpression> </datasetRun> <jr:listContents height="27" width="555"> <textField> <reportElement x="0" y="0" width="100" height="20" uuid="968cadf1-05d8-4037-9461-8c747cf00090"/> <textFieldExpression><![CDATA[$F]]></textFieldExpression> </textField> </jr:listContents> </jr:list> </componentElement> </band> </detail> </jasperReport>
e passo da seguinte forma o ArrayList
Map parameters = new HashMap();
parameters.put("MinhaLista", listaTexto);
try {
impressao = JasperFillManager.fillReport(layoutImpressao, null, new JRBeanCollectionDataSource(listaTexto));
} catch (JRException ex) {
Logger.getLogger(PrincipalJorcamento.class.getName()).log(Level.SEVERE, null, ex);
}
Alberto Leal
Curtidas 0
Respostas
Ronaldo Lanhellas
18/11/2014
Em nenhum omento estou vendo vocÊ passar a variável "parameters" para o fillReport().
Tente assim:
Tente assim:
impressao = JasperFillManager.fillReport(layoutImpressao, parameters, new JRBeanCollectionDataSource(listaTexto));
GOSTEI 0
Alberto Leal
18/11/2014
Ops.. detalhe
inclui o parametro porem ele da uma execption
Exception in thread "main" java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.util.Map
inclui o parametro porem ele da uma execption
Exception in thread "main" java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.util.Map
GOSTEI 0
Alberto Leal
18/11/2014
Resolvido:
jrxml fica assim:
e o codigo java assim:
jrxml fica assim:
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Relatorio132Colunas" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="3e4ba309-c498-4e79-894a-7dc160ac7980">
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<subDataset name="dataset1" uuid="c237071d-dee0-40ab-93f7-1582ae09e0e7">
<field name="_THIS" class="java.lang.String"/>
</subDataset>
<parameter name="minhalista" class="java.util.List">
<defaultValueExpression><![CDATA[Arrays.asList("Jose Manuel Sánchez", "Alfonso Blanco", "Angel García", "Rubén Aguilera")]]></defaultValueExpression>
</parameter>
<background>
<band splitType="Stretch"/>
</background>
<detail>
<band height="16" splitType="Stretch">
<componentElement>
<reportElement x="0" y="0" width="400" height="16" uuid="a39b414d-307b-4530-a724-756f9ecebd28"/>
<jr:list xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" printOrder="Vertical">
<datasetRun subDataset="dataset1" uuid="22af81cb-5d7f-4610-8650-a76bc2c4d055">
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P)]]></dataSourceExpression>
</datasetRun>
<jr:listContents height="15" width="400">
<textField isStretchWithOverflow="true">
<reportElement x="0" y="1" width="400" height="13" uuid="9e6fde46-3d0b-472d-a820-1783f897b332"/>
<textFieldExpression><![CDATA[$F]]></textFieldExpression>
</textField>
</jr:listContents>
</jr:list>
</componentElement>
</band>
</detail>
</jasperReport>
e o codigo java assim:
final Map<String,Object> parameters = new HashMap<String,Object>();
parameters.put("minhalista", listaTexto);
try {
impressao = JasperFillManager.fillReport(layoutImpressao, parameters, new JREmptyDataSource());
} catch (JRException ex) {
Logger.getLogger(PrincipalJorcamento.class.getName()).log(Level.SEVERE, null, ex);
}GOSTEI 0
Ronaldo Lanhellas
18/11/2014
Este erro ocorre antes de executar o relatório ou durante a execução do mesmo ? Verifica se você está passando um objeto do tipo MAP<String,Object> e não um List ou ArrayList.
GOSTEI 0