以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]iText测试 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=134902) |
||||
-- 作者:天一生水 -- 发布时间:2019/5/12 11:10:00 -- [求助]iText测试 参照教程及论坛做的实例。 请问老师清空浏览器进程的代码有没有更好的方法?
代码如下,需要的朋友可以省点时间。 Dim web As WinForm.WebBrowser = e.Form.Controls("WebBrowser1") \'窗口显示pdf
web.Address = Nothing \' 清空web浏览器进程
Dim sdt As Date = Date.Now
While Date.Now < sdt.AddSeconds(0.1) \'代码延迟0.1秒
Application.DoEvents
End While \'定义字体
Dim bs As iTextSharp.text.pdf.BaseFont = iTextSharp.text.pdf.BaseFont.CreateFont("C:\\WINDOWS\\Fonts\\方正小标宋简体.TTF", _
iTextSharp.text.pdf.BaseFont.IDENTITY_H, iTextSharp.text.pdf.BaseFont.NOT_EMBEDDED)
Dim yh As iTextSharp.text.pdf.BaseFont = iTextSharp.text.pdf.BaseFont.CreateFont("C:\\WINDOWS\\Fonts\\msyh.TTF", _
iTextSharp.text.pdf.BaseFont.IDENTITY_H, iTextSharp.text.pdf.BaseFont.NOT_EMBEDDED) \'雅黑
\'定义要保存的文件名及路径
Dim file As String = ProjectPath & "PDF\\Demo.pdf"
\'创建 PDF 文档
Dim dc As new iTextSharp.text.Document()
dc = new iTextSharp.text.Document(iTextSharp.text.PageSize.A4,27,27,37,0) \'A4紙,左右上下邊距
\'创建实例,PDF 文件将会保存到这里
iTextSharp.text.pdf.PdfWriter.GetInstance(dc,new System.IO.FileStream(file,System.IO.FileMode.Create))
\'打开文档,开始写入
dc.Open()
Dim str As String
With Tables("生成_table1")
For Each Currow As Row In .GetCheckedRows
\'写入第一个段落
Dim tm As new iTextSharp.text.Font(bs,48) str = Currow("题目") Dim p As new iTextSharp.text.Paragraph(str,tm) p.Alignment = 1 \'对齐方式(1为居中,0为居左,2为居右) p.SpacingAfter = 1 \'段后空行数(0为默认值) dc.add(p) \'写入第二个段落 Dim zw As new iTextSharp.text.Font(fss,36) str = Currow("正文") p = new iTextSharp.text.Paragraph(" " & str,zw) \'怎样缩进2个字符 p.SpacingBefore = 1 \'段前空行数(0为默认值) p.MultipliedLeading = 2 \'行间距(0为默认值) dc.add(p) dc.newpage \'换页
Next
End With
dc.Close() \'写入完成
web.address = file [此贴子已经被作者于2019/5/13 22:20:15编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2019/5/12 21:46:00 -- 学习一下基础语法
|
||||
-- 作者:天一生水 -- 发布时间:2019/5/13 21:13:00 -- 老师好! 重新修改了一楼的代码和附件。
但是段落的格式设置在教程里找不到,请老师指教。 谢谢!
|
||||
-- 作者:有点蓝 -- 发布时间:2019/5/13 21:18:00 -- 第三方的组件主要靠自己。我也没有用过,暂时也没有时间去研究 |
||||
-- 作者:天一生水 -- 发布时间:2019/5/13 22:19:00 -- 下列段落样式设置可用(已改进一楼代码): p.Alignment = 1 \'对齐方式(1为居中,0为居左,2为居右) p.SpacingBefore = 1 \'段前空行数(0为默认值)
麻烦老师看看清除web浏览器进程的代码是否正确,谢谢! |
||||
-- 作者:有点蓝 -- 发布时间:2019/5/13 22:38:00 -- 设置web.Address只是让浏览器打开指定地址的文件或者网页而已。设置不设置理论上没有什么影响 |
||||
-- 作者:天一生水 -- 发布时间:2019/5/13 22:55:00 -- 但是如果不清空web,连续加载PDF文件会提示报错:
此主题相关图片如下:截屏图片.jpg |
||||
-- 作者:有点蓝 -- 发布时间:2019/5/13 23:13:00 -- 试试 …… dc.Close() \'写入完成 dc = nothing Application.DoEvents() system.threading.thread.sleep(2000) web.address = file
|
||||
-- 作者:天一生水 -- 发布时间:2019/5/14 8:12:00 -- 蓝老师,这样也不行。
经测试,把一楼的前两句代码单独做个按钮可以退出web进程,放入一个按钮就要延迟运行后面的代码。
Dim web As WinForm.WebBrowser = e.Form.Controls("WebBrowser1") \'窗口显示pdf
web.Address = Nothing \' 清空web浏览器进程
|
||||
-- 作者:有点甜 -- 发布时间:2019/5/14 9:16:00 -- 以下是引用天一生水在2019/5/14 8:12:00的发言:
蓝老师,这样也不行。
经测试,把一楼的前两句代码单独做个按钮可以退出web进程,放入一个按钮就要延迟运行后面的代码。
Dim web As WinForm.WebBrowser = e.Form.Controls("WebBrowser1") \'窗口显示pdf
web.Address = Nothing \' 清空web浏览器进程
生成的pdf,不同名称即可。比如命名为 temp_当前时间.pdf
在关闭窗口或项目的时候,把临时文件夹删除,即可 http://www.foxtable.com/webhelp/scr/0333.htm
|