[GRASS-SVN] r56078 - grass/branches/releasebranch_6_4/gui/wxpython/psmap

svn_grass at osgeo.org svn_grass at osgeo.org
Thu May 2 03:05:08 PDT 2013


Author: annakrat
Date: 2013-05-02 03:05:07 -0700 (Thu, 02 May 2013)
New Revision: 56078

Modified:
   grass/branches/releasebranch_6_4/gui/wxpython/psmap/frame.py
Log:
wxGUI/composer: attempt to fix generating PDF on Windows (merge from develbranch, r56077)

Modified: grass/branches/releasebranch_6_4/gui/wxpython/psmap/frame.py
===================================================================
--- grass/branches/releasebranch_6_4/gui/wxpython/psmap/frame.py	2013-05-02 09:38:22 UTC (rev 56077)
+++ grass/branches/releasebranch_6_4/gui/wxpython/psmap/frame.py	2013-05-02 10:05:07 UTC (rev 56078)
@@ -222,15 +222,16 @@
 
     def OnPDFFile(self, event):
         """!Generate PDF from PS with ps2pdf if available"""
-        try:
-            p = grass.Popen(["ps2pdf"], stderr = grass.PIPE)
-            p.stderr.close()
+        if not sys.platform == 'win32':
+            try:
+                p = grass.Popen(["ps2pdf"], stderr = grass.PIPE)
+                p.stderr.close()
+            
+            except OSError:
+                GMessage(parent = self,
+                         message = _("Program ps2pdf is not available. Please install it first to create PDF."))
+                return
         
-        except OSError:
-            GMessage(parent = self,
-                     message = _("Program ps2pdf is not available. Please install it first to create PDF."))
-            return
-        
         filename = self.getFile(wildcard = "PDF (*.pdf)|*.pdf")
         if filename:  
             self.PSFile(filename, pdf = True)   
@@ -294,14 +295,30 @@
             return
         
         if event.userData['pdfname']:
+            if sys.platform == 'win32':
+                command = ['gswin32c',
+                           '-P-', '-dSAFER',
+                           '-dCompatibilityLevel=1.4',
+                           '-q', '-P-',
+                           '-dNOPAUSE', '-dBATCH',
+                           '-sDEVICE=pdfwrite',
+                           '-dPDFSETTINGS=/prepress', '-r1200',
+                           '-sstdout=%stderr',
+                           '-sOutputFile=%s' % event.userData['pdfname'],
+                           '-P-', '-dSAFER',
+                           '-dCompatibilityLevel=1.4',
+                           '-c', '.setpdfwrite', '-f',
+                            event.userData['filename']]
+            else:
+                command = ['ps2pdf', '-dPDFSETTINGS=/prepress', '-r1200', 
+                           event.userData['filename'], event.userData['pdfname']]
             try:
-                proc = grass.Popen(['ps2pdf', '-dPDFSETTINGS=/prepress', '-r1200', 
-                                    event.userData['filename'], event.userData['pdfname']])
-                
+                proc = grass.Popen(command)
                 ret = proc.wait()                        
                 if ret > 0:
                     GMessage(parent = self,
-                             message = _("ps2pdf exited with return code %s") % ret)
+                             message = _("%(prg)s exited with return code %(code)s") % {'prg': command[0],
+                                                                                        'code': ret})
 
             except OSError, e:
                 GError(parent = self,



More information about the grass-commit mailing list