精华内容
下载资源
问答
  • 最近公司业务需要在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

    展开全文
  • word转PDF不显示中文字体问题

    千次阅读 2018-08-14 22:39:10
    maven依赖 &lt;dependency&gt; &lt;groupId&gt;fr.opensagres.xdocreport&lt;/groupId&...org.apache.poi.xwpf.converter.pdf&lt;/artifactId&gt; &l...

    maven依赖

         <dependency>
                <groupId>fr.opensagres.xdocreport</groupId>
                <artifactId>org.apache.poi.xwpf.converter.pdf</artifactId>
                <version>1.0.4</version>
            </dependency>

    java 代码实现

    /**
         *  PdfConverter 转PDF
         * @param sfileName
         * @param toFileName
         * @return
         */
        public static boolean wordToPDF(String sfileName, String toFileName){
            OutputStream out = null;
            try {
                XWPFDocument document=new XWPFDocument(new FileInputStream(new File(sfileName)));
                //
                File outFile = new File(toFileName);
                outFile.getParentFile().mkdirs();
                out = new FileOutputStream(outFile);
                //gb2312
                PdfOptions options= PdfOptions.create();
                PdfConverter.getInstance().convert(document,out,options);
            }catch (FileNotFoundException e){
                LoggerUtil.error(PrintOpreateWord.class,e.getMessage(),e);
                return false;
            } catch (IOException e) {
                LoggerUtil.error(PrintOpreateWord.class,e.getMessage(),e);
                return false;
            } finally {
                if(out != null){
                    try {
                        out.close();
                    } catch (IOException e) {
                        LoggerUtil.error(PrintOpreateWord.class,e.getMessage(),e);
                    }
                }
            }
            return true;
        }

    问题

    在本地运行正常,但是到生产环境字体显示不出来。。。

    解决办法

    字体安装:
    这里就把window上的字体打包,选择中文字体就行,上传到Ubuntu系统, 安装好就成。

    window系统中的字体路径: C:\Windows\Fonts 下

    找到字体库路径
    /usr/share/fonts
    目录下,在其中建立了一个win目录,用于存放上传的中文字体,
    再执行命令:

    fc-cache -fv

    将字体刷到字体缓存中。然后重启下应用

    展开全文
  • 1、Word转换PDF成功但是中文显示不出都是因为字体的问题 下面的方法简单粗暴,但是解决了我的问题, a、将C:\Windows\Fonts 所有字体全部压缩成zip包(allfont.zip) b、将压缩包拷贝到linux服务器上的 /usr/...

    1、Word转换PDF成功但是中文显示不出都是因为字体的问题

    下面的方法简单粗暴,但是解决了我的问题,

    a、将C:\Windows\Fonts 所有字体全部压缩成zip包(allfont.zip)

    b、将压缩包拷贝到linux服务器上的 /usr/share/fonts目录

    c、unzip allfont.zip 解压文件

    d、使用命令刷新到缓存中:执行命令:fc-cache -fv 

    另一个参考:https://blog.csdn.net/jcmj123456/article/details/107954638

    43

    123

     

    展开全文
  • 之前做的word转pdf预览的功能今天突然就显示中文了,找了些官方文档,最后终于解决了,原因就是之前部署在windows上的,现在改到linux上了,需要导入字体。 下载链接: 步骤: 到/usr/share/fonts/目录下,...

    openoffice word转pdf预览中文不显示问题解决

    之前做的word转pdf预览的功能今天突然就不能显示中文了,找了些官方文档,最后终于解决了,原因就是之前部署在windows上的,现在改到linux上了,需要导入字体。

    下载链接:https://download.csdn.net/download/weixin_38783698/15933987

    步骤:

    1. 到/usr/share/fonts/目录下,将上述文件里的字体放到该目录
    2. 生成字体索引
      sudo mkfontscale
      sudo mkfontdir
    3. 更新字体缓存
      sudo fc-cache
    4. 重启openoffice,进入program目录
      soffice -headless -accept=“socket,host=0.0.0.0,port=8100;urp;” -nofirststartwizard &
    展开全文
  • word 转pdf 可以跨平台同时也实现中文显示
  • word转PDF

    2019-02-01 14:03:29
    word转PDF
  • word转pdf

    2018-04-15 00:04:16
    在日常代码开发中经常用到的功能就是word转pdf,下面就来介绍两种的方式第一种:Aspose.wordaspose的开源组件非常多,比如excel的导出,支持的合并单元等功能非常好用,这里用到的是word的相关第三方组组件这里先...
  • 在我的项目中出现了问题 生产(Linux)上就是word转pdf没有汉字显示,只有字母和数字。 因为liunx系统上,没有安装有中文字体库; 解决方案: 问题确认命令: 1、确认是否存在字体 fc-list|grep "宋体" 2、没有字体...
  • java中word转pdf遇到的中文字体问题

    千次阅读 2019-08-24 21:59:28
    记一次将word文档转为PDF文档中遇到的Maven依赖问题,在网上查找解决方案时选择了。 <dependency> <groupId>fr.opensagres.xdocreport</groupId> <artifactId>org.apache.poi.xwpf....
  • 然后发现印章图片在页底那边显示不全,没有如文字一般自动换到下一页去。例如如下: 最后折腾了半天,在网上试了各种办法。最后只能通过 java提取PDF文字坐标。来算出印章图片坐标,根据坐标y轴测出印章图片极限...
  • 1. 在linux下解决中文显示错误 2. 在docker内解决中文显示错误 1. linux下 将windows下C:\Windows\Fonts下的字体打包压缩上传到linux下: unzipwin.zip mvwin/usr/share/fonts cd/usr/share/fonts/ chmod -...
  • word转pdf,ppt转pdf

    2009-11-09 15:47:07
    word转pdf,ppt转pdf ...PDF转WORD那样麻烦。 有些网站可以在线将WORD文件转为PDF文件。 下面是两个可以将WORD文档转为PDF文档的软件,都可以从华军软件园下载。 1 Word to PDF Converter 下载地...
  • Windows和Linux平台上实现Word转PDF前言Windows平台Word转PDFLinux平台Word转PDF参考文献 前言 调研后发现网上有很多解决办法,Windows平台上wordPDF可以完美的转换,但大部分业务是要求在Linux上运行的,基于...
  • Java中Word转PDF解决方案

    千次阅读 2020-03-18 11:24:20
    2、word含有中文的转换为PDF后可显示 二、转换步骤 word —> html —> pdf 三、使用工具(Jar包) 1、poi、itext(如下maven配置) 作用:poi:用于将word转换为html;itext:将html转换为pdf poi...
  • 系统开发遇到一个需求,将上传文档在线展示,最开始是依照其他部门开发的方法,将word内容HTML保存在表中 ,直接读取展示;开发完成后测试发现,文档中包含的一些对勾、箭头灯特殊字符,HTML将会报错,客户要求...
  • 最好用的word转pdf工具

    2009-06-22 22:38:30
    专业版的pdf软件,也就是700多兆大小的那个软件,具有转pdf的功能,但是,本人在使用过程中发现,通过visio画图工具所画的图形和汉字,在插入到word后,然后将word转pdf中,转换时常常能将文字正常显示。...
  • java中word转PDF遇到的中文字体问题

    千次阅读 2019-06-22 13:48:31
    记一次将word文档转为PDF文档中遇到的Maven依赖问题,在网上查找解决方案时选择了 <dependency> <groupId>fr.opensagres.xdocreport</groupId> <artifactId>org.apache.poi.xwpf.converter....
  • word转pdf预览

    2018-12-10 15:02:52
    用aspose实现word(doc、docx格式)转pdf做文件预览; 1、引入依赖jar包; public class WordToPdfUtil { /** * @Description 获取office授权认证,否则会有水印 * @param */ public static boolean getLicense() { ...
  • 当使用confluence编辑页面时,当一行的文字过多,且中间没什么逗号分隔时,有时会出现导出的pdf文件中,这一行显示文字不全的情况。 如: 很明显费用的费字没有显示完全,且后面还有其他的字。 可以看到...
  • PDF转WORD以及WORD转PDF的方法

    千次阅读 2011-12-06 16:04:37
    PDF转换到WORD   PDF文件与WORD的DOC文件的制作方法不同,因此是无法直接转换为Doc文件的,需要借助一款Solid Converter PDF的软件来实现PDF文档到DOC文档的转换。该软件支持中文,在安装后会自动转换为中文...
  • word转pdf图片问题

    2017-02-22 11:45:00
    经过整理总结出两类问题:1,pdf文件下载文档中某些图片显示红叉。 问题现象:pdf是通过word转换成,发现源文件doc和docx文档均出现上述问题;...断定word转pdf不支持tif格式图片。 解决方案:在上传附件...
  • pdf转换成word转换器免费限页数可以很好的转换原来pdf文档中的文字、图片、表格 、超链接、布局,使其转换成的word文档排版与原有文档一样。pdf转换成word转换器是一款小巧、方便且免费的pdf转Word工具...
  • 使用aspose.word 转换pdf中文乱码

    千次阅读 2019-07-10 17:30:42
    在centos服务器使用aspose.word转换word文件为pdf的时候显示中文乱码。但是在win服务器上使用可以正常转换。 问题原因 通过查资料分析后确认是由于centos服务器缺少对应的字库导致文件转换出现乱码的。 解决方案 ...
  • 项目中有一个在线上传并预览实验报告的需求,因为项目部署在ubuntu上面,所以借助libreoffice实现word转pdf,然后使用pdf.js在线预览pdf文档.Python里面调用libreoffice转换Word-&gt;pdf的方法:subprocess.call( '...
  • 电脑小白可能明白,为什么WORD能转为PDFPDFWORD文档呢?我也解释清楚,大致是因为PDF文档中可能无保存原有的文字信息和格式信息,甚至有些PDF其实就是图片。对于保存了文字信息的PDF,直接把文字...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,689
精华内容 5,875
关键字:

word转pdf文字显示不全