tarco35
08-10-2016, 21:01:28
Hola, hasta hace poco el codigo usado para generar un report (qreport) y generar con pdfcreator 1.7.3 el archivo correspondiente funcionaba correctamente, el código es de Roman (moderador):
OldPrinterIndex := FormImprimePaciente.PrnPaciente.PrinterSettings.PrinterIndex;
FormImprimePaciente.PrnPaciente.PrinterSettings.PrinterIndex := PrinterIndex;
PdfCreator := CreateOLEOBject('PDFCreator.clsPDFCreator');
try
PdfCreator.cStart();
PdfCreator.cOption('UseAutosave') := 1;
PdfCreator.cOption('UseAutosaveDirectory') := 1;
PdfCreator.cOption('AutosaveDirectory') := RutaGuardar;
PdfCreator.cOption('AutosaveFilename') := NombreFichero; // la extensión es opcional
PdfCreator.cOption('AutosaveFormat') := 0; // PDF format
FormImprimePaciente.PrnPaciente.ReportTitle := 'BIA_Test: Datos Paciente';
With FormImprimePaciente Do begin
If FileExists(ModuloDatos.TablaCentroTrabajoNombreLogo.AsString) then
QRLogo.Picture.LoadFromFile(ModuloDatos.TablaCentroTrabajoNombreLogo.AsString)
Else QRLogo.Picture := nil;
QRLogo.Stretch := ModuloDatos.TablaCentroTrabajoAjusteLogo.AsBoolean;
QRLabel94.Caption := ModuloDatos.TablaCentroTrabajoNombre1.AsString;
QRLabel24.Caption := ModuloDatos.TablaCentroTrabajoNombre2.AsString;
QRLabel95.Caption := ModuloDatos.TablaCentroTrabajoLinea1.AsString;
QRLabel99.Caption := ModuloDatos.TablaCentroTrabajoLinea2.AsString;
QRLabel96.Caption := ModuloDatos.TablaCentroTrabajoLinea3.AsString;
QRLabel2.Caption:=ModuloDatos.TablaPacientesAPELLIDOS.AsString;
QRLabel4.Caption:=ModuloDatos.TablaPacientesNOMBRE.AsString;
QRLabel6.Caption:=ModuloDatos.TablaPacientesDIRECCION.AsString;
QRLabel8.Caption:=ModuloDatos.TablaPacientesPROVINCIA.AsString;
QRLabel10.Caption:=ModuloDatos.TablaPacientesCIUDAD.AsString;
QRLabel12.Caption:=ModuloDatos.TablaPacientesPOSTAL.AsString;
QRLabel14.Caption:=ModuloDatos.TablaPacientesFECHA.AsString;
QRLabel16.Caption:=ModuloDatos.TablaPacientesTELEFONO.AsString;
QRLabel17.Caption:=ModuloDatos.TablaPacientesFAX.AsString;
QRLabel26.Caption:=ModuloDatos.TablaPacientesCORREO.AsString;
end;
Screen.Cursor := crHourGlass;
FormImprimePaciente.PrnPaciente.Prepare;
FormImprimePaciente.PrnPaciente.Print;
finally
// método rudimentario para saber cuando terminó de crearse el archivo
while not FileExists(RutaGuardar+'\'+NombreFichero+'.pdf') do
Application.ProcessMessages;
// Cerramos el monitor
PdfCreator.cClose;
PdfCreator := Unassigned;
end;
Screen.Cursor := crDefault;
FormPrincipal.KillTask('PdfCreator.exe');
FormImprimePaciente.PrnPaciente.PrinterSettings.PrinterIndex := OldPrinterIndex;
Como la versión de PDFcreator es antigua, al actualizar a la 2.3, que ahora mismo es la ultima, me lanza una ventana de error diciendo " Cadena clase no valida", porque habran cambiado los parametros que se pasan como opciones al objeto OLE.
Lo que hacia es generar el documento sin que la ventana de creación apareciera en pantalla y quiero que siga así....
Como identificaria la version del pdfcreator para que no pase esto, o mejor... que parametros son los que necesita ahora??
Gracias.
OldPrinterIndex := FormImprimePaciente.PrnPaciente.PrinterSettings.PrinterIndex;
FormImprimePaciente.PrnPaciente.PrinterSettings.PrinterIndex := PrinterIndex;
PdfCreator := CreateOLEOBject('PDFCreator.clsPDFCreator');
try
PdfCreator.cStart();
PdfCreator.cOption('UseAutosave') := 1;
PdfCreator.cOption('UseAutosaveDirectory') := 1;
PdfCreator.cOption('AutosaveDirectory') := RutaGuardar;
PdfCreator.cOption('AutosaveFilename') := NombreFichero; // la extensión es opcional
PdfCreator.cOption('AutosaveFormat') := 0; // PDF format
FormImprimePaciente.PrnPaciente.ReportTitle := 'BIA_Test: Datos Paciente';
With FormImprimePaciente Do begin
If FileExists(ModuloDatos.TablaCentroTrabajoNombreLogo.AsString) then
QRLogo.Picture.LoadFromFile(ModuloDatos.TablaCentroTrabajoNombreLogo.AsString)
Else QRLogo.Picture := nil;
QRLogo.Stretch := ModuloDatos.TablaCentroTrabajoAjusteLogo.AsBoolean;
QRLabel94.Caption := ModuloDatos.TablaCentroTrabajoNombre1.AsString;
QRLabel24.Caption := ModuloDatos.TablaCentroTrabajoNombre2.AsString;
QRLabel95.Caption := ModuloDatos.TablaCentroTrabajoLinea1.AsString;
QRLabel99.Caption := ModuloDatos.TablaCentroTrabajoLinea2.AsString;
QRLabel96.Caption := ModuloDatos.TablaCentroTrabajoLinea3.AsString;
QRLabel2.Caption:=ModuloDatos.TablaPacientesAPELLIDOS.AsString;
QRLabel4.Caption:=ModuloDatos.TablaPacientesNOMBRE.AsString;
QRLabel6.Caption:=ModuloDatos.TablaPacientesDIRECCION.AsString;
QRLabel8.Caption:=ModuloDatos.TablaPacientesPROVINCIA.AsString;
QRLabel10.Caption:=ModuloDatos.TablaPacientesCIUDAD.AsString;
QRLabel12.Caption:=ModuloDatos.TablaPacientesPOSTAL.AsString;
QRLabel14.Caption:=ModuloDatos.TablaPacientesFECHA.AsString;
QRLabel16.Caption:=ModuloDatos.TablaPacientesTELEFONO.AsString;
QRLabel17.Caption:=ModuloDatos.TablaPacientesFAX.AsString;
QRLabel26.Caption:=ModuloDatos.TablaPacientesCORREO.AsString;
end;
Screen.Cursor := crHourGlass;
FormImprimePaciente.PrnPaciente.Prepare;
FormImprimePaciente.PrnPaciente.Print;
finally
// método rudimentario para saber cuando terminó de crearse el archivo
while not FileExists(RutaGuardar+'\'+NombreFichero+'.pdf') do
Application.ProcessMessages;
// Cerramos el monitor
PdfCreator.cClose;
PdfCreator := Unassigned;
end;
Screen.Cursor := crDefault;
FormPrincipal.KillTask('PdfCreator.exe');
FormImprimePaciente.PrnPaciente.PrinterSettings.PrinterIndex := OldPrinterIndex;
Como la versión de PDFcreator es antigua, al actualizar a la 2.3, que ahora mismo es la ultima, me lanza una ventana de error diciendo " Cadena clase no valida", porque habran cambiado los parametros que se pasan como opciones al objeto OLE.
Lo que hacia es generar el documento sin que la ventana de creación apareciera en pantalla y quiero que siga así....
Como identificaria la version del pdfcreator para que no pase esto, o mejor... que parametros son los que necesita ahora??
Gracias.