Bonjour,

Je voudrais convertir un fichier HTML en PDF, pour cela j'utilise PDF Creator, mon problème est que windows m'ouvre la fenêtre de sélection d'imprimante. Il y a t'il moyen d'éviter l'ouverture de cette fenêtre?
Je précise que cette fenêtre ne s'ouvre que pour les fichiers HTML.

Voici la méthode qui lance l'impression.



Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
private void PrintPdf(string aFile)
        {
            string defaultPrinter;
 
            // On change les paramètre de PDF Créator
            var rk = Registry.CurrentUser.OpenSubKey(_cleRegistrePdfCreator, true);
            rk.SetValue("AutosaveDirectory", _folder, RegistryValueKind.String);
            rk.SetValue("AutosaveFilename", "test.pdf", RegistryValueKind.String);
            rk.SetValue("UseAutosave", 1, RegistryValueKind.String);
            //rk.SetValue("OptionsVisible", 1, RegistryValueKind.String);
            //rk.SetValue("UseAutosave", 1, RegistryValueKind.String);
 
            #region On Lance l'impression
 
            clsPDFCreatorOptions opt;
            _pDfCreator = new clsPDFCreator();
            _pDfCreator.eError += _pDfCreator_eError;
            _pDfCreator.eReady += _pDfCreator_eReady;
            _pDfCreator.cStart("/NoProcessingAtStartup", true);
            defaultPrinter = _pDfCreator.cDefaultPrinter;
            _pDfCreator.cDefaultPrinter = "PDFCreator";
            _pDfCreator.cPrinterStop = false;
            _pDfCreator.cClearCache();
            opt = _pDfCreator.cOptions;
            opt.UseAutosave = 1;
            opt.UseAutosaveDirectory = 1;
            opt.AutosaveFormat = 0;
            _pDfCreator.cOptions = opt;
            _pDfCreator.cVisible = false;
            _pDfCreator.cPrintFile(aFile);
            _pDfCreator.cPrinterStop = false;
            _readyState = false;
            _pDfCreator.cPrinterStop = true;
            _pDfCreator.cDefaultPrinter = defaultPrinter;
            _pDfCreator.cClose();
            System.Runtime.InteropServices.Marshal.ReleaseComObject(_pDfCreator);
            System.Runtime.InteropServices.Marshal.ReleaseComObject(_pErr);
            _pErr = null;
            GC.Collect();
            GC.WaitForPendingFinalizers();
 
            #endregion
        }

Merci....