RSS category feeds

RSS site feeds


Excel to PDF Converter as a Windows NT/2000 Service PDF Print E-mail

This script is designed as a Windows 2000/NT Service and converts incoming Excel Workbooks in a directory to PDF. After installing this script with python install you will find a Service called "Excel2PDF" in the Service Control Manager (Services). To remove the Service do a python remove.

One Problem exists: The Service runs only when a user is logged in. If someone knows the problem please mail it via the contact webform.

To get the usage information start this script with the python interpreter as usually.
import win32serviceutil
import win32service
import win32event
import win32gui
import time
import win32com.client
import pythoncom
import os
class XLS2PDFService(win32serviceutil.ServiceFramework):
    _svc_name_ = "xls2pdf Service"
    _svc_display_name_ = "Excel2PDF"
    def __init__(self, args):
       win32serviceutil.ServiceFramework.__init__(self, args)
       self.hWaitStop = win32event.CreateEvent(None, 0, 0, None)
    def SvcStop(self):
       win32gui.MessageBox(0, "XLS2PDF Service has been stopped" , "XLS2PDF Status" , 0 )
    def SvcDoRun(self):
        gscommand = 'c:\\gs\\gs8.15\\bin\\gswin32c.exe -sDEVICE=pdfwrite -r300 \
        -sOutputFile="'+path_to_watch+filename+'.pdf" "'+tmpfile+'"'
        path_to_watch = 'd:\\share\\'
        tmpdir = tempfile.mkdtemp()
        before = dict ([(f, None) for f in os.listdir (path_to_watch)])
        win32gui.MessageBox(0, "XLS2PDF has been started" , "XLS2PDF Status" , 0 )
        while 1 :
            time.sleep (0.1)
            after = dict ([(f, None) for f in os.listdir (path_to_watch)])
            added = [f for f in after if not f in before]
            if added and added[0][-3:]=='xls':
                print os.tmpfile()
                filename = added[0]
                tmpfile = tmpdir + '\\'+filename+'.ps'
                if filename[-3:]=='xls':
                    myExcel = win32com.client.DispatchEx('Excel.Application')
                    Excel = myExcel.Workbooks.Open(path_to_watch + filename, 0, False, 2)
                    Excel.PrintOut(1, 5000, 1, False, 'ServPDF', True, False, tmpfile)
                    Excel.Saved = 1
                    del Excel
                    del myExcel
            before = after
if __name__=='__main__':
Last Updated ( Thursday, 02 February 2006 )
< Prev   Next >




  • hey how can we clear history of a single skype group ? any idea? More...
  • Dear Brent I'm trying to get the points coordinate in a PYTHON/CATIA macro but I... More...
  • Hi Brent, I'm trying to create a macro for create the best fitting circle given... More...
  • I have run your code on my own machine, but I just got the last paragraph of the... More...
  • Hello Gabriel, It seem that the linked site moved to (... More...

Login Form

Lost Password?

My prefered Python IDE

My prefered Python editor is Pyscripter from MMExperts. It is not only an editor. Pyscripter is a full Python IDE including (remote) debugging, a class browser, and all other nice helpers which a full featured IDE needs.

Do you have a script for me ?

Do you have an interesting Python script which does some really cool thing on Windows ? Please post them to this site. It`s very simple - simply copy&paste it to this form. No login is requiered.

Hint: For syntax highlighting and correct Python intendation place your code between html tags <pre> and </pre>.

My prefered web framework

My prefered web framework for developing web applications is Django. Django calls itself The web framework for perfectionists with deadlines. It is a really fast, scalable and (thanks Python) the sexiest web framework of the world.