| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 436 人关注过本帖
标题:FRX2PDF 非安装打印,非XPS,非Image,直接转换为格式化的PDF文件
取消只看楼主 加入收藏
iswith
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:5
帖 子:388
专家分:520
注 册:2013-5-14
结帖率:3.85%
收藏
已结贴  问题点数:20 回复次数:4 
FRX2PDF 非安装打印,非XPS,非Image,直接转换为格式化的PDF文件
Clear

*--设置默认路径
Local lcPath
m.lcPath = Justpath( sys(16,0) )
m.lcPath = Alltrim( Substr( m.lcPath , At( ":" , m.lcPath) -1 ) )
Set Default To ( m.lcPath )

Set Reportbehavior 90
Set Procedure To netsuite.reg.prg Additive

LOCAL lcReport ;
    , loReportListener  
   
m.lcReport = Getfile("FRX|LBX")
If Empty( m.lcReport ) Then
   Return
Endif

?'正在转换FRX2PDF,请稍候...'
 
loReportListener  = .NULL.
 
Local loErr

*5——HTML输出
Try
      DO (_reportoutput) WITH 5, m.loReportListener  
     With m.loReportListener
         .TargetFileName = Forcepath( Juststem( m.lcReport ) + '.html',  Addbs( m.lcPath ) + [\testdata\ConvertPDF] )
         .QuietMode      = .T.
     Endwith
     
     Report Form  ( m.lcReport ) Object  m.loReportListener
Catch To m.loErr
Endtry

If Type( "loErr.Message" ) == 'C' Then
    Messagebox(  [FRX输出HTML出错(] + loErr.Message + [)] , 16  , '过程:' + Program() )
     Return .F.
Endif
      
 
*--HTML2PDF
Local lcGenlFile ;
    , lcHtmlFile ;
      , lcToPdfFile;
      , lcErrmsg      ;
      , loHtml2Pdf
            
m.lcErrmsg    = ""
m.lcHtmlFile  = m.loReportListener.TargetFileName
*m.lcHtmlFile  = [file:///] + m.lcHtmlFile
*!*         m.lcHtmlFile  = Getfile( "HTML" )
*!*         m.lcHtmlFile  = strtran( m.lcHtmlFile , "\" , "/" )
m.lcToPdfFile = Addbs( m.lcPath ) + [\testdata\ConvertPDF]  + Sys(2015) + [.PDF]
m.loHtml2Pdf = Createobjects( "NetHtml2Pdf.Html2Pdf" , "NetHtml2Pdf.dll")
 
If !Vartype( m.loHtml2Pdf ) == "O" Then
    Return .F.
Endif
   
If !m.loHtml2Pdf.HtmlToPdf( m.lcHtmlFile , m.lcToPdfFile , @lcErrmsg ) Then
    Messagebox( m.lcErrmsg , 16 )
    Return .F.
Else
    Erase ( m.lcHtmlFile )
Endif
     

[此贴子已经被作者于2024-6-14 16:01编辑过]

搜索更多相关主题的帖子: Local PDF Then Return HTML 
2024-06-14 14:54
iswith
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:5
帖 子:388
专家分:520
注 册:2013-5-14
收藏
得分:0 
以下是引用吹水佬在2024-6-14 20:55:19的发言:

看似是 FRX -> HTML -> PDF
FRX -> HTML,VFP的报表扩展功能。
HTML -> PDF,windows原生的webview2打印输出HTML -> PDF


windows原生的webview2打印输出HTML -> PDF
是的大家都是调用同一个开源库包括webview2,它也是调用一个开源库。。。,而我把这个库直接脱出来打包成DLL就方便部署发布和引用了,WebView2做项目可以,部署发布产品还是有一定难度的。

[此贴子已经被作者于2024-6-15 10:55编辑过]

2024-06-15 10:50
iswith
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:5
帖 子:388
专家分:520
注 册:2013-5-14
收藏
得分:0 
以下是引用gs2536785678在2024-6-15 09:28:21的发言:

我是安装了PDF打印机,也很方便。

你有1W客户潜在意识中都可能需要这样的功能,你去安装打印机吧。。。
2024-06-15 10:52
iswith
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:5
帖 子:388
专家分:520
注 册:2013-5-14
收藏
得分:0 
以下是引用吹水佬在2024-6-15 14:23:33的发言:


底层是一样,就看封装了。
WebView2也可以封装成像调用系统API的DLL,不用注册,部署发布也就是给多一个DLL,直接用VFP的DECLARE命令就可以使用。
关键是WebView2是windows自己做的东西,以后更新升级兼容性较有保障。用第三方的东东最怕的就是升级兼容性问题。

你这么说估计你没有玩过win7,win10这些版本连个运行时刻都没有你一个外包装器"WebView2Loader.dll"有毛用,WebView2确实强大,gooleV8,JS一大堆函数可用!你直接c/s注入调用就可以,太方便了,太强大了。。。。,关键部署100多MB的库,客户端想升级都麻烦。。。。

[此贴子已经被作者于2024-6-15 15:14编辑过]

2024-06-15 15:12
iswith
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:5
帖 子:388
专家分:520
注 册:2013-5-14
收藏
得分:0 
组件库太大,就没有上传了!
2024-06-16 13:43
快速回复:FRX2PDF 非安装打印,非XPS,非Image,直接转换为格式化的PDF文件
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.047769 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved