当前位置 > 首页 > Asp.net

asp.net实现百度文库

2012-7-23 19:23:00来源:Asp.net

网上的解决方案一片一片的,我就不一一赘述了。

主要是想写一点我碰到的问题,以及解决方法。

大概流程是这样的,首先利用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了解不多,影片层更是没有听过,但是不管怎么样,问题解决,下面贴代码。

    
    private static String ToolPath = @"你下载的swftools工具的路径";
/// <summary> /// pdf文件转swf文件 /// </summary> /// <param name="pdfPath">pdf文件路径</param> /// <param name="swfPath">swf文件路径</param> /// <returns></returns> public static void PDF2SWF(String pdfPath, String swfPath) { Process pc = new Process(); ProcessStartInfo psi = new ProcessStartInfo(ToolPath, String.Format(@"""{0}"" -o ""{1}"" {2}", pdfPath, swfPath, @" -s flashversion=9 -G")); pc.StartInfo = psi; pc.Start(); pc.WaitForExit(); }

 

三 使用flexpaper显示swf文件

没有什么难点,大部分问题在上面已经解决,直接给链接吧,园子里的。

flexpaper实现文档在线浏览

 

头一回写博客,额,就这。

本文链接



  • [Flex]flex-htmlfilter swc complete

    2009-9-4 17:54:00

    摘要: 最近一直在找一个可以比较完美解析HTML的第三方工具包,但是苦无什么进展,就在前几天无意中发现了一个第三方类库,感觉还可以能识别一些常规的HTML,但是在图文混排上面还是差很多。这个工具包叫

  • C#实现扫雷出炉

    2009-4-28 5:16:00

    前阵子想用C#写个扫雷,检验一下学习一年多C#的功力如何。扫雷的基本实现很简单,动态生成控件,然后用Controls.Add添加到窗口中,用随机数布雷,处理Mouse事件...最麻烦的事情不过是在点

  • DotNet菜鸟入门之无限极分类(一)设计篇

    2011-2-3 22:34:00

    写在前面的话 首先说明,这个系列的文章,是写给DotNet新手菜鸟的(就像我一样菜的,哈哈),已经算是资深开发的工程师们,可以直接跳过了,当然了,如果高手想来给我们菜鸟一些指点的话,感激不尽

  • Microsoft MVP 2012 – ASP.NET/IIS

    2012-7-2 0:01:00

    It’s Sunday. I wasn’t really sure whether I should expect something today or not, although its 1st

  • System.Data.SQLite.DLL是C++写的,还是.net写的?

    2012-12-7 16:25:00

    System.Data.SQLite.DLL 操作SQLite的这个DLL是C++写的还是.net写的呢? 要是.net 写的,怎么还区分64位跟32位呢?.net不是编译成

  • The Minutes On 9 - Channel 9 Video Interviews with the ASP.NET 4 Team

    2009-10-22 21:50:00

    Who loves you? Not only is Visual Studio 2010 Beta 2 now available for everyone to download (not

  • How to choose a client template engine

    2009-2-5 17:26:00

    Disclaimer: I worked on the Microsoft Ajax 4.0 template engine, so my criteria are of course hea

  • 用MFC实现的飞信给好友发送短信接口

    2009-8-16 7:32:00

    摘要: 用MFC实现的飞信给好友发送短信接口,只实现了登陆、发送短信和退出的功能。其中遇到不少问题,希望和大家一起讨论。 ------------------------------------

  • 新浪微博SDK for .Net 4.0第二版Winform DEMO发布了。

    2012-5-29 17:19:00

    首先感谢大家支持新浪微博SDK for .Net 4.0项目! 在这个百无聊赖的下午,我编写了一个简单的微博客户端,实现了微博几个最基本的功能供大家参考。 运行时截图 登录界面 功

  • 第一篇:Asp.net MVP模式介绍

    2011-8-21 15:06:00

    作者:BirchLee 2011年8月20日 22时10分 【学而不思则罔,思而不学则殆】 本文内容: 1.什么是MVP模式 2.Asp.net MVP模式简单示例