以文本方式查看主题

-  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
--  

学习一下基础语法

 

 


 下载信息  [文件大小:621.0 KB  下载次数:55]
图片点击可在新窗口打开查看点击浏览该文件:itextsharp 中文帮助文档.rar

--  作者:天一生水
--  发布时间: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.SpacingAfter = 1   \'段后空行数(0为默认值)

p.SpacingBefore = 1        \'段前空行数(0为默认值)
p.MultipliedLeading = 2    \'行间距(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