Converter Txt em Pdf com Ireport

Java

18/11/2014

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


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

Alberto Leal

Curtidas 0

Respostas

Ronaldo Lanhellas

Ronaldo Lanhellas

18/11/2014

Em nenhum omento estou vendo vocÊ passar a variável "parameters" para o fillReport().
Tente assim:

impressao = JasperFillManager.fillReport(layoutImpressao, parameters, new JRBeanCollectionDataSource(listaTexto));
GOSTEI 0
Alberto Leal

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
GOSTEI 0
Alberto Leal

Alberto Leal

18/11/2014

Resolvido:
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

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
POSTAR