基本信息
源码名称:pdf提供在线阅读(pdf2swf.exe)
源码大小:29.18M
文件格式:.zip
开发语言:C#
更新时间:2015-09-10
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍

该实例只是一个 flexpager的测试实例,用vs打开的时候 可能无法加载项目,这时,将解决方案文件OfficeToSwf1.1.sln中的  <E:\学习资料\OfficeToSwf> 路径替换成你当前的路径即可

在运行起来之后,访问这个网址即可测试 http://localhost:8549/view.aspx?id=12


文件在线预览
1.实现文件在线预览,需要使用两个软件(pdf2swf.exe)和(SaveAsPDFandXPS.exe)
pdf2swf.exe无须安装,程序直接调用
SaveAsPDFandXPS.exe 使用前安装至服务器

2.目前仅支持word/excel/ppt/pptx 4种文件的转换和预览,在此基础上还可以扩展更过文件
3.文件上传大小限制于100MB以内,通过config文件可以修改文件大小限制
4.实现原理:对上传的先进行转换pdf,如果上传格式为pdf,那么直接保存至服务器。
上传成功之后,会自动保存在服务器。点击当前上传文件预览是,在通过pdf转换为swf文件,通过flash插件进行预览

5.上传的文件统一保存在数据库,保存的内容包含上传的文件和已经转换的pdf文件,swf文件未保存,直接存在服务器UploadFile文件夹下

6.数据库为WenKu.mdf,该数据库版本过高,有可能导致无法附件,可以通过一下SQL创建数据库
create database WenKu
go
use WenKu
go
create table WenKu
(
[WID] [int] IDENTITY(1,1) NOT NULL,
[WName] [ntext] NULL,
[WUploadPath] [ntext] NULL,
[WSavePath] [ntext] NULL
)

7.通过AddFile.aspx上传文件,返回Default3.aspx,查看已经上传的文件,点击文件名进行预览
8.运行逻辑,先上传普通文件,点击预览时读取文件,先转换pdf在转换成swf格式。再次预览如果已存在,则不会转换,否则将转换



==================================================================================
权限问题
1:在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务"
2:依次双击"组件服务"->"计算机"->"我的电脑"->"DCOM配置"
3:在"DCOM配置"中找到"Microsoft Excel 应用程序",在它上面点击右键,然后点击"属性",弹出"Microsoft Excel 应用程序属性"对话框
4:点击"标识"标签,选择"交互式用户"
5:点击"安全"标签,在"启动和激活权限"上点击"自定义",然后点击对应的"编辑"按钮,
在弹出的"安全性"对话框中填加一个"NETWORK SERVICE"用户(注意要选择本计算机名),并给它赋予"本地启动"和"本地激活"权限.
6:依然是"安全"标签,在"访问权限"上点击"自定义",然后点击"编辑",在弹出的"安全性"对话框中也填加一个"NETWORK SERVICE"用户,然后赋予"本地访问"权限.
这样,我们便配置好了相应的Excel的DCOM权限.

7:如果只有Excel就设置Excel的程序,如果有Word那就也设置Word的程序


    protected void RequestFile(string file) {
        string extension = file.Substring(file.LastIndexOf('.'));//获取文件后缀名
        string time = file.Substring(0, file.LastIndexOf('/'));//获取日期格式(yyyy-MM-dd)的文件名

        #region 创建pdf、swf保存的路径
        string path = "\\UploadFile\\file\\" file.Replace("/", "\\");//设置原文件的路径
        string fileUrl = System.Web.HttpContext.Current.Server.MapPath("~") path;//保存文件路径

        string pdf_path = "\\UploadFile\\file_pdf\\" time "\\";//设置pdf上传路径
        string pdfUrl = System.Web.HttpContext.Current.Server.MapPath("~") pdf_path;//保存文件路径

        string swf_path = "\\UploadFile\\file_swf\\" time "\\";//设置swf上传路径
        string swfUrl = System.Web.HttpContext.Current.Server.MapPath("~") swf_path;//保存文件路径

        //如果文件不存在,则从新创建,文件夹以(yyyy-MM-d)的格式创建
        if (!Directory.Exists(pdf_path) || !Directory.Exists(swf_path)) {
            Directory.CreateDirectory(pdfUrl);//创建pdf路径
            Directory.CreateDirectory(swfUrl);//创建swf路径
        }
        #endregion

        #region 文件重新命名为pdf、swf格式
        string fname = file.Substring(file.LastIndexOf('/') 1);//获取文件名称,去除后缀名
        string filename = fname.Substring(0, fname.LastIndexOf('.'));//获取文件名称,去除后缀名


        pdfUrl = filename ".pdf";//把文件更改成pdf格式
        swfUrl = filename ".swf";//把文件更改成swf格式
        string strfile = filename ".swf";//把文件更改成swf格式
        #endregion

        bool blpdf = System.IO.File.Exists(pdfUrl);//判断pdf是否已经存在
        bool blswf = System.IO.File.Exists(swfUrl);//判断swf是否已经存在

        #region 文件转换
        if (!blpdf && !blswf)//pdf和swf都不存在
        {
            FileUpload ffile = new FileUpload();
            ffile.SaveAs(pdfUrl); //讲pdf文件保存到服务器
            if (extension == ".doc" || extension == ".docx") {
                office2pdf.DOCConvertToPDF(fileUrl, pdfUrl);
                pdf2swf.PDFConvertToSWF(pdfUrl, swfUrl);//pdf转换swf保存在服务器
            }
            else if (extension == ".xls" || extension == ".xlsx") {
                office2pdf.XLSConvertToPDF(fileUrl, pdfUrl);
                pdf2swf.PDFConvertToSWF(pdfUrl, swfUrl);//pdf转换swf保存在服务器
            }
            else if (extension == ".ppt" || extension == ".pptx") {
                office2pdf.PPTConvertToPDF(fileUrl, pdfUrl);
                pdf2swf.PDFConvertToSWF(pdfUrl, swfUrl);//pdf转换swf保存在服务器
            }
            else {
                pdf2swf.PDFConvertToSWF(fileUrl, swfUrl);//pdf转换swf保存在服务器
            }

        }
        if (blpdf && !blswf) {
            pdf2swf.PDFConvertToSWF(pdfUrl, swfUrl);//pdf转换swf保存在服务器
        }
        #endregion

        FileNames = "UploadFile/file_swf/" time "/" strfile;
    }