Hola a todos,
Estoy intentando generar ficheros pdf desde web. Para ello la idea es generar un informe con FastReport, exportarlo a pdf y servir el pdf al navegador. El código para hacer esto és:
Código:
procedure GeneraPdf;
var
t: TPsfrPDFExport;
begin
t := TPsfrPDFExport.Create(Self);
try
with frReport1 do
begin
ShowPrintDialog := false;
ShowProgress := false;
PrepareReport;
end;
t.ShowDialog := false;
frReport1.ExportTo(t, NomPdf);
//NomPdf es un String con el nombre del fichero
finally
t.Free;
end;
end;
En la TWebAction llamo a la función y redirecciono al pdf.
Si llamo al exe desde la consola (es un cgi, pero con un wincgi pasa lo mismo) funciona perfectamente, pero si lo ejecuto a través del servidor web, windows lanza un error (en el lado del servidor, claro) diciendo "unsuported format FRF".
Digo que es windows ya que todo el cgi se ejecuta en un bloque try except, en caso de saltar una excepción, devuelvo el mensaje en forma de HTML. Pues bien, windows saca ese mensaje y el cgi se queda bloqueado hasta que aceptas el mensaje. Cuando lo aceptas el programa levanta otra excepción (esta vez sí es el cgi, y el mensaje aparece en el HTML devuelto) con el texto "no printer currently selected".
He leído por ahí que la versión 2.5 de FR (la que yo uso) da un error si no hay impresora por defecto, pero es que el servidor sí tiene una impresora instalada.
Bueno, esto es todo, a ver si alguien me echa un cable porque necesito generar esos pdf's con urgencia y los informes ya los tengo hechos en FR.