PDF在线阅读的两种方法:
1. 直接用Object读取PDF文件(如果机器上客户端都安装了PDF的话)
aspx代码:
其中如果需要从后台读取这个value值(DinnerNow.pdf)在下面一并描述。
2. 将上传的PDF文件转换为swf格式之后,用flash阅读,这样的话就分两步,第一步的话就是在上传文件的时候将PDF转化为swf格式,处理方法如下:
a) 在服务器机器上安装swftools-0.9.1.exe(或者FlashPaper之类的软件),在这边我用swftools(如我的文件安装在C://Program Files//SWFTools)。
b) 客户端上传文件(如用FileUpload上传文件之后,如SaveAs方法之后),调用服务器端CMD,代码如下:
Process p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = true;
p.Start();
p.StandardInput.WriteLine("cd C://Program Files//SWFTools");
// d://DinnerNow.pdf是服务器中保存文件的地址(上传文件到服务器的哪个位置)
// d:// DinnerNow.swf是需要将pdf文件转化为swf文件之后的路径
p.StandardInput.WriteLine("pdf2swf.exe d://DinnerNow.pdf -o d:// DinnerNow.swf -T 9");
p.StandardInput.WriteLine("exit");
p.WaitForExit();
p.Close();
c) 之前两步做的都是准备工作,就是将pdf文件转换为swf,接下来就是在线阅读了,在线阅读跟第一种方法中一样,也用object来处理,aspx代码如下:
document.write('
document.write('');
那么其中的src怎么得到呢,可以在aspx.cs后台传到前台去,如重写一个OnPreRender方法:
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
Page.ClientScript.RegisterClientScriptBlock(GetType(), "swfSrc", "");
}
上面两步建议用自定义控件去封装下
---------------------
作者:山鹰的天空
来源:CSDN
原文:https://blog.csdn.net/LanSeTianKong12/article/details/77529160
版权声明:本文为博主原创文章,转载请附上博文链接!