仿百度文库功能浅探(asp.net)

本人既蠢又懒纯菜鸟一枚,出道近三载却发现自己好生颓废,一切都好似原地踏步!决定痛定思痛痛改前非,不能再这样虚度光阴!

首先有了整理之前积累经验的想法,思来想去却又实在没有能够拿出手的东西,只有把在前东家做的一个仿百度文库的小功能献上,但愿能为有需要者提供些许参考……

功能需求为pdf文档只供在线查看不能下载或打印,所尝试方法均参考网络资料,归为原创确实心虚,下面开始介绍:

方法一:pdfobject.js加载pdf文件 + 隐藏Adobe工具栏:该方法严格来说没有实现要求,因为pdf文档在缓存中可以找到,如果要求不高可以使用本方法

1.引入pdfobject.js

2.margin-top设置为-57px隐藏Adobe工具栏


    
     



    

方法二:SWFTools + FlexPaper:该方法通过SWFTools将pdf文件转换为swf格式通过FlexPaper展示,但是有些pdf文件通过转换工具无法转换或转换后无法显示,高版本FlexPaper未找到去打印功能版

1.安装SWFTools 0.9.0

2.下载FlexPaper 2.1.0官方版本或去打印版本

3.将FlexPaper 2.1.0中的css和js文件夹及FlexPaperViewer.swf文件拷贝到项目中,创建浏览页面(浏览页面与FlexPaperViewer.swf要位于同一目录)


    
    
    
       


    
4.转换代码:
public bool Pdf2Swf(string fileUrl, string savePath)
        {
            try
            {
                using (Process p = new Process())
                {
                    string cmdStr = @"C:\Program Files\SWFTools\pdf2swf.exe";
                    string argsStr = "  -t " + fileUrl + " -s flashversion=9 -o " + savePath;
                    //调用新进程 进行转换
                    ProcessStartInfo psi = new ProcessStartInfo(cmdStr, argsStr);
                    p.StartInfo = psi;
                    p.Start();
                    p.WaitForExit();
                }
            }
            catch
            {
                return false;
            }
            return true;
        }
方法三:Print2flash + Print2flash自带展示代码:所有能够打印预览的文件均可以通过Print2flash转换为swf,而且可以设置转换参数(如是否允许打印等),但是其转换的swf文件无法在FlexPaper 2.1.0中显示,不知道是不是因为FlexPaper版本太低的问题;采用Print2flash将文件转换成html文件自动产生的代码展示转换后的文件,存在问题为代码调用Print2flash没有找到参数设置去除打印功能

1.安装Print2flash

2.将文件通过Print2flash转换为html文件自动生成的前台展示代码:






 <%--

--%>
3.后台转化代码:

public void Pdf2Swf(string src,string dest)
        {
            Print2Flash3.Server2 server = new Print2Flash3.Server2();
            server.ConvertFile(src, dest, null, null, null);
        }


以上三种方法均有不足之处,还待大神指导完善;因本人坐井太久,见识极为有限,亦期待大神指点一二……

你可能感兴趣的:(仿百度文库功能浅探(asp.net))