找回密码
 立即注册

QQ登录

只需一步,快速开始

caihuamao520

注册会员

9

主题

34

帖子

107

积分

注册会员

积分
107
caihuamao520
注册会员   /  发表于:2017-9-6 14:24  /   查看:5382  /  回复:7
大神们,我有个很棘手的问题,一直无从下手。我手头上有一批将近1万多个的TIF文件,现在要把这些文件转换成PDF文件将近1千多个(平均要把10个TIF文件合并成1个PDF文件)。我用以下的几行核心代码来实现TIF转PDF

                                        int iTotalPages = rcPage.GetInformation(strTempFilePath, true).TotalPages;
                                        for (int ipage = 1; ipage <= iTotalPages; ipage++)
                                        {
                                            RasterCodecs rc = new RasterCodecs();
                                            rc.Options.Jpeg.Save.QualityFactor = iQualityFactor;
                                            rc.Options.Jpeg.Save.SaveOldJtif = true;
                                            rc.Options.Pdf.Save.SavePdfv15 = true;
                                            RasterImage rai;

                                            rai = rc.Load(strTempFilePath, ipage);
                                            rc.Save(rai, strFinalySaveFileNamePath, RasterImageFormat.RasPdfJpeg422, 24, 1, 1, 1, CodecsSavePageMode.Append);
                                            rc.Dispose();
                                            rai.Dispose();
                                        }


可是不知道为什么,会出现没规律、在同一份TIF文件上不能重现的一个错误,就是会随机的弹出  Not able to open file(无法打开文件),可是当我继续再次尝试转换这个文件的时候,一切又都正常。
这个问题要怎么解决呢?

7 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-9-6 17:46:11
沙发
这个问题比较诡异.因为无法重现,我这边也没有什么确定的解决办法

建议考虑
1会不会是文件被占用导致。
2内存溢出导致,可采用64位编译
回复 使用道具 举报
caihuamao520
注册会员   /  发表于:2017-9-8 11:38:23
板凳
第一个问题呢 基本可以排除 因为文件只有 组件自己在用。
第二个问题呢 肯定可以排除  哈哈 我就是 64 位的应用 而且我还查看了 任务管理器 整个应用占用的内存 100MB都不到。

我也在 按照你说的 第一个问题的思路在思考解决这个问题,就是一直没有好的办法验证。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-9-8 12:25:46
地板
好吧,如果还是不行的话,建议你将源码打包发给我,以及几个TIF文件。我来测试一下看看
回复 使用道具 举报
morganrex
注册会员   /  发表于:2017-11-3 10:52:01
5#
麻烦问下这个问题有答复了吗,我这边也遇到了类似的问题
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-11-3 13:57:34
6#
morganrex 发表于 2017-11-3 10:52
麻烦问下这个问题有答复了吗,我这边也遇到了类似的问题

可以尝试try catch出这个错误后重新执行方法,不能确定的问题的情况下只能这样子,实际上报错的内容也说明可能就是文件被占用或者情况导致无法打开。
回复 使用道具 举报
caihuamao520
注册会员   /  发表于:2018-1-29 11:24:48
7#
以上这个问题,可能我找到问题了所在了,应该是杀毒软件造成的,因为我的电脑安装了360杀毒与360安全卫士,只要这两个杀毒软件关掉,就不会有这个错误出现了。

评分

参与人数 1金币 +500 收起 理由
Richard.Ma + 500 很给力!

查看全部评分

回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-1-29 12:07:48
8#
好的,这个也是给我们提供了一个解决此类错误的经验。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部