用python做ppt服务用于导入图片

发布时间:2019-08-28 09:06:24编辑:auto阅读(1513)

    项目需要做WINFORM程序与powerpoint交互,把winform生成的图片自动拷贝到ppt中。目前使用python做了一个简单的服务解决。由于要求是32位程序,所以下面全都是32位的版本。

    第一步,安装python2.7 32位。

    第二部,安装py2exe 32位。

    第三步,安装pywin32 32位。

    第四步,用Eclipse(pydev插件)写代码,见附件。主要内容如下:

    // wavy_ppt_service.py

    import SocketServer
    import win32com.client
    import sys
    
    class MyTCPHandler(SocketServer.BaseRequestHandler):
        """
        The RequestHandler class for our server.
    
        It is instantiated once per connection to the server, and must
        override the handle() method to implement communication to the
        client.
        """
    
        def handle(self):
            # self.request is the TCP socket connected to the client
            self.data = self.request.recv(1024).strip()
    #        print "{} wrote:".format(self.client_address[0])
    #        print self.data
            # just send back the same data, but upper-cased
    #        self.request.sendall(self.data.upper())
            
            Application = win32com.client.Dispatch("PowerPoint.Application")
            currentSlide = Application.ActiveWindow.View.Slide
            currentSlide.Shapes.Paste()
    
    
    HOST, PORT = "localhost", int(sys.argv[1])
    #HOST, PORT = "localhost", 9999
    
    # Create the server, binding to localhost on port 9999
    server = SocketServer.TCPServer((HOST, PORT), MyTCPHandler)
    
    # Activate the server; this will keep running until you
    # interrupt the program with Ctrl-C
    server.serve_forever()

    就是用客户端和服务端的方式做的一个服务,服务端接收到数据后会将剪切板的图片拷贝到ppt中。

    打开cmd,调用buildExe32.bat就可以生成dist目录了,包含着exe 程序。

关键字