Para que se vea a qué me refiero, estas son las pruebas que he hecho.
Con este código, cuando pulso Button1, no imprime nada, cuando pulso Button2 después de haber pulsado Button1, imprime.
Lo que me ha hecho gracia, y por si a alguien le puede servir para hallar una solución es que, cuando se pulsa Button1 (sin que haya un pdf cargado) hasta los 7 segundos (los 6 del Sleep y algo más), no se ve el pdf en el TAcroPdf.
Utilizo PrintAll porque Print abre un dialogo de impresión, aunque las pruebas las hago con print porque es más rápido ver que abre el dialogo que ir a la impresora (en la otra punta de la oficina) a ver si ha imprimido algo.
Código Delphi
[-]
procedure TForm1.CargarFilePdf;
var
dlg: TOpenDialog;
begin
dlg := TOpenDialog.Create(Self);
try
if dlg.Execute then
begin
AcroPdf1.LoadFile(dlg.FileName);
Application.ProcessMessages;
AcroPdf1.PrintAll;
end;
finally
dlg.Free;
end;
end;
procedure TForm1.sButton1Click(Sender: TObject);
begin
CargarFilePdf;
Sleep(6000);
AcroPdf1.PrintAll;
end;
procedure TForm1.sButton2Click(Sender: TObject);
begin
AcroPdf1.PrintAll;
end;
Saludos.