Buenas, la verdad es que yo utilizo el siguiente procedimiento:
Código Delphi
[-]
procedure ImprimirDoc(NombreDoc : string);
begin
if ShellExecute(0, 'print', PChar(NombreDoc), nil, nil, SW_HIDE) <= 32 then
begin
ShowMessage('Fallo Acrobat');
end;
end;
y la cadena que le paso como argumento no tiene porque llevar doble contrabarra, es decir yo llamo al procedimiento tal que asi:
Código Delphi
[-]
ImprimirDoc('C:\CERTIFICADOS\AM_11-135.pdf');
En mi caso le digo que lo imprima directamente sin mostrarlo por pantalla, pero vamos pienso yo que será lo mismo print que open.
De todas formas yo uso windows 2000 server y delphi 6 por si puede influir en algo.