• 仿百度文库方案[openoffice.org 3+swftools+flexpaper](八) 之 常见问题集FAQ(转)


    原文出处:http://www.cnblogs.com/star-studio/archive/2012/01/04/2312238.html

    1.txt转换swf,发生中文乱码。

    txt转换为utf-8编码,或txt格式手动改为odt,上传就不会发生乱码。从根源上解决,暂时就算了...暂时不想去纠结这些鸡毛。

    2.加密的pdf可能导致转换为swf失败。

    3.Microsoft Excel在公式运算中支持文本型的数值,而OpenOffice.org Calc不支持

    此问题暂无解,请手动将Excel中文本型的数值修改为数值型的数值。

    4.部分Excel存在过于丰富的样式(大部分指没有数据的单元格也填充了各种样式),即使用专业Adobe Acrobat 7(或9) Pro来进行转换,

    本来可能预计将产生20-30分页的pdf,结果却产生800-900分页的pdf。此类文档在线转换,难以避免的将导致转换死锁。

    请在你的Excel文档中删除多余的,毫无必要的样式,或者你有更灵活的做法。

    5.有些中文PDF文件转换为SWF后,出现乱码(特别一些专业期刊)

     1.下载XPDF:xpdf-chinese-simplified.tar.gz

     2.下载字体:gkai00mp.rar

     3.修改xpdf-chinese-simplified目录下的add-to-xpdfrc文件。将里面的路径设为自己的路径:

    #----- begin Chinese Simplified support package (2011-sep-02)
    cidToUnicode Adobe-GB1    C:xpdf-chinese-simplifiedAdobe-GB1.cidToUnicode
    unicodeMap   ISO-2022-CN C:xpdf-chinese-simplifiedISO-2022-CN.unicodeMap
    unicodeMap   EUC-CN         C:xpdf-chinese-simplifiedEUC-CN.unicodeMap
    unicodeMap   GBK              C:xpdf-chinese-simplifiedGBK.unicodeMap
    cMapDir        Adobe-GB1    C:xpdf-chinese-simplifiedCMap
    toUnicodeDir                     C:xpdf-chinese-simplifiedCMap
    fontDir                             C:WINDOWSFonts
    displayCIDFontTT Adobe-GB1 C:xpdf-chinese-simplifiedCMapgkai00mp.ttf
    #fontFileCC Adobe-GB1 /usr/..../gkai00mp.ttf
    #----- end Chinese Simplified support package

     4.参照上面的代码,在调用pdf2swf命令中加入“ -s languagedir=D:\xpdf\xpdf-chinese-simplified ”参数。

    PDF2SWFUtil.java

    String cmd = exePath + " "" + fileDir + "" -o "" + filePath + "/" + fileName + ".swf" -T 9 -s languagedir=c:\xpdf-chinese-simplified";

    这样乱码的问题就解决了。

    (如果下载不到字体文件,需要的朋友可以找我发给你。)

    =========================================================

    以下为本人遇到的问题及解决方案:

    利用openOffile、FlexPaper显示文档预览问题汇总:

    Q:connection failed: socket,host=localhost,port=8100,tcpNoDelay=1: java.net.ConnectException: Connect

    JAVA、openOffice、myeclipse

    报错原因:没有启动openOffice服务。

    解决办法:

    运行→cmd,输入:

    cd C:Program FilesOpenOffice 4program

    回车

    再输入

    soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard

    回车

    再重新run as/debug asjava源码,就好了。

    ======================================================================

    Q:本地swf文件,不能正常读取,右上角一直转圈。

    一、生成swf时,需要生成版本为9的文件,生成工具只有7、8两个版本。需要自己手动执行cmd。

    输入cd 本地安装pdf2swf.exe路径  回车

    跳转到路径下后:

    输入:pdf2swf.exe -t 源文件路径 -s flashversion=9 -0 目标路径

    例:pdf2swf.exe -t D:file.pdf -s flashversion=9 -0 D:file.swf

    回车即可。

    -----------------------------------------------------------------------

    二、因为没有把FlexPaper添加到adobe信任列表里。解决如下:

    http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04a.html#119065

    跳转到此页面后,点击左侧"Global Security Settings panel"按照提示操作,把FlexPaperViewer.swf添加到信任列表,始终允许。如下图

    完成后重新运行项目。即可。

    ===========================================================

    Q:文件很大,怎样在预览时异步加载。

    A:在pdf转swf的时候,原执行cmd

    String cmd = exePath + " "" + fileDir + "" -s flashversion=9  -o "" + filePath + "/" + fileName + ".swf"";

    修改为:

    String cmd = exePath + " "" + fileDir + "" -s flashversion=9  -o "" + filePath + "/" + fileName + "%.swf"";

    大家可以看到上面的命令行比原来只多了一个%符号,这个符号表示PDF2SWF转换文档时,将为每一页创建一个swf文件。如:"Paper1.swf", "Paper2.swf"。然后在FlexPaper控件配置加载SwfFile的地方,采用:{filename[*,padding],total pages}这种语法表明。

     var fp = new FlexPaperViewer(    
              'FlexPaperViewer', 
              'viewerPlaceHolder', { config : { 
                       SwfFile : "{Paper[*,0].swf,28}", 
                       Scale : 0.6, 
                       ZoomTime : 0.5, 
                       ZoomInterval : 0.1, 
                       FitPageOnLoad : false, 
                       FitWidthOnLoad : false, 
                       PrintEnabled : false, 
                       MinZoomSize : 0.2, 
                       MaxZoomSize : 5, 
                       localeChain : "en_US" 
             }});
    在这个例子中,我们指示FlexPaper按分页的方法来加载一个共有28页的文档,不需要用0填充文件名。假如你的文件是按"Paper01.swf", "Paper02.swf", .. 这种形式拆分时,要将padding设置成1,意思是用一个零来填充文件名。 
  • 相关阅读:
    django系列5.4--ORM中执行原生SQL语句, Python脚本中调用django环境
    Cookie背景了解
    [leetcode] 832. Flipping an Image
    [leetcode] 888. Fair Candy Swap
    [leetcode] 66. Plus One
    0000:Deep Learning Papers Reading Roadmap
    [算法]时间复杂度
    [leetcode] 771. Jewels and Stones
    [cs231n] Convolutional Neural Networks for Visual Recognition
    推翻自己,从头来过
  • 原文地址:https://www.cnblogs.com/m3Lee/p/3842323.html
Copyright © 2020-2023  润新知