博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
asp.net 实现pdf、swf等文档的浏览
阅读量:6801 次
发布时间:2019-06-26

本文共 2577 字,大约阅读时间需要 8 分钟。

一、pdf的浏览

可以借助于pdf.js插件完成,使用pdf.js的好处是不需要安装额外的插件(比如flash),是纯web的解决方案。插件的下载链接:http://mozilla.github.io/pdf.js/。

通过pdf.js里面的示例代码可以看出,实际上浏览pdf文档是通过viewer.html实现的。在链接后面通过传入file参数,实现不同文档的浏览。比如如下的链接:

pdf

其中show方法是我定义的一个js方法,用于弹出窗口,定义如下:

{SFZH}是EXT.NET里面传入参数的方式,不是重点。

效果图:

 

二、swf的浏览

有时候为了追求更好的浏览体验,可能需要借助于flash。有现成的flexpaper可以使用。

flexpaper只接收swf文件,所有在使用之前必须准备好swf文件。由于我们如上已经通过itextsharp生成了pdf文档,所以只需要将pdf转换为swf即可。这个功能我们可以使用pdf2swf.exe来完成,可以去http://www.swftools.org/下载。

实现pdf到swf的转换代码如下:

protected void Page_Load(object sender, EventArgs e){    if (!X.IsAjaxRequest)    {        string sfzh = Request.QueryString["sfzh"] as string;        string exe = Server.MapPath("~/Base/pdf2swf.exe");        string source = CommonUtil.GetLocalPathByIdentitycard(sfzh) + sfzh + ".pdf";        string dest = Path.Combine(Server.MapPath("~"), "Swf\\" + sfzh + ".swf");        if (!File.Exists(dest))        {            System.Diagnostics.Process process = new System.Diagnostics.Process();            process.StartInfo.FileName = exe;            process.StartInfo.Arguments = source + " -o " + dest + " -T 9 -f";            process.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;            process.StartInfo.CreateNoWindow = true;            process.StartInfo.UseShellExecute = false;            process.StartInfo.RedirectStandardInput = true;            process.StartInfo.RedirectStandardOutput = true;            process.StartInfo.RedirectStandardError = true;            process.Start();            process.WaitForExit();            process.Close();        }        string swfFile = "../../Swf/" + sfzh + ".swf";        this.Literal1.Text = "var swfFile = '" + swfFile + " '";    }}

这里是通过Process进程实现转换。

前台代码:

swf

show方法跟如上pdf弹出文档的js方法是一样的。

弹出的DASwfView.aspx页面中的html代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DASwfView.aspx.cs" Inherits="DAMIS.Web.Web.DAQueryStatistics.DASwfView" %>                            

To view this page ensure that Adobe Flash Player version 10.0.0 or greater is installed.

如上需要引用的几个js文件可以下载到。DocumentView.js这个文件中有一段代码需要注意:

swfobject.embedSWF(                "../../Swf/DocumentViewer.swf", "flashContent",                "800", "675", "10.0.0", "playerProductInstall.swf",                flashvars, params, attributes);

这里的DocumentViewer.swf文件借用了Insus的InsusDocumentViewer.swf文件(改了个名)。而这部分实现也是参考了Insus的解决方案,具体的可以参考:http://www.cnblogs.com/insus/p/3574298.html这篇博文。

如下的代码就实现在线将pdf转换为swf并显示的功能,效果图如下:

 

你可能感兴趣的文章
JSON 数据格式
查看>>
Django----解决跨域
查看>>
SQL聚合函数
查看>>
Eclipse配色方案
查看>>
字符编码,文件处理
查看>>
Nginx配置文件解析
查看>>
Deep learning:二十六(Sparse coding简单理解)
查看>>
STL中rotate算法的理解
查看>>
KnockOutJs初次体验
查看>>
数据库中函数
查看>>
爬虫综合大作业
查看>>
[shell命令] ln 将文件链接到其他目录下
查看>>
hibernate框架
查看>>
MapperScannerConfigurer
查看>>
下载本 WebEnh博客 安卓APP
查看>>
UNIX环境高级编程——守护进程列表
查看>>
linux物理内存探测
查看>>
Facebook的Pop动画库相关资料
查看>>
Mac: the original hosts
查看>>
UIButton
查看>>