当前位置 > 首页 > 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实现文档在线浏览

 

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

本文链接



  • NHibernate + Spring.Net 增删改查例子

    2012-5-28 11:48:00

    下载NHibernate + Spring.Net 增删改查例子 开发环境:VS2005(SP1)+SQL2005,如果是用VS2005运行此例子,需确保已经打了 VS2005 SP1的补丁 ,

  • 让我们摆脱这些讨厌的程序员吧

    2009-7-28 18:46:00

    【原文地址】 And Get Rid Of Those Pesky Programmers 【原文发表日期】 Jun 12, 2009   【狐言乱语:说实在

  • ASP.NET MVC Controller激活系统详解:IoC的应用[下篇]

    2012-4-1 12:43:00

    [ 上篇 ]除了通过自定义ControllerFactory的方式引入IoC之外,在使用默认DefaultControllerFactory情况下也可以通过一些扩展使基于IoC的Controller

  • ASP.NET AJAX Script Library Patch for iPhone 1.01 Software Update

    2007-9-13 22:10:00

    Matt Gibbs recently posted about an update to the ASP.NET AJAX Script library that fixes functional

  • 也说Linq动态条件查询

    2007-7-17 11:45:00

    摘要: Linq动态条件查询的两种方法 1,构造表达式 2,构造Query 阅读全文 冬冬 2007-07-17 11:24 发表评论

  • Chicago Day Of DotNetNuke 2010 Recap

    2010-10-13 2:00:00

    Saturday, October 2nd was the Day of DotNetNuke in Chicago .  A number of us from Engage atten

  • 动画缓冲或叫缓动函数(Animation Easing)

    2010-3-22 15:57:00

    之前的博客我介绍过如何做一个动画,以及 渐变风格动画 , 关键帧动画 。我们如果仅仅使用这些知识做一个模拟现实的动画,仍然是比较复杂的,比如:我们要实现一个篮球掉下再弹起,再掉下,再弹起的动画。或者

  • LINQ、NHibernate比较(一)-- LINQ和NHibernate初体验

    2009-9-21 17:55:00

    摘要: 1 引言 研发与数据库打交道的系统的时候,最过于繁琐的莫过于没有编程快感的使用ADO.NET对后台数据库进行操作,因为所有的数据库连接、读取、操作千篇一律,编程成为了体力活。 虽然我们可以设

  • 面向对象的学习方法

    2010-7-4 22:34:00

    作者: richardzeng 发表于 2010-07-04 11:55 原文链接 阅读: 939 评论: 8 在学习面向对象的过程中,我自己也走了很多的弯路。一般来讲,接触面向对象是做为

  • DataGridView动态显示指定列

    2007-7-20 10:18:00

    摘要: 在DataGridView控件中动态显示集合对象的属性... 阅读全文 Michael.Yang 2007-07-18 23:53 发表评论