问题描述
我是在win764位系统上开发的是可以直接打开查阅的但是win732位点击之后就变成下载了怎么能不让下载只是查看
解决方案
解决方案二:
浏览器无法直接查看pdf和office文件,这种文件一般都是先转换为swf,再使用falsh播放器进行播放。中间的过程就是PDF(或office文件)-》swf文件-》在页面播放。
解决方案三:
PDF转SWF在页面查看。pdf2swf
解决方案四:
引用2楼Tian_xd的回复:
PDF转SWF在页面查看。pdf2swf
查到这个方法了不会写代码
解决方案五:
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingSystem.IO;usingSystem.Text;publicclasstoSwf{privatevoidExec(stringarguments,stringexePath){System.Diagnostics.Processproc=newSystem.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>///<paramname="pdfPath">PDF文件地址</param>publicintGetPageCount(stringpdfPath){try{byte[]buffer=File.ReadAllBytes(pdfPath);intlength=buffer.Length;if(buffer==null)return-1;if(buffer.Length<=0)return-1;stringpdfText=Encoding.Default.GetString(buffer);System.Text.RegularExpressions.Regexrx1=newSystem.Text.RegularExpressions.Regex(@"/Types*/Page[^s]");System.Text.RegularExpressions.MatchCollectionmatches=rx1.Matches(pdfText);returnmatches.Count;}catch(Exceptionex){throwex;}}///<summary>///将PDF转换为SWF文件///</summary>///<paramname="pdfPath">PDF文件路径</param>///<paramname="swfPath">SWF文件路径</param>///<paramname="page"></param>publicvoidConvertToSwf(stringpdfPath,stringswfPath,intpage){try{stringpdf2swf_exe=@"C:ProgramFiles(x86)SWFToolspdf2swf.exe";stringswfcombine_exe=@"C:ProgramFiles(x86)SWFToolsswfcombine.exe";if(!File.Exists(pdf2swf_exe)){thrownewApplicationException("Cannotfind:"+pdf2swf_exe);}StringBuildersb=newStringBuilder();sb.Append("-o""+swfPath+""");//outputsb.Append("-z");sb.Append("-T9");//flashversionsb.Append("-sdisablelinks");//禁止PDF里面的链接sb.Append("-p"+"1"+"-"+page);//pagerangesb.Append("-j100");//Setqualityofembeddedjpegpicturestoquality.0isworst(small),100isbest(big).(default:85)sb.Append("""+pdfPath+""");//input//执行swf转换this.Exec(sb.ToString(),pdf2swf_exe);stringrfxview=@"C:ProgramFiles(x86)SWFToolsswfsrfxview.swf";stringarguments=string.Format(""{0}"viewport={1}-o{2}",rfxview,swfPath,swfPath);this.Exec(arguments,swfcombine_exe);}catch(Exceptionex){throwex;}}}
解决方案六:
然后调用ConvertToSwf方法。把相应的参数传进去,执行就OK了。
解决方案七:
还要下载安装pdf2swf这个软件的。
解决方案八:
现在的浏览器基本都支持在线浏览,但是首先的装adobe
解决方案九:
引用6楼Tian_xd的回复:
还要下载安装pdf2swf这个软件的。
引用4楼Tian_xd的回复:
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingSystem.IO;usingSystem.Text;publicclasstoSwf{privatevoidExec(stringarguments,stringexePath){System.Diagnostics.Processproc=newSystem.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>///<paramname="pdfPath">PDF文件地址</param>publicintGetPageCount(stringpdfPath){try{byte[]buffer=File.ReadAllBytes(pdfPath);intlength=buffer.Length;if(buffer==null)return-1;if(buffer.Length<=0)return-1;stringpdfText=Encoding.Default.GetString(buffer);System.Text.RegularExpressions.Regexrx1=newSystem.Text.RegularExpressions.Regex(@"/Types*/Page[^s]");System.Text.RegularExpressions.MatchCollectionmatches=rx1.Matches(pdfText);returnmatches.Count;}catch(Exceptionex){throwex;}}///<summary>///将PDF转换为SWF文件///</summary>///<paramname="pdfPath">PDF文件路径</param>///<paramname="swfPath">SWF文件路径</param>///<paramname="page"></param>publicvoidConvertToSwf(stringpdfPath,stringswfPath,intpage){try{stringpdf2swf_exe=@"C:ProgramFiles(x86)SWFToolspdf2swf.exe";stringswfcombine_exe=@"C:ProgramFiles(x86)SWFToolsswfcombine.exe";if(!File.Exists(pdf2swf_exe)){thrownewApplicationException("Cannotfind:"+pdf2swf_exe);}StringBuildersb=newStringBuilder();sb.Append("-o""+swfPath+""");//outputsb.Append("-z");sb.Append("-T9");//flashversionsb.Append("-sdisablelinks");//禁止PDF里面的链接sb.Append("-p"+"1"+"-"+page);//pagerangesb.Append("-j100");//Setqualityofembeddedjpegpicturestoquality.0isworst(small),100isbest(big).(default:85)sb.Append("""+pdfPath+""");//input//执行swf转换this.Exec(sb.ToString(),pdf2swf_exe);stringrfxview=@"C:ProgramFiles(x86)SWFToolsswfsrfxview.swf";stringarguments=string.Format(""{0}"viewport={1}-o{2}",rfxview,swfPath,swfPath);this.Exec(arguments,swfcombine_exe);}catch(Exceptionex){throwex;}}}
第一:执行了之后会不会再我写的目录下创建一个swf的文件呢第二:stringrfxview=@"C:ProgramFiles(x86)SWFToolsswfsrfxview.swf";这个需要修改成我的哪个文件吗
解决方案十:
stringrfxview=@"C:ProgramFiles(x86)SWFToolsswfsrfxview.swf";在你的安装目录找。///<summary>///将PDF转换为SWF文件///</summary>///<paramname="pdfPath">PDF文件路径</param>///<paramname="swfPath">SWF文件路径</param>///<paramname="page"></param>publicvoidConvertToSwf(stringpdfPath,stringswfPath,intpage)你看看这个上面的注释啊!
解决方案十一:
toSwfts=newtoSwf();//将其转换为SWF格式ts.ConvertToSwf(pdf文件路径,SWF文件路径+".swf",ts.GetPageCount(pdf文件路径));
解决方案十二:
装Adobe,浏览器可在线打开PDF