etisserant@0: #!/usr/bin/env python etisserant@0: # -*- coding: utf-8 -*- etisserant@0: etisserant@341: import os,wx etisserant@0: etisserant@0: DS301_PDF_INDEX = {0x1000: 86, 0x1001: 87, 0x1002: 87, 0x1003: 88, 0x1005: 89, 0x1006: 90, 0x1007: 90, 0x1008: 91, 0x1009: 91, 0x100A: 91, 0x100C: 92, 0x100D: 92, 0x1010: 92, 0x1011: 94, 0x1012: 97, 0x1013: 98, 0x1014: 98, 0x1015: 99, 0x1016: 100, 0x1017: 101, 0x1018: 101, 0x1020: 117, 0x1200: 103, 0x1201: 103, 0x1280: 105, 0x1400: 106, 0x1600: 109, 0x1800: 111, 0x1A00: 112} etisserant@0: etisserant@386: def get_acroversion(): etisserant@386: " Return version of Adobe Acrobat executable or None" etisserant@386: import _winreg etisserant@386: adobesoft = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, r'Software\Adobe') etisserant@386: for index in range(_winreg.QueryInfoKey(adobesoft)[0]): etisserant@386: key = _winreg.EnumKey(adobesoft, index) etisserant@386: if "acrobat" in key.lower(): etisserant@386: acrokey = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, 'Software\\Adobe\\%s' % key) etisserant@386: for index in range(_winreg.QueryInfoKey(acrokey)[0]): etisserant@386: numver = _winreg.EnumKey(acrokey, index) etisserant@386: try: etisserant@386: res = _winreg.QueryValue(_winreg.HKEY_LOCAL_MACHINE, 'Software\\Adobe\\%s\\%s\\InstallPath' % (key, numver)) etisserant@386: return res etisserant@386: except: etisserant@386: pass etisserant@386: return None etisserant@386: lbessard@147: def OpenPDFDocIndex(index, cwd): etisserant@341: if not os.path.isfile(os.path.join(cwd, "doc","301_v04000201.pdf")): laurent@580: return _("""No documentation file available. laurent@580: Please read can festival documentation to know how to obtain one.""") etisserant@0: try: lbessard@72: if index in DS301_PDF_INDEX: etisserant@341: if wx.Platform == '__WXMSW__': etisserant@386: readerpath = get_acroversion() etisserant@386: readerexepath = os.path.join(readerpath,"AcroRd32.exe") etisserant@386: if(os.path.isfile(readerexepath)): greg@408: os.spawnl(os.P_DETACH, readerexepath, "AcroRd32.exe", "/A", "page=%d=OpenActions" % DS301_PDF_INDEX[index], '"%s"'%os.path.join(cwd, "doc","301_v04000201.pdf")) etisserant@341: else: etisserant@341: os.system("xpdf -remote DS301 %s %d &"%(os.path.join(cwd, "doc","301_v04000201.pdf"), DS301_PDF_INDEX[index])) lbessard@72: else: etisserant@341: if wx.Platform == '__WXMSW__': etisserant@386: readerpath = get_acroversion() etisserant@386: readerexepath = os.path.join(readerpath,"AcroRd32.exe") etisserant@386: if(os.path.isfile(readerexepath)): greg@408: os.spawnl(os.P_DETACH, readerexepath, "AcroRd32.exe", '"%s"'%os.path.join(cwd, "doc","301_v04000201.pdf")) etisserant@341: else: etisserant@341: os.system("xpdf -remote DS301 %s &"%os.path.join(cwd, "doc","301_v04000201.pdf")) etisserant@0: return True etisserant@0: except: greg@569: if wx.Platform == '__WXMSW__': laurent@580: return _("Check if Acrobat Reader is correctly installed on your computer") greg@569: else: laurent@580: return _("Check if xpdf is correctly installed on your computer") greg@569: