精华内容
下载资源
问答
  • 最近公司业务需要在pdf中显示表格,但是表格内容列数有点长,导致word转pdf的时候显示不全; 如上图这种显示不全的情况(截图中没有放表格,表格同理一样)。 具体做法:第一、word的模板文件中需要进行设置word...

    友情提醒,这个是目前不支持Linux,只支持wind.

    最近公司业务需要在pdf中显示表格,但是表格内容列数有点长,导致 word 转pdf的时候 显示不全;

    如上图这种显示不全的情况(截图中没有放表格,表格同理一样)。

     具体做法:第一、word的模板文件中需要 进行设置 word 横向布局;打开word => 选择【页面布局】=> 选择右下角的那个 箭头符号; 在页面设置 中,设置 纸张方向为横向,应用到本节,本节就是当前页面;全部就是所有页面了;设置完成后就行了;

    第二、代码这一块,建立Word2PdfUtil .java类;这里要引用jacob相关的jar包: jacob.jar、aspectjweaver.jar; 其他的 poi、dom4j;

    注意:这里需要引用jacob-1.17-x64.dll这个东西;把jacob.dll(不同版本的jacob的dll文件名有所不同)复制到jdk环境中,例如:【C:\Program Files\Java\jdk1.6.0_17\jre\bin】目录下即可。

    相关jar 和 这个java我放到 我的资源页面上了;

    https://download.csdn.net/download/qq_30515213/11022381

    
    import java.io.File;
    
    import org.apache.poi.POIXMLDocument;
    import org.apache.poi.xwpf.usermodel.XWPFDocument;
    import org.dom4j.Document;
    import org.dom4j.DocumentException;
    import org.dom4j.io.SAXReader;
     
    import com.jacob.activeX.ActiveXComponent;
    import com.jacob.com.ComThread;
    import com.jacob.com.Dispatch;
    import com.jacob.com.Variant; 
    public class Word2PdfUtil {  
        static final int wdFormatPDF = 17;// PDF 格式    
        public int wordToPDF(String sfileName,String toFileName) throws Exception{    
                
            System.out.println("启动Word...");      
            long start = System.currentTimeMillis();      
            ActiveXComponent app = null;  
            Dispatch doc = null;  
            try {      
                app = new ActiveXComponent("Word.Application"); 
                // 设置word不可见
                app.setProperty("Visible", new Variant(false));  
                // 打开word文件
                Dispatch docs = app.getProperty("Documents").toDispatch();   
    //          doc = Dispatch.call(docs,  "Open" , sourceFile).toDispatch();   
                doc = Dispatch.invoke(docs,"Open",Dispatch.Method,new Object[] {                    
                   sfileName, new Variant(false),new Variant(true) }, new int[1]).toDispatch();
                System.out.println("打开文档..." + sfileName);  
                System.out.println("转换文档到PDF..." + toFileName);      
                File tofile = new File(toFileName);    
               // System.err.println(getDocPageSize(new File(sfileName)));
                if (tofile.exists()) {      
                    tofile.delete();      
                }        
    //          Dispatch.call(doc, "SaveAs",  destFile,  17);   
             // 作为html格式保存到临时文件::参数 new Variant(8)其中8表示word转html;7表示word转txt;44表示Excel转html;17表示word转成pdf。。
                Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] {                
                    toFileName, new Variant(17) }, new int[1]);    
                long end = System.currentTimeMillis();      
                System.out.println("转换完成..用时:" + (end - start) + "ms.");                
            } catch (Exception e) {  
                e.printStackTrace();  
                System.out.println("========Error:文档转换失败:" + e.getMessage());      
            }catch(Throwable t){
            	t.printStackTrace();
            } finally {  
            	// 关闭word
                Dispatch.call(doc,"Close",false);  
                System.out.println("关闭文档");  
                if (app != null)      
                    app.invoke("Quit", new Variant[] {});      
                }  
              //如果没有这句话,winword.exe进程将不会关闭  
               ComThread.Release();  
               return 1;
               }  
        private static Document read(File xmlFile) throws DocumentException {
            SAXReader saxReader = new SAXReader();
            return saxReader.read(xmlFile);
        }
    //    public String getDocPageSize(File file){
    //        String pages = null;
    //        try{
    //            Document doc = read(file);
    //            List<Node> nodes = doc.selectNodes("//o:Pages");
    //            if(nodes != null && nodes.size() > 0){
    //                pages = nodes.get(0).getText();
    //                System.out.println("/");
    //                System.out.println("该word文档的页数为:"+Integer.parseInt(pages));
    //                System.out.println("/");
    //            }else{
    //                System.out.println("*********");
    //                System.out.println("页面转换错误");
    //                System.out.println("*********");
    //            }
    //        }catch(Exception ex){
    //            ex.printStackTrace(); 
    //        }
    //        return pages;
    //    }
        public  int getDocPageSize(String filePath)  throws Exception {
            XWPFDocument docx = new XWPFDocument(POIXMLDocument.openPackage(filePath));
            int pages = docx.getProperties().getExtendedProperties().getUnderlyingProperties().getPages();//总页数
            int wordCount = docx.getProperties().getExtendedProperties().getUnderlyingProperties().getCharacters();// 忽略空格的总字符数 另外还有getCharactersWithSpaces()方法获取带空格的总字数。        
            System.out.println ("pages=" + pages + " wordCount=" + wordCount);
            return pages;
        }
         
        public static void main(String[] args) throws Exception {  
        	Word2PdfUtil d = new Word2PdfUtil();  
        	//System.err.println(d.getDocPageSize("E:\\test.doc"));
            d.wordToPDF("E:\\test.doc", "E:\\test\\mm.pdf");  
        }  
      
    }  
    

    main方法直接运行,效果如下:

     

    到此已经结束,关于word 模板 数据填充,这里不讲,新人可以自行百度,就是在最终生成好word后,在调用这个类即可。

    出错总结:

    1.没引入jar包,,这个错误我就不说了,,基本上所有人都可以避免.jacob.jar

    2.出现这个错误是因为缺少了jacob-1.17-x64.dll这个东西,报错

    3.需要安装Microsoft Save as PDF 或 XPS

    com.jacob.com.ComFailException: Invoke of: SaveAs 
    
    Source: Microsoft Word 
    
    Description: 命令失败

    出现这种错误网上也有很多解决办法:如下

    Office版本使用2007,因为2007提供了一个加载项:Microsoft Save as PDF 或 XPS,可将文档另存为PDF格式。下载地址:http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=4D951911-3E7E-4AE6-B059-A2E79ED87041,安装即可使用。 

     

    本文参考:https://blog.csdn.net/u013238430/article/details/52943075

    展开全文
  • 但是app运行在 5.1.1的版本是 会出现加载不全 这是 android 5.1.1上显示的 看我红框扩住的部分 ![图片说明](https://img-ask.csdn.net/upload/201810/24/1540342960_35149.jpg) 这是android8.0 ...
  • 问题:seafile自身预览PDF文件,部分不显示 图片显示如下: 一、问题来源 seafile版本:7.0.5 原因: 原文件pdf,字体没有嵌入,所以需要本系统的字体渲染 seafile 使用 pdf.min.js,而把对应map集成了。 ...

    近期在处理网盘和在线文件相关问题,面对的事比较多且杂,记录下。

    问题:seafile自身预览PDF文件,部分不显示

    图片显示如下:

    在这里插入图片描述


    一、问题来源


    seafile版本:7.0.5

    原因:

    1. 原文件pdf,字体没有嵌入,所以需要本系统的字体渲染
    2. seafile 使用 pdf.min.js,而把对应map集成了。

    解决这个问题,关键点在 seafilepdf.js



    二、解决


    seafile预览“有问题的”pdf,且在浏览器里打开开发控制台

    会发现,缺少对应map文件,如图:
    在这里插入图片描述

    解决步骤:

    1. 创建目录/media/js/pdf/web/cmaps/,将Adobe-GB1-UCS2.bcmapUniGB-UCS2-H.bcmap这两个文件放在这个目录下面

      文件可以在 github 里下载:https://github.com/mozilla/pdf.js/blob/master/external/bcmaps/UniGB-UCS2-H.bcmap

    $ root@3e1c6f87e1aa:/opt/seafile/seafile-server-latest/seahub/media/js/pdf/web/cmaps# ls
    Adobe-GB1-UCS2.bcmap  UniGB-UCS2-H.bcmap
    
    1. 更改映射位置
      编辑viewer.js文件
    $ root@3e1c6f87e1aa:/opt/seafile/seafile-server-latest/seahub/media/js/pdf# vi viewer.js 
    

    更改如下:

      cMapUrl: {
          // value: '../web/cmaps/',
          value: '/media/js/pdf/web/cmaps/',
        kind: OptionKind.API
      }
    
    1. 重启服务

    再次从seafile打开“有问题的”pdf,显示正常。

    若还是未成功,可能是因为缓存:

    再次打开可能会因为缓存,显示的pdf不全,这时候需要将缓存关闭。



    三、题外话


    相关问题,调研了其他几家的处理方式,列举如下:

    1. 钉钉 PDF预览,是图片
    2. WPS 预览PDF,可以奏效,但字体貌似有些不同
    3. kkfilepreview,预览PDF也是走 pdf.js

    尝试了下,kkfilepreview没有补全PDF

    PS:今天,升级到社区版 7.1.3,pdf也会显示不全,需要同样处理。

    同样用onlyoffice预览,会出现乱码,这个貌似是 onlyoffice的 BUG,对应issue:https://github.com/ONLYOFFICE/DocumentServer/issues/838

    展开全文
  • 页面展示是这样的[img=... 但是pdf显示这样的,[img=https://img-bbs.csdn.net/upload/201310/15/1381800853_309899.png][/img] 怎么破??? 在一楼上代码
  • PDF.js发票显示不全

    千次阅读 2019-04-11 14:50:32
    在使用 pdf.js 这个插件的时候预览发票显示不全,如下图 我把底部的cmaps引入404问题解决掉就好了,在 viewer.js 文件里 最终效果图:

    在使用 pdf.js 这个插件的时候预览发票显示不全,如下图在这里插入图片描述
    我把底部的cmaps引入404问题解决掉就好了,在 viewer.js 文件里

    在这里插入图片描述
    最终效果图:
    在这里插入图片描述

    展开全文
  • AD导出PDF内容显示不全解决办法

    千次阅读 2021-01-12 09:47:01
    DXP—>Preferneces—>Schematic—>General下 取消Render Text with GDI+

    DXP—>Preferneces—>Schematic—>General下

    取消Render Text with GDI+

    在这里插入图片描述

    展开全文
  • word打印成pdf图片显示不全

    千次阅读 2020-12-19 23:15:40
    今天在肝大作业的时候碰上一个问题,当我把截图Ctrl+c和Ctrl+v复制到word中后显示正常,但是打印成pdf文件后,图片却显示残缺,改变图片编排模式也管用,很奇怪 查阅相关资料,得出解决方案顺利解决: 将图片另存...
  • Excel转成PDF显示不全要怎么办

    千次阅读 2020-10-27 11:39:14
    我们一般在用表格做好数据汇总统计后,为了防止被改动,一般都会将Excel转换成PDF后再保存或传阅等,但也经常会遇到转换后的PDF内容显示不全,多页等情况,这是怎么回事呢? 举一个简单的例子也许就比较好理解了,...
  • 创建模板的时候,文本域宽度固定,设置一个比较长的字符串时,超过文本框长度,多余部分不显示 如 阿尔伯特·爱因斯坦: 解决办法: 不断判断使用某fontSize后文字宽度是否大于文本框宽度,直到找到满足文本框...
  • Excel转PDF如何解决显示不全的问题?

    千次阅读 2019-11-07 18:08:52
    Excel转PDF如何解决显示不全的问题?我们在进行Excel表格转换成PDF文件的过程中,经常会发现转换出的结果很容易出现显示不全、分页等情况。所以今天小编将要分享一个Excel转换PDF的好方法,帮助你快速解决问题。 1...
  • java 使用 itextpdf 生成PDf 多行文本 首行汉字显示不全 如何解决? ![图片说明](https://img-ask.csdn.net/upload/201905/24/1558663703_605935.png)
  • 利用jacob将Excel转换为PDF时,Excel中的列在PDF显示不全如下图,加班费合计右面应该还有列,但是没有显示。另外,各列的数据数据显示不全,如身份证号![图片说明]...
  • 本文档描述了如何解决导出pdf文件中文不显示问题。jasperreport6版本以上已经对pdf font name、pdf encoding等配置弃用,而改为使用font配置字体,所以以前使用itext jar包的方式已经能解决pdf中文不显示问题,...
  • AD用SmartPDF导出原理图标号显示不全,如下图 解决方法: DXP -> Preferences -> Schematic -> 选择不勾选:"Render Text with GDI+" 重新生产一遍smartPDF,效果如下,完美解决: ...
  • asciidoctor-pdf是可以把asciidotor文件生成pdf的库 在处理中文adoc文件时,会提示, warning: regexp match /.../n against to UTF-8 string
  • vue-pdf 签章不显示问题

    千次阅读 2020-09-27 18:06:02
    vue-pdf 解决签章不显示问题 vue-pdf 解决签章不显示问题 1.找到 vue-pdf\node_modules\vue-pdf\node_modules\pdfjs-dist\es5\build\pdf.worker.js 2搜索AnnotationFlag.HIDDEN找到如下位置 // if (data.fieldType =...
  • 通过swagger2markup+... 开始时swagger2markup和asciidoctorj是什么都知道,只能百度,看官方文档(翻译。。。), 遇到问题就一头雾水,完全知道哪里出了问题,要怎么决解,百度上资料(中文?)也是寥
  • Ireport导出Pdf中文不显示

    千次阅读 2013-12-29 09:58:48
    ireport版本:5.5.0,其它版本类似...有一点不足就是当有汉字的组件中还包括字母以及数字时,界面就显得太美观了 二、设置组件属性: pdfFontName:Arial Unicode MS pdfEncoding:Identity-H fontName="Arial Un
  • 效果如图,可显示多页pdf,可显示签章,在移动设备也一样 &lt;html&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;Document&lt;/title&gt; &...
  • PDF文档打开时显示文档不是PDF或文件已损坏,以前可以正常打开,突然显示开,所有文件都打开,怎么解决
  • HTML里中文能显示,但是转出来的PDF里中文不显示。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> ; charset=UTF-8" />
  • itextpdf 解决中文不显示问题

    热门讨论 2014-09-29 08:15:58
    itextpdf 再创将pdf格式文件的时候中文不显示或者乱码问题的解决 其实目前最新版本的itexpdf即使加了asian的辅助包也不能解决中文不显示问题 因为自己试过 可能方式不对 这个绝对显示 显示不了的 分不要
  • 解决pdf.js预览pdf不显示签名问题(两条路)

    千次阅读 热门讨论 2020-09-29 15:51:33
    解决pdf.js预览pdf不显示签名问题(两条路) 解决这个问题的方法很有意思,解决这一类问题的思路就是:如何pdf.js抛出异常或者警告。【其实乍一看好像和问题本身并沾边,哈哈】 电子签章不显示,好像也可以按照...
  • 然后发现印章图片在页底那边显示不全,没有如文字一般自动换到下一页去。例如如下: 最后折腾了半天,在网上试了各种办法。最后只能通过 java提取PDF文字坐标。来算出印章图片坐标,根据坐标y轴测出印章图片极限...
  • PDF 签章图片不显示问题

    千次阅读 2020-10-14 22:23:57
    如果是使用word等工具转换PDF时,使用WPS、Chrome 等均无法显示签章图片,但是使用最新的pdf.js 缺可以显示图片。 分析 在使用word等工具转换PDF时,PDF可能会转换为混合模式。 特征是文档除了正常的trailer 还含有...
  • 在输出PDF的时候如果敷铜显示的话那么整个PDF基本上就看到走线和元件了,为了输出敷铜这样做: 选中层点击鼠标右键: 另外:这里如果点击delete就会删除这个层,点击insert layer就会添加某个层。然后做如下...
  • 解决freemarker+ItextRender生成pdf显示不了中文。 按网络上很多方法都试过了,但就是显示不了中文。 经过一晚上短路,今天突然醒悟了。 网络上方法基本都是对的,那么哪里出问题了呢? 大家都只注意了java代码的...
  • 导出PDF文件中文显示不完整

    千次阅读 2020-01-02 15:48:21
    使用PDF模板导出PDF文件,导出内容里中文显示不完整,解决方法: 将表单的字体设置为Adobe 黑体 Std R即可。
  • 1.cad在打印为PDF文件时,字体会变宽,显示如下图 cad显示: 打印为PDF显示,字体间隔明显变宽了 解决办法:在布局打印中,选择PDF选项,然后 在字体处理中选择去掉“捕获图形中使用的字体”去掉勾 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 190,921
精华内容 76,368
关键字:

pdf显示不全