以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  webbrowser如何显示远程ftp服务器上的pdf文件  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=73963)

--  作者:happyft
--  发布时间:2015/8/30 10:07:00
--  webbrowser如何显示远程ftp服务器上的pdf文件

在窗口的afterload 中用了如下代码:

Tables(e.Form.name & "_主表").Cols("附件").DataCol.ExtendType = ExtendTypeEnum.File \'多值字段
DataTables(e.Form.name & "_主表").DataCols("附件").Remote = True
DataTables(e.Form.name & "_主表").DataCols("附件").FTPClient.Host = ftp_Host
DataTables(e.Form.name & "_主表").DataCols("附件").FTPClient.Account = ftp_User
DataTables(e.Form.name & "_主表").DataCols("附件").FTPClient.password = ftp_Pwd
DataTables(e.Form.name & "_主表").DataCols("附件").FTPClient.UTF8 = True \'避免中文乱码
DataTables(e.Form.name & "_主表").DataCols("附件").FTPClient.RootDir = "/Photo/工程图纸/" \'设置根目录


 

然后在表中的currentchanged事件用下面的代码

If e.Table.Current IsNot Nothing Then
    Dim web As WinForm.WebBrowser = e.Table.Form.Controls("WebBrowser1")
    web.address = e.Table.Current("附件")
    \'web.address = "C:\\DB003-01.pdf"
End If

 

结果却显示无效的URI,无法确定URI的格式,要怎么写才正确?

 

谢谢!


--  作者:HappyFt
--  发布时间:2015/8/30 10:56:00
--  
大红袍老师,这个帮忙看一下,谢谢!
--  作者:bagih
--  发布时间:2015/8/30 11:04:00
--  

浏览器需要安装预览PDF的插件吧,还有你空间需要支持PDF的扩展


--  作者:大红袍
--  发布时间:2015/8/30 11:44:00
--  

1、必须把pdf下载下来才能打开;

 

2、直接指定address的路径,但必须是本地的。


--  作者:HappyFt
--  发布时间:2015/8/30 12:25:00
--  

可以了,但在每次切换行显示不同的pdf文件时,屏都要闪一下,用了两种红色的代码都无法控制,

If e.Table.Current IsNot Nothing  AndAlso e.Table.Current("附件") IsNot Nothing Then
    Dim s As String = e.Table.Current("附件").replace("/","\\")
    Dim ftp As FTPClient = e.Table.Cols("附件").DataCol.FTPClient
    Dim path As String = ProjectPath & "RemoteFiles" & s
    ftp.Download(e.Table.Current("附件"), path, False)
    \'e.Table.Form.StopRedraw
    LockBaseMainForm()  \'锁定主界面
    Dim web As WinForm.WebBrowser = e.Table.Form.Controls("WebBrowser1")
    web.address = path
    \'e.Table.Form.ResumeRedraw
    UnLockBaseMainForm()  \'锁定主界面
End If

 

要怎么样做才不会闪?


--  作者:大红袍
--  发布时间:2015/8/30 12:28:00
--  

加入msgbox,有可能是是你currentChanged触发了多次了吧?

 

写到positionchanged或者click看看。我测试不会闪


--  作者:HappyFt
--  发布时间:2015/8/30 12:44:00
--  


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

同样会闪,不知道为什么?


--  作者:大红袍
--  发布时间:2015/8/30 15:09:00
--  

这样试试

 


Dim web As WinForm.WebBrowser = forms("窗口1").Controls("WebBrowser1")
web.visible = False

web.address = "d:\\2.pdf"

web.visible = True


--  作者:HappyFt
--  发布时间:2015/8/31 19:12:00
--  
加上那两句代码后还是一样的会闪一下,没有什么变化,还有其他办法吗,老师?
--  作者:大红袍
--  发布时间:2015/8/31 19:18:00
--  

这个是没办法的。要不你试试嵌入窗口

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=73007&skin=0