• 全部
...

asp.net 页面打开PDF

mc916260101 2014-12-19 11:26:20



我是在win7 64位系统上开发的 是可以直接打开查阅的 但是 win7 32位 点击之后就变成下载了 怎么能不让 下载 只是查看
...全文
给本帖投票
308 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
岁月如刀 2014-12-19
  • 打赏
  • 举报
回复
装Adobe,浏览器可在线打开PDF
Tucker_blog 2014-12-19
  • 打赏
  • 举报
回复
toSwf ts = new toSwf(); //将其转换为SWF格式 ts.ConvertToSwf(pdf文件路径, SWF文件路径 + ".swf", ts.GetPageCount(pdf文件路径));
Tucker_blog 2014-12-19
  • 打赏
  • 举报
回复
string rfxview = @"C:\Program Files (x86)\SWFTools\swfs\rfxview.swf"; 在你的安装目录找。 /// <summary> /// 将PDF转换为SWF文件 /// </summary> /// <param name="pdfPath">PDF文件路径</param> /// <param name="swfPath">SWF文件路径</param> /// <param name="page"></param> public void ConvertToSwf(string pdfPath, string swfPath, int page) 你看看这个上面的注释啊!
mc916260101 2014-12-19
  • 打赏
  • 举报
回复
引用 6 楼 Tian_xd 的回复:
还要下载安装pdf2swf这个软件的。
引用 4 楼 Tian_xd 的回复:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
using System.Text;

    public class toSwf
    {
        private void Exec(string arguments, string exePath)
        {
            System.Diagnostics.Process proc = new System.Diagnostics.Process();
            proc.StartInfo.FileName = exePath;
            proc.StartInfo.Arguments = arguments;
            proc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
            proc.Start();
            proc.WaitForExit();
            proc.Close();
        }

        /// <summary>
        /// 返回页数
        /// </summary>
        /// <param name="pdfPath">PDF文件地址</param>
        public int GetPageCount(string pdfPath)
        {
            try
            {
                byte[] buffer = File.ReadAllBytes(pdfPath);
                int length = buffer.Length;
                if (buffer == null)
                    return -1;
                if (buffer.Length <= 0)
                    return -1;
                string pdfText = Encoding.Default.GetString(buffer);
                System.Text.RegularExpressions.Regex rx1 = new System.Text.RegularExpressions.Regex(@"/Type\s*/Page[^s]");
                System.Text.RegularExpressions.MatchCollection matches = rx1.Matches(pdfText);
                return matches.Count;
            }
            catch (Exception ex)
            {
                
                throw ex;
            }
        }




        /// <summary>
        /// 将PDF转换为SWF文件
        /// </summary>
        /// <param name="pdfPath">PDF文件路径</param>
        /// <param name="swfPath">SWF文件路径</param>
        /// <param name="page"></param>
        public  void ConvertToSwf(string pdfPath, string swfPath, int page)
        {
            try
            {
                string pdf2swf_exe = @"C:\Program Files (x86)\SWFTools\pdf2swf.exe";
                string swfcombine_exe = @"C:\Program Files (x86)\SWFTools\swfcombine.exe";

                if (!File.Exists(pdf2swf_exe))
                {
                    throw new ApplicationException("Can not find: " + pdf2swf_exe);
                }

                StringBuilder sb = new StringBuilder();
                sb.Append(" -o \"" + swfPath + "\"");//output
                sb.Append(" -z");
                sb.Append(" -T 9");//flash version
                sb.Append(" -s disablelinks");//禁止PDF里面的链接
                sb.Append(" -p " + "1" + "-" + page);//page range
                sb.Append(" -j 100");//Set quality of embedded jpeg pictures to quality. 0 is worst (small), 100 is best (big). (default:85)
                sb.Append(" \"" + pdfPath + "\"");//input

                //执行swf转换
                this.Exec(sb.ToString(),pdf2swf_exe);

                string rfxview = @"C:\Program Files (x86)\SWFTools\swfs\rfxview.swf";
                string arguments = string.Format("\"{0}\" viewport={1} -o {2}", rfxview, swfPath, swfPath);
                this.Exec(arguments, swfcombine_exe);

            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
    }
第一 :执行了之后会不会再我写的目录下创建一个swf 的文件呢 第二: string rfxview = @"C:\Program Files (x86)\SWFTools\swfs\rfxview.swf"; 这个需要修改成我的哪个文件吗
CANL464970302 2014-12-19
  • 打赏
  • 举报
回复
现在的浏览器基本都支持在线浏览,但是首先的装adobe
Tucker_blog 2014-12-19
  • 打赏
  • 举报
回复
还要下载安装pdf2swf这个软件的。
Tucker_blog 2014-12-19
  • 打赏
  • 举报
回复
然后调用ConvertToSwf方法。 把相应的参数传进去,执行就OK了。
Tucker_blog 2014-12-19
  • 打赏
  • 举报
回复

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
using System.Text;

    public class toSwf
    {
        private void Exec(string arguments, string exePath)
        {
            System.Diagnostics.Process proc = new System.Diagnostics.Process();
            proc.StartInfo.FileName = exePath;
            proc.StartInfo.Arguments = arguments;
            proc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
            proc.Start();
            proc.WaitForExit();
            proc.Close();
        }

        /// <summary>
        /// 返回页数
        /// </summary>
        /// <param name="pdfPath">PDF文件地址</param>
        public int GetPageCount(string pdfPath)
        {
            try
            {
                byte[] buffer = File.ReadAllBytes(pdfPath);
                int length = buffer.Length;
                if (buffer == null)
                    return -1;
                if (buffer.Length <= 0)
                    return -1;
                string pdfText = Encoding.Default.GetString(buffer);
                System.Text.RegularExpressions.Regex rx1 = new System.Text.RegularExpressions.Regex(@"/Type\s*/Page[^s]");
                System.Text.RegularExpressions.MatchCollection matches = rx1.Matches(pdfText);
                return matches.Count;
            }
            catch (Exception ex)
            {
                
                throw ex;
            }
        }




        /// <summary>
        /// 将PDF转换为SWF文件
        /// </summary>
        /// <param name="pdfPath">PDF文件路径</param>
        /// <param name="swfPath">SWF文件路径</param>
        /// <param name="page"></param>
        public  void ConvertToSwf(string pdfPath, string swfPath, int page)
        {
            try
            {
                string pdf2swf_exe = @"C:\Program Files (x86)\SWFTools\pdf2swf.exe";
                string swfcombine_exe = @"C:\Program Files (x86)\SWFTools\swfcombine.exe";

                if (!File.Exists(pdf2swf_exe))
                {
                    throw new ApplicationException("Can not find: " + pdf2swf_exe);
                }

                StringBuilder sb = new StringBuilder();
                sb.Append(" -o \"" + swfPath + "\"");//output
                sb.Append(" -z");
                sb.Append(" -T 9");//flash version
                sb.Append(" -s disablelinks");//禁止PDF里面的链接
                sb.Append(" -p " + "1" + "-" + page);//page range
                sb.Append(" -j 100");//Set quality of embedded jpeg pictures to quality. 0 is worst (small), 100 is best (big). (default:85)
                sb.Append(" \"" + pdfPath + "\"");//input

                //执行swf转换
                this.Exec(sb.ToString(),pdf2swf_exe);

                string rfxview = @"C:\Program Files (x86)\SWFTools\swfs\rfxview.swf";
                string arguments = string.Format("\"{0}\" viewport={1} -o {2}", rfxview, swfPath, swfPath);
                this.Exec(arguments, swfcombine_exe);

            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
    }
mc916260101 2014-12-19
  • 打赏
  • 举报
回复
引用 2 楼 Tian_xd 的回复:
PDF转SWF 在页面查看。 pdf2swf
查到这个方法了 不会写代码
Tucker_blog 2014-12-19
  • 打赏
  • 举报
回复
PDF转SWF 在页面查看。 pdf2swf
完美的神速 2014-12-19
  • 打赏
  • 举报
回复
浏览器无法直接查看pdf和office文件,这种文件一般都是先转换为swf,再使用falsh播放器进行播放。 中间的过程就是PDF(或office文件)-》swf文件-》在页面播放。

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧

手机看
关注公众号

关注公众号

客服 返回
顶部