问个PDF在线浏览问题

lilihua520 2012-11-26 02:15:40
是这样的
现在客户要一个功能
PDF在线浏览
用的技术是pdf2swf.exe
PDF转成SWF的这种方法,已经成功,
但是出现有的中文乱码例如黑体,经过网上查找也找到解决方法,
加入这俩gkai00mp.ttf,gbsn00lp.ttf字体,通过字体转换,具体转换看不到,

问题来了,本地成功,网上不成功,路径都正确,不知道有没有大虾用过,或者遇到这种情况,请指教啊。
sb.Append(" -o \"" + swfFile + "\" -t -s languagedir=D:\\vhostroot\\LocalUser\\xydl6\\www\\xpdf\\xpdf-chinese-simplified -s flashversion=9");//swf路径         
...全文
408 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
lilijiehao520 2013-09-09
  • 打赏
  • 举报
回复
你的系统是win7 64位的么?
  • 打赏
  • 举报
回复
qq:282447146 有问题Q我 共同学习
  • 打赏
  • 举报
回复
引用 5 楼 lilihua520 的回复:
引用 4 楼 Hsuifengershi 的回复:能指点我下 这个功能么 我也在弄这块 怎么指点
我弄好了 哈哈
lilihua520 2012-11-28
  • 打赏
  • 举报
回复
解决不了 了啊啊啊啊
小孩快跑 2012-11-27
  • 打赏
  • 举报
回复
没做过的飘过
lilihua520 2012-11-27
  • 打赏
  • 举报
回复
引用 17 楼 kongwei521 的回复:
引用 13 楼 lilihua520 的回复: 404啊 http://www.cnblogs.com/58top/archive/2012/11/26/a-list-of-jquery-pdf-viewers-available-at-the-moment.html
太坑爹了 不支持IE有什么用 微软真坑爹
lilihua520 2012-11-27
  • 打赏
  • 举报
回复
引用 17 楼 kongwei521 的回复:
引用 13 楼 lilihua520 的回复: 404啊 http://www.cnblogs.com/58top/archive/2012/11/26/a-list-of-jquery-pdf-viewers-available-at-the-moment.html
刚看了下地址栏url,原来多了个转义的空格,坑爹的玩意儿
lilihua520 2012-11-27
  • 打赏
  • 举报
回复
引用 17 楼 kongwei521 的回复:
引用 13 楼 lilihua520 的回复: 404啊 http://www.cnblogs.com/58top/archive/2012/11/26/a-list-of-jquery-pdf-viewers-available-at-the-moment.html
我这打开真的是404
蝶恋花雨 2012-11-27
  • 打赏
  • 举报
回复
引用 13 楼 lilihua520 的回复:
404啊
http://www.cnblogs.com/58top/archive/2012/11/26/a-list-of-jquery-pdf-viewers-available-at-the-moment.html
lilihua520 2012-11-27
  • 打赏
  • 举报
回复
引用 15 楼 learnJSee 的回复:
C# code? 123456789101112131415161718192021222324252627282930313233343536373839 /// <summary> /// PDF格式转为SWF /// </summary> /// <param name="pdfPath">PDF文件地址</param> ……
大神啊 我转是能转 不知道你遇到过乱码没, 现在好像是因为黑体的事情,在我机器好使,其他任何机器都不行,啊啊啊啊啊到底为什么、、、
遊戲王千金 2012-11-27
  • 打赏
  • 举报
回复

 /// <summary>
        /// PDF格式转为SWF
        /// </summary>
        /// <param name="pdfPath">PDF文件地址</param>
        /// <param name="swfPath">生成后的SWF文件地址</param>
        /// <param name="beginpage">转换开始页</param>
        /// <param name="endpage">转换结束页</param>
        private static bool PDF2SWF(string pdfPath, string swfPath, int beginpage, int endpage, int photoQuality)
        {
            string exe = HttpContext.Current.Server.MapPath("~/Bin/tools/pdf2swf-0.9.1.exe");
            pdfPath = HttpContext.Current.Server.MapPath(pdfPath);
            swfPath = HttpContext.Current.Server.MapPath(swfPath);
            if (!System.IO.File.Exists(exe) || !System.IO.File.Exists(pdfPath) || System.IO.File.Exists(swfPath))
            {
                return false;
            }
            StringBuilder sb = new StringBuilder();
            sb.Append(" \"" + pdfPath + "\"");
            sb.Append(" -o \"" + swfPath + "\"");
            sb.Append(" -s flashversion=9");
            if (endpage > GetPageCount(pdfPath)) endpage = GetPageCount(pdfPath);
            sb.Append(" -p " + "\"" + beginpage + "" + "-" + endpage + "\"");
            sb.Append(" -j " + photoQuality);
            string Command = sb.ToString();
            System.Diagnostics.Process p = new System.Diagnostics.Process();
            p.StartInfo.FileName = exe;
            p.StartInfo.Arguments = Command;
            p.StartInfo.WorkingDirectory = HttpContext.Current.Server.MapPath("~/Bin/");
            p.StartInfo.UseShellExecute = false;
            p.StartInfo.RedirectStandardError = true;
            p.StartInfo.CreateNoWindow = false;
            p.Start();
            p.BeginErrorReadLine();
            p.WaitForExit();
            p.Close();
            p.Dispose();
            return true;
        }
  • 打赏
  • 举报
回复

public void ConvertToSwf(string pdfPath, string swfPath, int page)
    {

        try
        {

            string exe =@"C:\SWFTools\pdf2swf.exe";

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

            }
            StringBuilder sb = new StringBuilder();
            sb.Append(" -o\"" + swfPath + "\"");//output          
            sb.Append(" -z");
            sb.Append(" -s flashversion=9");//flash version   
            sb.Append(" -s disablelinks");//禁止PDF里面的链接  
            sb.Append(" -s simpleviewer");
            //sb.Append(" -p " + "1" + "-" + page);//page range  
            sb.Append(" -j 100");
            sb.Append(" \"" + pdfPath + "\"");//input       
            System.Diagnostics.Process proc = new System.Diagnostics.Process();
            proc.StartInfo.FileName = exe;    
            proc.StartInfo.Arguments = sb.ToString();      
            proc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;  
            proc.Start();
            proc.WaitForExit();
            proc.Close();

        }

        catch (Exception ex)
        {

            throw ex;
            Response.Write(ex.ToString());
        }
    }

ConvertToSwf(@"C:\Documents and Settings\Administrator\桌面\xnew123123.swf", 2);

以前做的 也是用pdf2swf做的
lilihua520 2012-11-26
  • 打赏
  • 举报
回复
引用 11 楼 kongwei521 的回复:
http://www.cnblogs.com/58top/archive/2012/11/26/a-list-of-jquery-pdf-viewers-available-at-the-moment.html 在线浏览PDF文件的实用jquery插件推荐
404啊
lilihua520 2012-11-26
  • 打赏
  • 举报
回复
引用 10 楼 yu94285572 的回复:
是中文乱码还是字体显示不全?
是空白(没加修复代码以前是乱码),属于显示不全吧,我试了下本地其他人的机器 都不好用,就我机器好用,win7,xp,server03,这是神马情况。。
蝶恋花雨 2012-11-26
  • 打赏
  • 举报
回复
http://www.cnblogs.com/58top/archive/2012/11/26/a-list-of-jquery-pdf-viewers-available-at-the-moment.html 在线浏览PDF文件的实用jquery插件推荐
  • 打赏
  • 举报
回复
是中文乱码还是字体显示不全?
lilihua520 2012-11-26
  • 打赏
  • 举报
回复

#----- begin Chinese Simplified support package (2011-10.27)
cidToUnicode    Adobe-GB1    D:\vhostroot\LocalUser\xydl6\www\xpdf\xpdf-chinese-simplified\Adobe-GB1.cidToUnicode
unicodeMap    ISO-2022-CN    D:\vhostroot\LocalUser\xydl6\www\xpdf\xpdf-chinese-simplified\ISO-2022-CN.unicodeMap
unicodeMap    EUC-CN        D:\vhostroot\LocalUser\xydl6\www\xpdf\xpdf-chinese-simplified\EUC-CN.unicodeMap
unicodeMap    GBK        D:\vhostroot\LocalUser\xydl6\www\xpdf\xpdf-chinese-simplified\GBK.unicodeMap
cMapDir        Adobe-GB1    D:\vhostroot\LocalUser\xydl6\www\xpdf\xpdf-chinese-simplified\CMap
toUnicodeDir            D:\vhostroot\LocalUser\xydl6\www\xpdf\xpdf-chinese-simplified\CMap
displayCIDFontTT    Adobe-GB1    D:\vhostroot\LocalUser\xydl6\www\xpdf\xpdf-chinese-simplified\CMap\gbsn00lp.ttf
displayCIDFontTT    Adobe-GB1    D:\vhostroot\LocalUser\xydl6\www\xpdf\xpdf-chinese-simplified\CMap\gkai00mp.ttf
displayCIDFontTT    Adobe-GB1    D:\vhostroot\LocalUser\xydl6\www\xpdf\xpdf-chinese-simplified\CMap\STSONG.TTF
#----- end Chinese Simplified support package
哪位大虾看看啊
lilihua520 2012-11-26
  • 打赏
  • 举报
回复
引用 7 楼 Hsuifengershi 的回复:
引用 2 楼 lixin2732r 的回复: 在网上看下源代码 是不是哪的路径不对 楼主不是已经显示出来了么 只是乱码而已 可以把代码发我么 我完全不知道咋弄。。。

public void ConvertToSWF(string oldFile, string swfFile)
    {
        //System.Diagnostics.Process pc = new System.Diagnostics.Process();
        //pc.StartInfo.FileName = @"C:\Program Files\SWFTools\pdf2swf.exe";
        ////pc.StartInfo.FileName = @"C:\Program Files\Macromedia\FlashPaper 2\FlashPrinter.exe";
        //pc.StartInfo.Arguments = string.Format("{0} -o {1}", oldFile, swfFile);
        //pc.StartInfo.CreateNoWindow = true;
        //pc.StartInfo.UseShellExecute = false;
        //pc.StartInfo.RedirectStandardInput = false;
        //pc.StartInfo.RedirectStandardOutput = false;
        //pc.StartInfo.RedirectStandardError = true;
        //pc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
        //bool falg = pc.Start();
        //pc.WaitForExit();
        //pc.Close();
        //pc.Dispose();
        //if (falg)
        //this.BindFiles();
        //            Usage: C:\Program Files\SWFTools\pdf2swf.exe [-options] file.pdf -o file.swf

        //-h , --help                    Print short help message and exit
        //-V , --version                 Print version info and exit
        //-o , --output file.swf         Direct output to file.swf. If file.swf contains '%' (file%.swf), then each page goes to a seperate file.
        //-p , --pages range             Convert only pages in range with range e.g. 1-20 or 1,4,6,9-11 or
        //-P , --password password       Use password for deciphering the pdf.
        //-v , --verbose                 Be verbose. Use more than one -v for greater effect.
        //-z , --zlib                    Use Flash 6 (MX) zlib compression.
        //-i , --ignore                  Allows pdf2swf to change the draw order of the pdf. This may make the generated
        //-j , --jpegquality quality     Set quality of embedded jpeg pictures to quality. 0 is worst (small), 100 is best (big). (default:85)
        //-s , --set param=value         Set a SWF encoder specific parameter.  See pdf2swf -s help for more information.
        //-w , --samewindow              When converting pdf hyperlinks, don't make the links open a new window. 
        //-t , --stop                    Insert a stop() command in each page. 
        //-T , --flashversion num        Set Flash Version in the SWF header to num.
        //-F , --fontdir directory       Add directory to the font search path.
        //-b , --defaultviewer           Link a standard viewer to the swf file. 
        //-l , --defaultloader           Link a standard preloader to the swf file which will be displayed while the main swf is loading.
        //-B , --viewer filename         Link viewer filename to the swf file. 
        //-L , --preloader filename      Link preloader filename to the swf file. 
        //-q , --quiet                   Suppress normal messages.  Use -qq to suppress warnings, also.
        //-S , --shapes                  Don't use SWF Fonts, but store everything as shape.
        //-f , --fonts                   Store full fonts in SWF. (Don't reduce to used characters).
        //-G , --flatten                 Remove as many clip layers from file as possible. 
        //-I , --info                    Don't do actual conversion, just display a list of all pages in the PDF.
        //-Q , --maxtime n               Abort conversion after n seconds. Only available on Unix.
        try
        {
            string exe = Server.MapPath("pdf2swf.exe");//@"C:\Program Files\SWFTools\pdf2swf.exe"; //SWFTools程序路径

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

            }
            StringBuilder sb = new StringBuilder();
            //pdf.pdf -o swf.swf -t -s flashversion=9
            sb.Append(" \"" + oldFile + "\"");//pdf路径     
            sb.Append(" -o \"" + swfFile + "\" -t -s languagedir=D:\\vhostroot\\LocalUser\\xydl6\\www\\xpdf\\xpdf-chinese-simplified -s flashversion=9");//swf路径         
            // sb.Append(" -z");D:\vhostroot\LocalUser\xydl6\www\
            // sb.Append(" -b,defaultviewer");

            //  sb.Append(" -s disablelinks ");//禁止PDF里面的链接  
            //  sb.Append(" -j 100");

            System.Diagnostics.Process proc = new System.Diagnostics.Process();


            proc.StartInfo.FileName = exe;
            proc.StartInfo.Arguments = sb.ToString();
            proc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
            proc.Start();
            proc.WaitForExit();


            bool falg = proc.Start();
            proc.Close();
            if (falg)
                Page.RegisterStartupScript("back", AccessDAL.MessageBox.FN_Alert("消息提示", "添加成功!"));
            // lblMessage.Text = "success";

        }

        catch (Exception ex)
        {

            // lblMessage.Text = ex.ToString();

            Page.RegisterStartupScript("back", AccessDAL.MessageBox.FN_Alert("消息提示", ex.Message.ToString()));
        }

    }
