dovresti infatti usare il visualizzatore predefinito, magari qualcuno Adobe Reader neanche lo ha installato, io ad esempio sotto win uso FoxitReader per i pdf.
in LazHelpHTML c'è una classe un sacco simpatica ed un sacco cross platform: THTMLBrowserHelpViewer; la quale ha un metodo con un nome altrettanto simpatico: FindDefaultBrowser.
se vuoi approfondire dai un'occhiata in
http://wiki.freepascal.org/Webbrowser (http://wiki.freepascal.org/Webbrowser)
prova questo codice
implementation
uses LazHelpHTML;
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
var v: THTMLBrowserHelpViewer;
BrowserPath, BrowserParams: string;
begin
v:=THTMLBrowserHelpViewer.Create(nil);
try
v.FindDefaultBrowser(BrowserPath,BrowserParams);
ShowMessage('Path=' + BrowserPath + #10 + ' Params=' + BrowserParams);
finally
v.Free;
end;
end;
io ad esempio ottengo:
Path=/usr/bin/xdg-open
Params=%s
per cui se eseguo da terminale
/usr/bin/xdg-open file:///home/username/Scrivania/FreePascalReference.pdf
quello che ottengo è l'apertura del pdf con il viewer predefinito
penso che sia l'ideale da usare con Tprocess :)
Ciao,
questa istruzione, in Windows, ti permette di aprire un file con l'applicazione predefinita:
Result:=ShellExecute(HWND(nil), 'open', PChar(MettiVirgolette(NomeFile)), '', nil, SW_SHOWNORMAL);
Credo che se al posto di open scrivi print ti stampa il file con l'applicazione predefinita. Fai tu una prova e facci sapere, perché io l'ho sempre usato con open e adesso sono su Linux e non riesco a provarlo !!!
P.S. MettiVirgolette è una mia funzione che aggiunge il carattere " all'inizio ed alla fine di una stringa.
Ciao, Mario