编写环境:
1、ActivePython-2.7.2.5-win32-x86
2、wxPython2.8-win32-unicode-2.8.12.1-py27
3、wxFormBuilder_v3.3.3-beta
以下代码是演示怎样利用IEHtmlWindow载入网页,并实现打印预览和打印的的功能:
#coding:utf-8
import wx
from wx.lib import iewin
class MyFrame ( wx.Frame ):
def __init__( self, parent ):
wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 674,421 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )
self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )
self.menu = wx.MenuBar( 0 )
self.menu1 = wx.Menu()
self.LoadPage = wx.MenuItem( self.menu1, wx.ID_ANY, u"打开文件", wx.EmptyString, wx.ITEM_NORMAL )
self.menu1.AppendItem( self.LoadPage )
self.PrintPreview = wx.MenuItem( self.menu1, wx.ID_ANY, u"打印预览", wx.EmptyString, wx.ITEM_NORMAL )
self.menu1.AppendItem( self.PrintPreview )
self.Print = wx.MenuItem( self.menu1, wx.ID_ANY, u"打印", wx.EmptyString, wx.ITEM_NORMAL )
self.menu1.AppendItem( self.Print )
self.menu.Append( self.menu1, u"文件" )
self.SetMenuBar( self.menu )
bSizer = wx.BoxSizer( wx.VERTICAL )
self.ie = iewin.IEHtmlWindow(self)
self.ie.AddEventSink(self)
bSizer.Add( self.ie, 1, wx.EXPAND, 5 )
self.Centre( wx.BOTH )
# Connect Events
self.Bind( wx.EVT_MENU, self.LoadPageOnMenuSelection, id = self.LoadPage.GetId() )
self.Bind( wx.EVT_MENU, self.PrintPreviewOnMenuSelection, id = self.PrintPreview.GetId() )
self.Bind( wx.EVT_MENU, self.PrintOnMenuSelection, id = self.Print.GetId() )
def __del__( self ):
pass
def DocumentComplete(self,this,pDisp,URL):
print 'Done'
# Virtual event handlers, overide them in your derived class
def LoadPageOnMenuSelection( self, event ):
#self.ie.Navigate("http://baidu.com/") # your URL here
#self.ie.LoadUrl('http://www.baidu.com')
#self.ie.LoadStream(page)
#self.ie.LoadString(page)
loadstring = u'''
<html>
<body>
<p align="center"><font face="华文琥珀" size="7" color="#CC3300">这是一个简单的测试……</font></p>
</body>
</html>
'''
self.ie.LoadString(loadstring)
#import StringIO
#self. ie.LoadStream( StringIO.StringIO( page.decode("utf8") ) )
#file = open('index2.htm')
#self. ie.LoadStream(file)
#file.close()
event.Skip()
def PrintPreviewOnMenuSelection( self, event ):
self.ie.PrintPreview()
event.Skip()
def PrintOnMenuSelection( self, event ):
self.ie.Print(True)
event.Skip()
app = wx.PySimpleApp()
frm = MyFrame(None)
frm.Maximize()
frm.Show()
app.MainLoop()
分享到:
相关推荐
Python在IT领域中被广泛用于自动化任务,包括与硬件设备的交互,如调用打印机进行文档打印。在处理PDF文件时,Python提供了多种方法来实现这一功能,其中一个常见的方式是利用第三方库。在这个场景中,我们关注的是...
使用Python调用微信本地ocr服务.zip使用Python调用微信本地ocr服务.zip使用Python调用微信本地ocr服务.zip使用Python调用微信本地ocr服务.zip使用Python调用微信本地ocr服务.zip使用Python调用微信本地ocr服务.zip...
python调用大漠插件python调用大漠插件python调用大漠插件python调用大漠插件
使用Python调用OpenAI接口-OpenAI接口调用python库源码.zip使用Python调用OpenAI接口-OpenAI接口调用python库源码.zip使用Python调用OpenAI接口-OpenAI接口调用python库源码.zip使用Python调用OpenAI接口-OpenAI接口...
python调用迅雷sdk实现迅雷下载,不需要安装迅雷实现迅雷下载,所有调用的接口具体介绍,参考迅雷云加速开放平台文档 http://open.xunlei.com/wiki/tutorial.html 迅雷SDK只提供了32位的版本.所以python版本必须为32位...
Python调用制冷剂物性参数计算软件Refprop.pdf
本压缩包文件"Python调用Prometheus监控数据并计算.zip"包含了如何使用Python与Prometheus交互的相关资料,特别是通过Python调用Prometheus的API来获取和处理监控数据。 首先,让我们深入了解Prometheus的核心概念...
"python调用sac"则是指利用Python的子进程管理模块(如os或subprocess)直接调用SAC的命令行工具。这种方式虽然没有直接利用`pythonsac`库那样方便,但能调用SAC的所有功能,适用于处理`pythonsac`库不支持或者需要...
### Python调用WEBSERVICE接口知识点详解 #### 一、基础知识概述 1. **Web Service**:一种跨编程语言和操作系统平台的远程调用技术,它通过HTTP协议提供服务,可以被任何其他系统调用。 2. **SOAP(Simple Object...
运行这段Python代码,将打印出`The sum is: 8`,这是3和5的和。 6. 错误处理和类型转换 当涉及到C++数据类型时,`ctypes`可以自动进行一些基本类型的转换,但复杂的结构体或类可能需要自定义转换规则。同时,`...
本文将深入探讨如何使用Python操作TSC打印机进行标签打印。 TSC(Taiwan Semiconductor Co., Ltd.)是一家知名的条码打印机制造商,其产品广泛用于物流、零售、医疗等多个行业。通过Python与TSC打印机的交互,我们...
Python调用海康威视(HIKVision)SDK来实现图像处理和视频流操作是许多开发者在物联网(IoT)和监控系统中的常见需求。海康威视作为全球领先的安防产品供应商,提供了丰富的SDK供开发者集成到自己的应用程序中。在这个...
本教程聚焦于如何在Linux环境下使用C++编写`.so`动态链接库,并通过Python进行调用,这对于初学者来说是一个很好的实践项目。`.so`文件是Linux系统中的动态链接库,它包含可被其他程序共享的函数和数据。 首先,...
总结来说,Python调用DXGI实现快速截屏是通过利用Windows API和DirectX图形接口来获取屏幕图像。这种方式相比于其他Python截图库,如PIL或Scrot,具有更快的速度和更低的延迟,适用于需要高性能实时截屏的场景。不过...
本案例主要探讨如何使用Python调用C代码,并结合Visual Studio 2005(VS2005)创建的工程来编译生成动态链接库(DLL)或Python的扩展模块(pyd文件),供Python调用。 首先,我们需要了解Python的C API,它是Python...
本话题将详细介绍如何使用Python调用海康SDK来实现对摄像头云台的控制。 首先,我们需要理解“云台”是摄像头的一部分,它允许摄像头进行水平和垂直移动,从而扩大监控范围。通过SDK,我们可以精确控制摄像头的方向...
本篇文章将深入探讨如何使用Python编程语言调用海康威视(Hikvision)的SDK来拉取网络摄像头的视频流。海康威视作为全球领先的安防产品提供商,提供了丰富的SDK供开发者进行二次开发。 首先,我们需要了解海康SDK的...
1.本人开发环境,python3.7 pycharm2019 2.选取与python和操作系统匹配的pythonnet版本,可以在https://pypi.org/search下载自己所需版本,然后在Terminal里面去pip。无需额外安装clr,即便在py中import clr 显示...
### ctypes库的使用:Python调用Windows DLL #### 一、ctypes库简介与功能 ctypes 是 Python 的一个标准库模块,它提供了与 C 兼容的数据类型,并且能够轻松地调用 C 库(DLL)中的函数。这对于那些需要与 C 语言...
本文将详细介绍如何在Python中调用C++函数,以实现Python与C++的交互。 首先,我们需要理解Python与C++之间的接口是如何建立的。Python提供了一种称为`ctypes`的库,它允许我们直接调用动态链接库(DLL或SO)中的C...