以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  为什么生成PDF时,感觉行数少(2行)时,一下生成了,多时(20行)生成不了?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=90545)

--  作者:yancheng
--  发布时间:2016/9/16 15:00:00
--  为什么生成PDF时,感觉行数少(2行)时,一下生成了,多时(20行)生成不了?
Dim wbr As WinForm.WebBrowser = e.Form.Controls("WebBrowser1")
 Dim tmp As String = ProjectPath & "Attachments\\主材选型确认表.xls"
 Dim rpt As String = ProjectPath & "Reports\\主材选型确认表.pdf"
 Dim Book As New XLS.Book(tmp)
 Book.Build() 
Book.SaveToPDF(rpt) \'保存为pdf文件
 wbr.AddRess = rpt


为什么生成PDF时,感觉行数少(2行)时,一下生成了,多时(20行)生成不了?

我点行生
图片点击可在新窗口打开查看此主题相关图片如下:uc截图20160916145943.jpg
图片点击可在新窗口打开查看
成少的,再点生成多的,有时又生成出来了。

--  作者:yancheng
--  发布时间:2016/9/16 15:05:00
--  
好像都生成不了了。不明白什么意思 。

我用XLS直接生成文件,可以。正常。只是PDF预览不成生。

Dim Book As New XLS.Book(ProjectPath & "Attachments\\主材选型确认表.xls")
Dim str As String =Tables("材料选型").Current("合同名称")
If str <> "" Then
    Dim dlg As New SaveFileDialog \'定义一个新的SaveFileDialog
    dlg.Filter= "Excel文件|*.xls" \'设置筛选器
    dlg.FileName=str & "-" &Forms("材料选型").Name
    If dlg.ShowDialog = DialogResult.Ok Then
        Book.Build() \'生成细节区
        Book.Save(dlg.FileName)
        Dim Proc As New Process
        Proc.File = dlg.FileName
        Proc.Start()
    End If
Else
    MessageBox.show("请选择要生成的\'材料选型\'表的订单!")
End If


我是OFFICE 2007 但是已经安装 了,转PDF插件的。
[此贴子已经被作者于2016/9/16 15:24:02编辑过]

--  作者:yancheng
--  发布时间:2016/9/16 15:32:00
--  
再试了一下,用XLS生成预览,也不行了。好像第一次能生成,后面的都 不能生成了。

Dim wbr As WinForm.WebBrowser = e.Form.Controls("WebBrowser1")
Dim tmp As String = ProjectPath & "Attachments\\主材选型确认表.xls"
Dim rpt As String = ProjectPath & "Reports\\主材选型确认表.xls"
Dim Book As New XLS.Book(tmp)
Book.Build() 
Book.Save(rpt)
wbr.OfficeToolBar = True \'如果不需要显示工具栏,可删除此行代码
wbr.AddRess = rpt

--  作者:有点蓝
--  发布时间:2016/9/17 9:47:00
--  
因为在浏览器里打开,已经占用了文件,所以第二次文件就不能覆盖保存到同一个位置了。
--  作者:有点蓝
--  发布时间:2016/9/17 9:49:00
--  
看看http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=88255
--  作者:yancheng
--  发布时间:2016/9/24 11:33:00
--  
这个,还是无法预览,有没有解决办法?

我用: http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=88255&authorid=0&page=0&star=2  大红老师下面的代码,也不行。

 比较麻烦,你需要把对应的 excel 进程杀死才行的。不然在webbrowser里面的文件,就一直是打开状态,即便设置了address,也需要一段时间才会结束进程的。

 

web控件.Address = Nothing

GC.Collect()

 

Dim ps As  System.Diagnostics.Process() = System.Diagnostics.Process.GetProcessesByName("excel")
For Each p As System.Diagnostics.Process In ps

    msgbox(p.MainWindowTitle)
    If p.MainWindowTitle = Nothing Then  p.kill
Next



--  作者:有点蓝
--  发布时间:2016/9/24 11:44:00
--  
System.Diagnostics.Process.GetProcessesByName("excel")

这里的excel你要改成打开了pdf的进程,到任务管理器里查看一下

--  作者:yancheng
--  发布时间:2016/9/24 12:16:00
--  
我试过,这种杀进程,我也试了。不行。
我把:EXCEL,改成了:pdf的进程名。也不行。


--  作者:有点蓝
--  发布时间:2016/9/24 14:02:00
--  
上传例子测试