核心代码
  • 打赏
  • 举报
回复
引用 2 楼 lixin2732r 的回复:
在网上看下源代码 是不是哪的路径不对
楼主不是已经显示出来了么 只是乱码而已 可以把代码发我么 我完全不知道咋弄。。。
蝶恋花雨 2012-11-26
  • 打赏
  • 举报
回复
adboe flash 插件装了没有? 装xpdf语言包,解决中文无法显示问题 对于未安装xpdf的用户 pdf2swf在将pdf文件转换成swf文件时,如果pdf中有中文,那么pdf2swf就可能处理不了,这时就需要在pdf2swf生成时添加xpdf支持,接下来我们就来看看如何安装xpdf。 首先到xpdf网站:http://foolabs.com/xpdf/download.html上下载xpdf-chinese-simplified.tar.gz文件(ftp://ftp.foolabs.com/pub/xpdf/xpdf-chinese-simplified.tar.gz),windows与linux皆适用,下载下来后,解压到某一特定目录,然后将本文附件当中名为stsong.tar.gz文件下载下来,解压后将其中的STSONG.TTF字体文件放在xpdf-chinese-simplified所在目录下的CMap目录下,然后打开xpdf-chinese-simplified所在目录下add-to-xpdfrc文件,源文件内容如下: 从原文件中可以看到,其中关于字体路径信息是基于linux的,所以如果要根据你的xpdf-chinese-simplified目录实际存放位置进行修改, 如linux下修改后的内容为: 可以看到这里除了修改标准信息名,还添加了名为displayCIDFontTT的了行信息,在该行信息中,我们指定了之前下载的STSONG.TTF文件的位置。 如果系统为windows,那么修改后的内容可能是下面的样子: 可以看到,该文件同样指定了STSONG.TTF文件位置信息。 参考 pdf转换swf格式出现的乱码问题 http://blog.csdn.net/yali1990515/article/details/7790716
加载更多回复(5)

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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