docutil/docpdf.py
changeset 1784 64beb9e9c749
parent 1780 c52d1460cea8
child 1826 91796f408540
equal deleted inserted replaced
1729:31e63e25b4cc 1784:64beb9e9c749
    20 #
    20 #
    21 # You should have received a copy of the GNU General Public License
    21 # You should have received a copy of the GNU General Public License
    22 # along with this program; if not, write to the Free Software
    22 # along with this program; if not, write to the Free Software
    23 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
    23 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
    24 
    24 
    25 import wx, os
    25 import os
       
    26 import wx
       
    27 
    26 
    28 
    27 readerexepath = None
    29 readerexepath = None
    28     
    30 
       
    31 
    29 def get_acroversion():
    32 def get_acroversion():
    30     " Return version of Adobe Acrobat executable or None"
    33     " Return version of Adobe Acrobat executable or None"
    31     import _winreg
    34     import _winreg
    32     adobesoft = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, r'Software\Adobe')
    35     adobesoft = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, r'Software\Adobe')
    33     for index in range(_winreg.QueryInfoKey(adobesoft)[0]):
    36     for index in range(_winreg.QueryInfoKey(adobesoft)[0]):
    37             for index in range(_winreg.QueryInfoKey(acrokey)[0]):
    40             for index in range(_winreg.QueryInfoKey(acrokey)[0]):
    38                 numver = _winreg.EnumKey(acrokey, index)
    41                 numver = _winreg.EnumKey(acrokey, index)
    39                 try:
    42                 try:
    40                     res = _winreg.QueryValue(_winreg.HKEY_LOCAL_MACHINE, 'Software\\Adobe\\%s\\%s\\InstallPath' % (key, numver))
    43                     res = _winreg.QueryValue(_winreg.HKEY_LOCAL_MACHINE, 'Software\\Adobe\\%s\\%s\\InstallPath' % (key, numver))
    41                     return res
    44                     return res
    42                 except:
    45                 except Exception:
    43                     pass
    46                     pass
    44     return None
    47     return None
    45 
    48 
    46 def open_win_pdf(readerexepath, pdffile, pagenum = None):
    49 
    47     if pagenum != None :
    50 def open_win_pdf(readerexepath, pdffile, pagenum=None):
    48         os.spawnl(os.P_DETACH, readerexepath, "AcroRd32.exe", "/A", "page=%d=OpenActions" % pagenum, '"%s"'%pdffile)
    51     if pagenum is not None:
       
    52         os.spawnl(os.P_DETACH, readerexepath, "AcroRd32.exe", "/A", "page=%d=OpenActions" % pagenum, '"%s"' % pdffile)
    49     else:
    53     else:
    50         os.spawnl(os.P_DETACH, readerexepath, "AcroRd32.exe", '"%s"'%pdffile)
    54         os.spawnl(os.P_DETACH, readerexepath, "AcroRd32.exe", '"%s"' % pdffile)
    51 
    55 
    52 def open_lin_pdf(readerexepath, pdffile, pagenum = None):
    56 
    53     if pagenum == None :
    57 def open_lin_pdf(readerexepath, pdffile, pagenum=None):
    54         os.system("%s -remote DS301 %s &"%(readerexepath, pdffile))
    58     if pagenum is None:
       
    59         os.system("%s -remote DS301 %s &" % (readerexepath, pdffile))
    55     else:
    60     else:
    56         print "Open pdf %s at page %d"%(pdffile, pagenum)
    61         print "Open pdf %s at page %d" % (pdffile, pagenum)
    57         os.system("%s -remote DS301 %s %d &"%(readerexepath, pdffile, pagenum))
    62         os.system("%s -remote DS301 %s %d &" % (readerexepath, pdffile, pagenum))
    58 
    63 
    59 def open_pdf(pdffile, pagenum = None):
    64 
    60     if wx.Platform == '__WXMSW__' :
    65 def open_pdf(pdffile, pagenum=None):
       
    66     if wx.Platform == '__WXMSW__':
    61         try:
    67         try:
    62             readerpath = get_acroversion()
    68             readerpath = get_acroversion()
    63         except:
    69         except Exception:
    64             wx.MessageBox("Acrobat Reader is not found or installed !")
    70             wx.MessageBox("Acrobat Reader is not found or installed !")
    65             return None
    71             return None
    66         
    72 
    67         readerexepath = os.path.join(readerpath, "AcroRd32.exe")
    73         readerexepath = os.path.join(readerpath, "AcroRd32.exe")
    68         if(os.path.isfile(readerexepath)):
    74         if(os.path.isfile(readerexepath)):
    69             open_win_pdf(readerexepath, pdffile, pagenum)
    75             open_win_pdf(readerexepath, pdffile, pagenum)
    70         else:
    76         else:
    71             return None
    77             return None
    72     else:
    78     else:
    73         readerexepath = os.path.join("/usr/bin","xpdf")
    79         readerexepath = os.path.join("/usr/bin", "xpdf")
    74         if(os.path.isfile(readerexepath)):
    80         if(os.path.isfile(readerexepath)):
    75             open_lin_pdf(readerexepath, pdffile, pagenum)
    81             open_lin_pdf(readerexepath, pdffile, pagenum)
    76         else:
    82         else:
    77             wx.MessageBox("xpdf is not found or installed !")
    83             wx.MessageBox("xpdf is not found or installed !")
    78             return None
    84             return None