在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
网上的解决方案一片一片的,我就不一一赘述了。 主要是想写一点我碰到的问题,以及解决方法。 大概流程是这样的,首先利用abcpdf将网页生成生成pdf文件,然后使用swftools将pdf文件生成swf文件,最后使用flexpaper显示。 一 首先是abcpdf的使用,这个比较简单,需要注意的是abcpdf类库分为32位和64位的。 如我的服务器是windows 2003 64,所以对应的abcpdf也要使用64位的,上代码: /// <summary> /// 网页转pdf文件 /// </summary> /// <param name="uri">网址</param> /// <param name="path">pdf的本地路径</param> public static void HTML2PDF(String uri, String path) { using (WebSupergoo.ABCpdf7.Doc doc = new WebSupergoo.ABCpdf7.Doc()) { int count = doc.AddImageUrl(uri); while (true) { if (!doc.Chainable(count)) break; doc.Page = doc.AddPage(); count = doc.AddImageToChain(count); } doc.Save(path); } } 二 然后是swftools的使用,这个是遇到问题最多的一个环节。 1.生成swf的版本问题; 这个问题比较简单,在参数中添加" -s flashversion=9",即可解决。 2.路径中存在空格的问题; 给路径加上双引号,即可解决。 3.pdf文件中文无法转换的问题; 这个就太坑爹了,网上的解决方案,千篇一律,但是我尝试后发现任然无法成功转换(有成功实现的码友,烦请告知缘由。) 后来发现直接用pdf2swf.exe,或者使用IIS Express浏览网页,也就是说不使用IIS,可以正常转换。 所以猜测是因为权限问题,导致转换不成功。修改网站应用程序池的预定义用户为本地系统,问题解决,当然这个地方要注意安全问题,如下图。 4.pdf文件中文太多,导致在flexpaper中显示时操作不流畅的问题。 还是中文问题,这个问题网上没有搜到。一时没了脾气,不得不仔细查看swftools 参数,无果。 由于本人文学水平有限,理解能力不够,只得抱着试一试的心态,把每个参数都尝试一下。 最后发现"-G" -----Remove as many clip layers from file as possible. 在文件中尽量去除影片层,合并它们。 对flash了解不多,影片层更是没有听过,但是不管怎么样,问题解决,下面贴代码。
三 使用flexpaper显示swf文件 没有什么难点,大部分问题在上面已经解决,直接给链接吧,园子里的。
头一回写博客,额,就这。 |
请发表评论