Prueba estos ejemplos:
https://wiki.scn.sap.com/wiki/display/BOBJ/Java+%28Crystal+Reports+for+Eclipse%29+SDK
Avalados por :
Pregunta: ¿Puedo exportar un informe de Crystal Report a PDF utilizando un programa independiente de Java (sin utilizar una aplicación web o un servidor)?
Requisito: Quiero exportar un informe de Crystal Report a un archivo PDF utilizando una aplicación independiente de Java. Puedo hacerlo utilizando SAP Crystal Report 2013 en mi escritorio. Para Java, he descargado la biblioteca crjava-runtime_12.2.220 y estoy utilizando el siguiente código.
import com.crystaldecisions.reports.sdk.*;
import com.crystaldecisions.sdk.occa.report.lib.*;
import com.crystaldecisions.sdk.occa.report.exportoptions.*;
//Importaciones de Java
import java.io.*;
public class JRCExportReport {
static final String REPORT_NAME = "C:/abc.rpt";
static final String EXPORT_FILE = "C:/abc.pdf";
public static void main(String[] args) {
try {
//Abrir informe
ReportClientDocument reportClientDoc = new ReportClientDocument();
reportClientDoc.open(REPORT_NAME, ReportExportFormat._PDF);
//NOTA: Si se requieren parámetros o credenciales de inicio de sesión de la base de datos, deben establecerse antes.
//Llamando al método export de PrintOutputController.
//Exportar informe y obtener un flujo de entrada que se puede escribir en el disco.
//Consulte la Guía del desarrollador de componentes de informes de Java para obtener más información sobre las enumeraciones de formatos de exportación admitidos posibles con el JRC.
ByteArrayInputStream byteArrayInputStream = (ByteArrayInputStream) reportClientDoc.getPrintOutputController().export(ReportExportFormat.PDF);
//Cerrar informe.
reportClientDoc.close();
//Usar las bibliotecas de E/S de Java para escribir el contenido exportado en el sistema de archivos.
byte byteArray[] = new byte[byteArrayInputStream.available()];
//Crear un nuevo archivo que contendrá el resultado exportado.
File file = new File(EXPORT_FILE);
FileOutputStream fileOutputStream = new FileOutputStream(file);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(byteArrayInputStream.available());
int x = byteArrayInputStream.read(byteArray, 0, byteArrayInputStream.available());
byteArrayOutputStream.write(byteArray, 0, x);
byteArrayOutputStream.writeTo(fileOutputStream);
//Cerrar flujos.
byteArrayInputStream.close();
byteArrayOutputStream.close();
fileOutputStream.close();
System.out.println("Informe exportado correctamente a " + EXPORT_FILE);
} catch (ReportSDKException ex) {
ex.printStackTrace();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
Obteniendo la siguiente excepción en la línea (reportClientDoc.open(REPORT_NAME, ReportExportFormat._PDF)):
log4j: ADVERTENCIA No se pudieron encontrar apéndices para el registrador (com.crystaldecisions.reports.common.engine.config).
log4j: ADVERTENCIA Por favor inicialice correctamente el sistema log4j.
com.crystaldecisions.sdk.occa.report.lib.ReportSDKException: Índice: 0, Tamaño: 0 ---- Código de error: -2147467259 Nombre del código de error: fallido
en com.businessobjects.reports.sdk.JRCCommunicationAdapter.Prueba estos ejemplos:
https://wiki.scn.sap.com/wiki/display/BOBJ/Java+%28Crystal+Reports+for+Eclipse%29+SDK
danielleevandenbosch - En realidad, esta sigue siendo una pregunta abierta para mí.
Estoy teniendo el mismo problema exacto. ¿Pudiste resolverlo alguna vez?
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute