Este artículo muestra como descargar reportes en formato PDF desde Quick Report utilizando diferentes lenguajes de programación y plataformas. Puedes elegir entre JavaScript, C#, PHP y más. para este ejemplo el reporte no debe recibir ningún parámetro, ni contener origen de datos (DataSource), solo el diseño del reporte.
Para descargar un reporte en formato PDF, Quick Report proporciona un endpoint REST que puedes utilizar en tu aplicación. A continuación, se presentan ejemplos de cómo realizar esta tarea en diferentes lenguajes y plataformas.
Utiliza JavaScript para descargar el reporte en formato PDF:
// Define los parámetros necesarios
const apiKey = "yourApiKeyHere";
const reportName = "yourReportNameHere"; //el nombre no debe contener espacios, ni la extensión .rexp
// Construye la URL del endpoint
// Cambia GetBasicReportPDF por GetBasicReportView para obtener el reporte en vista previa
const url = `https://design.quickreport.net/report/GetBasicReportPDF?apiKey=${encodeURIComponent(apiKey)}&reportName=${encodeURIComponent(reportName)}`;
// Realiza la solicitud GET
fetch(url, {
method: "GET"
})
.then(response => {
if (!response.ok) {
throw new Error("Error al obtener el reporte PDF");
}
return response.blob(); // Obtén el archivo PDF como un blob
})
.then(blob => {
// Crea un enlace para descargar el PDF
const url = window.URL.createObjectURL(blob);
const a = document.createElement("a");
a.href = url;
a.download = `${reportName}.pdf`; // Nombre del archivo descargado
document.body.appendChild(a);
a.click();
a.remove();
window.URL.revokeObjectURL(url); // Limpia el objeto URL
})
.catch(error => {
console.error("Error:", error);
});
Conecta Quick Report con tu API para obtener datos desde tu backend de aplicación en .NET:
[HttpGet]
public async Task CallGetReportPDF()
{
// Define los parámetros necesarios
string apiKey = "yourApiKeyHere";
string reportName = "yourReportNameHere"; //el nombre no debe contener espacios, ni la extensión .rexp
// Construye la URL del endpoint
string baseUrl = "https://design.quickreport.net"; //
string url = $"{baseUrl}/Report/GetBasicReportPDF?apiKey={apiKey}&reportName={reportName}";
// Crea un cliente HttpClient
var client = _httpClientFactory.CreateClient();
try
{
// Realiza la solicitud GET
var response = await client.GetAsync(url);
if (response.IsSuccessStatusCode)
{
// Obtén el contenido como un archivo PDF
var pdfStream = await response.Content.ReadAsStreamAsync();
// Devuelve el archivo PDF al cliente
return new FileStreamResult(pdfStream, "application/pdf")
{
FileDownloadName = $"{reportName}.pdf"
};
}
else
{
return BadRequest($"Error al obtener el reporte: {response.StatusCode}");
}
}
catch (Exception ex)
{
return StatusCode(500, $"Error interno: {ex.Message}");
}
}
Utiliza PHP para descargar el reporte en formato PDF:
// Define la URL del endpoint y los parámetros
$baseUrl = "https://design.quickreport.net"; // Cambia esto por la URL base de tu aplicación
$apiKey = "yourApiKeyHere"; // Reemplaza con tu API Key
$reportName = "yourReportNameHere"; // Reemplaza con el nombre del reporte, el nombre no debe contener espacios, ni la extensión .rexp
// Construye la URL completa
$url = $baseUrl . "/Report/GetBasicReportPDF?apiKey=" . urlencode($apiKey) . "&reportName=" . urlencode($reportName);
// Inicializa cURL
$ch = curl_init();
// Configura las opciones de cURL
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
// Ejecuta la solicitud
$response = curl_exec($ch);
// Verifica si hubo errores
if (curl_errno($ch)) {
echo "Error: " . curl_error($ch);
} else {
// Obtén el código de respuesta HTTP
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($httpCode == 200) {
// Guarda el archivo PDF en el disco
$filePath = $reportName . ".pdf";
file_put_contents($filePath, $response);
echo "Reporte descargado exitosamente: " . $filePath;
} else {
echo "Error al obtener el reporte. Código HTTP: " . $httpCode;
}
}
// Cierra la conexión cURL
curl_close($ch);
Inicializa Quick Report en tu consola para descargar directamente el reportes en formato PDF:
curl -Method GET "https://design.quickreport.net/report/GetBasicReportPDF?apiKey={yourApiKeyHere}&reportName={yourReportNameHere}" //el nombre no debe contener espacios, ni la extensión .rexp