]> git.evergreen-ils.org Git - Evergreen.git/blob - Evergreen/staff_client/chrome/content/evergreen/util/print.js
try this in windows
[Evergreen.git] / Evergreen / staff_client / chrome / content / evergreen / util / print.js
1 sdump('D_TRACE','Loading print.js\n');
2
3 var print_crlf = '<br />\r\n';
4
5 // Higher-level
6
7 function print_checkout_receipt(params) {
8         sdump('D_PRINT',arg_dump(arguments));
9
10
11 }
12
13 // Lower-level
14
15 function sPrint(s) {
16         sdump('D_PRINT',arg_dump(arguments));
17         var w = new_window('data:text/html,<html>' + s + '</html>\r\n', { 'window_name':'LastPrint' });
18         w.minimize(); mw.minimize();
19         this.focus();
20         NSPrint(w);
21         w.minimize(); mw.minimize();
22         //w.close();
23 }
24
25 function NSPrint(w)
26 {
27         sdump('D_PRINT',arg_dump(arguments));
28         if (!w) { w = this; }
29         try {
30                 var webBrowserPrint = w
31                         .QueryInterface(Components.interfaces.nsIInterfaceRequestor)
32                         .getInterface(Components.interfaces.nsIWebBrowserPrint);
33                 if (webBrowserPrint) {
34                         var gPrintSettings = GetPrintSettings();
35                         gPrintSettings.printSilent = true;
36                         gPrintSettings.marginTop = 0;
37                         gPrintSettings.marginLeft = 0;
38                         gPrintSettings.marginBottom = 0;
39                         gPrintSettings.marginRight = 0;
40                         gPrintSettings.headerStrLeft = '';
41                         gPrintSettings.headerStrCenter = '';
42                         gPrintSettings.headerStrRight = '';
43                         gPrintSettings.footerStrLeft = '';
44                         gPrintSettings.footerStrCenter = '';
45                         gPrintSettings.footerStrRight = '';
46                         webBrowserPrint.print(gPrintSettings, null);
47                         //alert('Should be printing\n');
48                 } else {
49                         //alert('Should not be printing\n');
50                 }
51         } catch (e) {
52                 //alert('Probably not printing: ' + e);
53         // Pressing cancel is expressed as an NS_ERROR_ABORT return value,
54         // causing an exception to be thrown which we catch here.
55         // Unfortunately this will also consume helpful failures, so add a
56                 sdump('D_PRINT','PRINT EXCEPTION: ' + js2JSON(e) + '\n'); // if you need to debug
57         }
58 }
59
60 var gPrintSettings = null;
61
62 function GetPrintSettings()
63  {
64         sdump('D_PRINT',arg_dump(arguments));
65    try {
66      if (gPrintSettings == null) {
67        var pref = Components.classes["@mozilla.org/preferences-service;1"]
68                             .getService(Components.interfaces.nsIPrefBranch);
69        if (pref) {
70          gPrintSettingsAreGlobal = pref.getBoolPref("print.use_global_printsettings", false);
71          gSavePrintSettings = pref.getBoolPref("print.save_print_settings", false);
72        }
73  
74        var printService = Components.classes["@mozilla.org/gfx/printsettings-service;1"]
75                                          .getService(Components.interfaces.nsIPrintSettingsService);
76        if (gPrintSettingsAreGlobal) {
77          gPrintSettings = printService.globalPrintSettings;
78          setPrinterDefaultsForSelectedPrinter(printService);
79        } else {
80          gPrintSettings = printService.newPrintSettings;
81        }
82      }
83    } catch (e) {
84      sdump('D_PRINT',"GetPrintSettings() "+e+"\n");
85      alert("GetPrintSettings() "+e+"\n");
86    }
87  
88    return gPrintSettings;
89  }
90
91 function setPrinterDefaultsForSelectedPrinter(aPrintService)
92  {
93         sdump('D_PRINT',arg_dump(arguments));
94    if (gPrintSettings.printerName == "") {
95      gPrintSettings.printerName = aPrintService.defaultPrinterName;
96    }
97  
98    // First get any defaults from the printer 
99    aPrintService.initPrintSettingsFromPrinter(gPrintSettings.printerName, gPrintSettings);
100  
101    // now augment them with any values from last time
102    aPrintService.initPrintSettingsFromPrefs(gPrintSettings, true, gPrintSettings.kInitSaveAll);
103  }
104