Bojour tout le monde,
J'essaie d'imprimer le contenu d'un fichier Pdf qui existe dans sur mon disk dure directement à partir de mon apllication (elle est faite par delphi).
pourriez vous svp m'aider.
Merci
Version imprimable
Bojour tout le monde,
J'essaie d'imprimer le contenu d'un fichier Pdf qui existe dans sur mon disk dure directement à partir de mon apllication (elle est faite par delphi).
pourriez vous svp m'aider.
Merci
Un fichier PDf s'imprime comme n'importe quel autre fichier.
Si ton pb est de l'ouvrir d'abord dans ton appli AVANT de l'imprimer, va voir sur :
1 - Google
2 - les outils freeware sur developpez.com
3 - une recherche sur le forum
Des compos pour ouvrir des fichiers PDF, doit y en avoir plusieurs...
Si j'ai mal compris la question, éclaire ma lanterne ;)
Je veux imprimer un fichier pdf sans l'ouvrir
Alors, a mon avis, il te faut simuler un clic sur 'Imprimer' dans le menu popup qui apparait dans l'explorateur windows. PAr contre, ça va forcément ouvrir le fichier avec Acrobat.
Autrement, cherche dans les compos qui gère le fichier PDF (voir post précedent). A la limite, t'es pas forcé de l'ouvrir en 'visible' (tu peux l'ouvrir dans un composant type Tmemopdf dont la propriété visible est False'.
D'autre part, est-ce vraiment génant qu'il s'ouvre avant l'impression ?
Mon but est d'imprimer sans ouvrir le fichier pdf, cad une fois je clique sur un bouton, un programme qui permet de faire cette tâche s'execute.
Une fois j'avais un probleme de transfert des données d'un rapport Report builder vers un fichier pdf, alors il m'a fallu d'acheter un objet qui permet de réaliser ce travail. Je ne sais si même avec ce cas j'ai besoin d'un autre objet, si non alors est ce qu'il existe des instructions qui permettent de résoudre ce probleme.
Merci
J<ai essaye durant toute la journee à trouver une solution, mais sans susccés, pouviez vous m'aider s.v.p
Installe Acrobat Reader.
Vas dans Composant/Imporrter un composant ActiveX ou dans Projet/Importer une bibliotheque de types (solution plus fine mais plus dificile a mettre une place)
Manipule AcrobatReader via les composants crées
Ouvre le fichier PDF et imprime le.
Par contre l'ouverture peut se faire de maniere discrete .... (non visible).
Regarde aussi du cote des server OLE ca peut aider.
là, tu rêves il faut quand même bien lire le contenu du fichier pour préparer l'impression du document : ce n'est pas un fichier Texte ni postscript !Citation:
Envoyé par toumoham
C'est comme si tu voulais imprimer un fichier RTF sans l'ouvrir.
En fait, j'imagine que tu souhaites plutot l'imprimer sans l'afficher, là ce n'est pas pareil !
Je te conseilles de faire comme te la conseillé Clorish, surtout que tu peux mettre la propriété du contrôle activeX sur ta fiche à visible=false...
Après, dans ton code, ça donne ça :
Code:
1
2
3
4
5
6
7
8
9
10
11 procedure TForm1.Button1Click(Sender: TObject); begin AcroPDF1.LoadFile('TonFichier.pdf'); //puis au choix : AcroPDF1.Print; AcroPDF1.printWithDialog; AcroPDF1.printPages(3,5); AcroPDF1.printPagesFit(2,3,1); //Wordbool : 1=true, 0=false) AcroPDF1.printAll; AcroPDF1.printAllFit(1); //Wordbool : 1=true, 0=false) end;
Essaye l'API
Il faudra installer Acrobat ReaderCode:IF ShellExecute(Handle,'print','MON_FICHER.PDF',nil,nil,SW_HIDE)<=32 THEN ShowMessage(SysErrorMessage(GetLastError));
Windows imprimera avec le programme rattaché aux extension .pdf. (Donc acrobat)
Ou bien, tu peux tirer parti du fait que tu peux imprimer en ligne de commande avec ce format là :
Ce qui dans ton code, donnerais par exemple :Code:"C:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe" /p /h "TonFichier.pdf"
Code:
1
2 ShellExecute(0,'OPEN',' "C:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe"',' /p /h "TonFichier.pdf"',Nil, SW_SHOW);
Bojour tpout le monde,
Je m'exuse de ne pas vous avoir répondu avant, j'étais malade.
Je vais essayer les solutions que vous m'avez donné, et après je vous envoie ce que j'ai eu comme résultat.
Merci
Merci tout le monde, j'ai pu imprimer un fichier Pdf à partir d'un application delphi sans faire apparaître le fichier lui même, et cela a été fait grâce l'instruction shellExecute.
Merci pour une deuxième.