Foxtable(狐表)用户栏目专家坐堂 → [求助]iText测试


  共有3211人关注过本帖树形打印复制链接

主题:[求助]iText测试

帅哥哟,离线,有人找我吗?
天一生水
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1140 积分:11255 威望:0 精华:0 注册:2017/9/26 16:30:00
[求助]iText测试  发帖心情 Post By:2019/5/12 11:10:00 [显示全部帖子]

参照教程及论坛做的实例。

请问老师清空浏览器进程的代码有没有更好的方法?

 

代码如下,需要的朋友可以省点时间。

 
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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1140 积分:11255 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2019/5/13 21:13:00 [显示全部帖子]

老师好!

重新修改了一楼的代码和附件。
但是段落的格式设置在教程里找不到,请老师指教。
谢谢!

 


 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1140 积分:11255 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By: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浏览器进程的代码是否正确,谢谢!



 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1140 积分:11255 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2019/5/13 22:55:00 [显示全部帖子]

但是如果不清空web,连续加载PDF文件会提示报错:

 


图片点击可在新窗口打开查看此主题相关图片如下:截屏图片.jpg
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1140 积分:11255 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2019/5/14 8:12:00 [显示全部帖子]

蓝老师,这样也不行。

 

经测试,把一楼的前两句代码单独做个按钮可以退出web进程,放入一个按钮就要延迟运行后面的代码。

 

Dim web As WinForm.WebBrowser = e.Form.Controls("WebBrowser1")    '窗口显示pdf
web.Address = Nothing            ' 清空web浏览器进程

 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1140 积分:11255 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2019/5/14 17:04:00 [显示全部帖子]

谢谢甜老师!

想再问一个问题,但是教程里没有示例代码。

iText生成PDF时,图片怎样浮动在落款的文字上,落款的位置因文字的多少,并不固定。像这样的:


图片点击可在新窗口打开查看此主题相关图片如下:截屏图片 (2).jpg
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1140 积分:11255 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2019/5/15 11:38:00 [显示全部帖子]

这样还是报错:

 


图片点击可在新窗口打开查看此主题相关图片如下:截屏图片.jpg
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1140 积分:11255 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2019/5/16 11:40:00 [显示全部帖子]

谢谢甜老师的指点!

经测试图片可放在指定文字的下方(文字浮动在图片上),总结图片操作代码如下:

 

'插入图片
Dim  Im As iTextSharp.Text.Image  =  iTextSharp.text.Image.getInstance(ProjectPath  & "68.png")     '定义ITextSharp图片
Im.ScalePercent(30F)    '分辨率
Im.ScaleToFit(150F,150F)  '图片缩放
Im.IndentationRight = 70   '图片右侧缩进与段落缩进相同
'Im.SetAbsolutePosition(460,695)        '设置图片坐标:原点(0,0)为左下角!
'Im.Alignment = 0     '图片对齐方式1,与段落相同(1为居中,0为居左,2为居右)
'Im.Alignment = iTextSharp.text.Image.ALIGN_RIGHT   '图片对齐方式2
'Im.Alignment = iTextSharp.text.Image.ALIGN_LEFT
Im.Alignment = iTextSharp.text.Image.UNDERLYING Or iTextSharp.text.Image.ALIGN_RIGHT      '图片浮动;放在两段之间,用段前段后距离控制垂直位置
dc.add(Im)


 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1140 积分:11255 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2019/5/16 11:42:00 [显示全部帖子]

但是遇到一个新问题:

就是生成PDF文件时,标点符号出现在行首,怎样避免呢?

 


图片点击可在新窗口打开查看此主题相关图片如下:pdf标点.jpg
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1140 积分:11255 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2019/5/22 22:40:00 [显示全部帖子]

甜老师好!
查看了一些资料,主要是针对iTextSharp.dll进行修改。
一是修改DefaultSplitCharacter类isSplitCharacter方法;
二是修改BidiLine这个类的processLine方法的换行规则。

因为对iTextSharp的应用,好处非常多。如果不解决标点符号这个问题,感到很可惜。

请老师指点下一步怎样做?

 回到顶部
总数 12 1 2 下一页