| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1907 人关注过本帖
标题:求助: VFP 中合并 PDF 文件的控件
只看楼主 加入收藏
tyjhcw
Rank: 1
等 级:新手上路
帖 子:12
专家分:4
注 册:2013-3-21
结帖率:33.33%
收藏
已结贴  问题点数:10 回复次数:13 
求助: VFP 中合并 PDF 文件的控件
请教各位:
    本人在一个系统中,想实现表格保存为PDF文件的功能。现借助控件实现了对单个表格的PDF化,最终目的是要把一套表格合并为一个PDF文件,现在也基本实现了,但不满意。先说明一下我的做法:单个表格导出为PDF,然后run合并软件的行命令方式对所有表格进行合并,当然导出、合并是在一个for...endfor中完成的。问题就出在行命令方式上,会有cmd的黑窗口闪现。run的 “/N7”参数可以阻止黑窗口的出现,但此处不能用,因为我是在一个循环体中实现导出、合并的功能(要导出的表格最多达几百张,也就意味着会生成几百个PDF文件,所以我的文件名是复用的,导出一个就合并掉一个),“/N7”参数会不等待外部合并程序完成就运行其后的语句,造成程序错误,基于同样的原因,其它的DLL也不能用。我想知道有没有适用于VFP的合并PDF的控件,或是其它有效的方法,而不用去调用外部程序。
搜索更多相关主题的帖子: 软件 
2014-07-06 11:15
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:2 
干嘛不用VFP 中的表格?
2014-07-06 11:27
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:2 
手工合并

坚守VFP最后的阵地
2014-07-06 16:26
tyjhcw
Rank: 1
等 级:新手上路
帖 子:12
专家分:4
注 册:2013-3-21
收藏
得分:0 
我做的表格象Excel表格那样,是有合并单元格的,每行的高度是独立可调的,VFP的表格是做不到的。
手工合并当然是能实现所需功能的,但是你要告诉每个用户,运行这个程序后,然后运行什么什么软件,把几百个文件合并到一起,用户还会对你的程序感兴趣吗?
2014-07-06 19:19
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:2 
把合并的工作放在批处理文件中执行,只需要执行一次cmd。

授人以渔,不授人以鱼。
2014-07-06 21:04
liuxingang28
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山东济南
等 级:贵宾
威 望:47
帖 子:658
专家分:2180
注 册:2014-2-7
收藏
得分:2 
在我的“VFP学习、开发漫谈(六)”中,专门介绍了如此防止 cmd 出现黑窗口同时又能保证每条 DOS 命令命令正确运行完成后才执行下一条语句。对于多条 cmd 命令,建议楼主先将 DOS 命令生成一个 BAT 文件,最后再执行该 BAT。

泉城飞狐
2014-07-07 08:35
tyjhcw
Rank: 1
等 级:新手上路
帖 子:12
专家分:4
注 册:2013-3-21
收藏
得分:0 
一开始,我就是用BAT 文件的,并且正确运行。但那需要保存所有表格生成的PDF文件,有六百多个,我当时是建了一个临时文件夹,合并完成后再删除。感觉不好,就改成生成一个PDF文件,就合并掉一个,加上临时保存所生成的文件,始终只涉及三个文件。
2014-07-07 22:30
tyjhcw
Rank: 1
等 级:新手上路
帖 子:12
专家分:4
注 册:2013-3-21
收藏
得分:0 
6楼用判断文件的方法来保证代码按序执行,我做过尝试的。刚才我也照搬了6楼写的代码,结果仍是不可靠,在我机上大概有十分之三到四的概率,运行到 DELETE FILE c:\mis\~cmdok.tmp 时报错,是cmdok.tmp 无法操作。这个问题我之前碰到时,翻了一些资料,问了一些人,可能是cmdok.tmp一建立,DO语句就通过了,接着执行删除,但此时建立cmdok.tmp文件的过程还未最终完成——文件未关闭或是文件的控制权未释放。问题的关键还是在于建立文件和判断文件是否存在的动作是并行的。

我想到了进一步的方法:先判断cmdok.tmp 是否存在,再用Fopen判断能否打开,如果Fopen() > 0 则执行后续语句。明天试试。

[ 本帖最后由 tyjhcw 于 2014-7-7 23:55 编辑 ]
2014-07-07 23:48
sash
Rank: 4
等 级:业余侠客
威 望:6
帖 子:64
专家分:245
注 册:2014-4-25
收藏
得分:2 
不知道,楼主合并PDF文件,是个什么意思?是不是把多个PDF文件合并为一个PDF文件?如果是这样的话,你不应该用vfp,而是应该用其它的专用工具!当然如果你的这些PDF表格文件都是由vfp 生成的话,建议你可采用另一种方法:找一个可以通过打印文件的方法直接生成PDF文件的虚拟打印机软件,装上后,电脑中会增加一个打印机,在你的vfp应用程序中,把报表文件送往这台打印机打印,就会生成一个多页的PDF文件。这样就不需要合并文件了。虚拟打印机软件有许多种,不但可以生成PDF文件,还可以生成jpg,bmp等图片文件,你可以在网上搜搜。
2014-07-08 06:45
liuxingang28
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山东济南
等 级:贵宾
威 望:47
帖 子:658
专家分:2180
注 册:2014-2-7
收藏
得分:0 
回复 8 楼 tyjhcw
在我开发的应用系统中未曾遇到过问题。假如存在您所遇到的问题,不妨在 Delete File c:\mis\~cmdok.tmp 之前,插入一条延时语句,如:=inkey(0.5,'H')。

泉城飞狐
2014-07-08 09:50
快速回复:求助: VFP 中合并 PDF 文件的控件
数据加载中...
 
   



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

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