精华内容
下载资源
问答
  • 实现想法是将文档转换为pdf进行在线浏览,上代码 pom <!--文件转pdf工具类--> <dependency> <groupId>com.aspose</groupId> <artifactId>aspose-words</artifactId&g...

    实现想法是将文档转换为pdf进行在线浏览,上代码

    pom

      <!--文件转pdf工具类-->
            <dependency>
                <groupId>com.aspose</groupId>
                <artifactId>aspose-words</artifactId>
                <version>15.8.0</version>
            </dependency>
            <dependency>
                <groupId>com.aspose</groupId>
                <artifactId>aspose-cells</artifactId>
                <version>8.5.2</version>
            </dependency>
            <dependency>
                <groupId>com.aspose</groupId>
                <artifactId>aspose-slides</artifactId>
                <version>15.9.0</version>
            </dependency>

    工具类

    主要调用

                FileToPdfUtils.officeToPdf(uploadPath + relativePath + fileName, parsePath);
    
    package com.demo.Utils;
    
    import com.aspose.cells.Workbook;
    import com.aspose.slides.Presentation;
    import com.aspose.slides.SaveFormat;
    import com.aspose.words.Document;
    
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    
    /**
     * @ClassName:FileToPdfUtils
     * @Description: 文件转pdf工具类  linux 服务器需要安装字体不然是乱码
     * @Author: liuhm
     * @Date: 2019/10/10 13:38
     */
    public class FileToPdfUtils {
        /**
         * 文件转换
         *
         * @param source:源文件地址 如:C://test/test.doc,target:转换后文件路径  如 C://test/pdf
         * @return
         */
        public static String officeToPdf(String source, String target) {
            File file = new File(source);
            // 文件名字
            String fileName = file.getName();
            //office文档转pdf
            String fileExt = source.substring(source.lastIndexOf(".") + 1);
            if ("doc".equals(fileExt) || "docx".equals(fileExt)) {
                doc2pdf(source, target, fileExt);
            }
            if ("xls".equals(fileExt) || "xlsx".equals(fileExt)) {
                excel2pdf(source, target, fileExt);
            }
            if ("ppt".equals(fileExt) || "pptx".equals(fileExt)) {
                ppt2pdf(source, target, fileExt);
            }
    
            if ("doc,docx,xls,xlsx,ppt,pptx".indexOf(fileExt) > 0) {
                return target +  File.separator + (fileName.replace(fileExt, "pdf"));
            }
            return null;
        }
    
        /**
         * @description: 验证ExcelLicense
         * @params:
         * @return:
         * @author: com.liuhm
         * @Date: 2019/10/10 13:40
         */
        public static boolean getExcelLicense() {
            boolean result = false;
            try {
                //  license.xml应放在..\WebRoot\WEB-INF\classes路径下
                InputStream is = FileToPdfUtils.class.getClassLoader().getResourceAsStream("license.xml");
                com.aspose.cells.License aposeLic = new com.aspose.cells.License();
                aposeLic.setLicense(is);
                result = true;
            } catch (Exception e) {
                e.printStackTrace();
            }
            return result;
        }
    
        /**
         * @description: 验证PPTtlLicense
         * @params:
         * @return:
         * @author: com.liuhm
         * @Date: 2019/10/10 13:40
         */
        public static boolean getPPTLicense() {
            boolean result = false;
            try {
                //  license.xml应放在..\WebRoot\WEB-INF\classes路径下
                InputStream is = FileToPdfUtils.class.getClassLoader().getResourceAsStream("license.xml");
                com.aspose.slides.License aposeLic = new com.aspose.slides.License();
                aposeLic.setLicense(is);
                result = true;
            } catch (Exception e) {
                e.printStackTrace();
            }
            return result;
        }
    
        /**
         * @description: 验证License
         * @params:
         * @return:
         * @author: com.liuhm
         * @Date: 2019/10/10 13:40
         */
        public static boolean getDocLicense() {
            boolean result = false;
            try {
                //  license.xml应放在..\WebRoot\WEB-INF\classes路径下
                InputStream is = FileToPdfUtils.class.getClassLoader().getResourceAsStream("license.xml");
                com.aspose.words.License aposeLic = new com.aspose.words.License();
                aposeLic.setLicense(is);
                result = true;
            } catch (Exception e) {
                e.printStackTrace();
            }
            return result;
        }
    
        /**
         * @description: excel转pdf
         * @params: source:源文件地址,target:转换后文件路径,fileExt:后缀
         * @return:
         * @author: com.liuhm
         * @Date: 2019/10/10 13:41
         */
        public static void excel2pdf(String source, String target, String fileExt) {
            // 验证License 若不验证则转化出的pdf文档会有水印产生
            if (!getExcelLicense()) {
                return;
            }
            try {
                // 原始excel路径
                Workbook wb = new Workbook(source);
                //验证路径
                try {
                    if (!(new File(target).isDirectory())) {
                        new File(target).mkdirs();
                    }
                } catch (SecurityException e) {
                    e.printStackTrace();
                }
                // 文件名字
                String fileName = new File(source).getName();
                // 输出路径
                File pdfFile = new File(target +  File.separator + (fileName.replace(fileExt, "pdf")));
                FileOutputStream fileOS = new FileOutputStream(pdfFile);
                wb.save(fileOS, com.aspose.cells.SaveFormat.PDF);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        /**
         * @description: ppt转pdf
         * @params: source:源文件地址,target:转换后文件路径,fileExt:后缀
         * @return:
         * @author: com.liuhm
         * @Date: 2019/10/10 13:46
         */
        public static void ppt2pdf(String source, String target, String fileExt) {
            // 验证License 若不验证则转化出的pdf文档会有水印产生
            if (!getPPTLicense()) {
                return;
            }
            try {
                //验证路径
                try {
                    if (!(new File(target).isDirectory())) {
                        new File(target).mkdirs();
                    }
                } catch (SecurityException e) {
                    e.printStackTrace();
                }
                // 文件名字
                String fileName = new File(source).getName();
                //新建一个空白pdf文档
                File file = new File(target +  File.separator + (fileName.replace(fileExt, "pdf")));
                //输入pdf路径
                Presentation pres = new Presentation(source);
                FileOutputStream fileOS = new FileOutputStream(file);
                pres.save(fileOS, SaveFormat.Pdf);
                fileOS.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        /**
         * @description: doc转pdf
         * @params: source:源文件地址,target:转换后文件路径,fileExt:后缀
         * @return:
         * @author: com.liuhm
         * @Date: 2019/10/10 13:46
         */
        public static void doc2pdf(String source, String target, String fileExt) {
            // 验证License 若不验证则转化出的pdf文档会有水印产生
            if (!getDocLicense()) {
                return;
            }
            try {
                //新建一个空白pdf文档
                try {
                    if (!(new File(target).isDirectory())) {
                        new File(target).mkdirs();
                    }
                } catch (SecurityException e) {
                    e.printStackTrace();
                }
                // 文件名字
    
                String fileName = new File(source).getName();
                // 输出路径
                File file = new File(target +  File.separator + (fileName.replace(fileExt, "pdf")));
                FileOutputStream os = new FileOutputStream(file);
                Document doc = new Document(source);
                doc.save(os, com.aspose.words.SaveFormat.PDF);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    

    license.xml 

    <License>
      <Data>
        <Products>
          <Product>Aspose.Total for Java</Product>
          <Product>Aspose.Words for Java</Product>
        </Products>
        <EditionType>Enterprise</EditionType>
        <SubscriptionExpiry>20991231</SubscriptionExpiry>
        <LicenseExpiry>20991231</LicenseExpiry>
        <SerialNumber>8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7</SerialNumber>
      </Data>
      <Signature>sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=</Signature>
    </License>

    注意:如果部署版本后发现转pdf是乱码,请在该环境安装字体  

    maven好像下载不了地址,小编放在云盘里面的方便下载

    jar下载地址:

    链接:https://pan.baidu.com/s/1bXy23mqaDGZUWv5UX1kRLA 
    提取码:ucrb

    代码下载

    下面的 aspose-pdf

    注意 :

    linux 环境下

    需要安装对应的中文字体,如微软雅黑

    文件生成的路径不能有盘符 ,如C,D,E,

    如遇乱码

    不知道字体的情况下,将所有的windows字体复制到linux上面  

    复制到 /usr/share/fonts/windows

    然后在 /usr/share/fonts/windows目录下执行

    mkfontscale
    mkfontdir
    fc-cache  -fv  

    如果还不行,查看对应的字体是否存在 如

    fc-list | grep 宋体

    展开全文
  • javaword文档转换为pdf文档

    千次阅读 2013-12-23 11:41:57
    要想通过java实现word文档转换为pdf文档,需下载一个jacob-1.17.zip文件,下载地址为: http://sourceforge.net/projects/jacob-project/ 。   jacob格式转换思路:打开word文档,再调用word文档中的文件另存...

                  要想通过java实现word文档转换为pdf文档,需下载一个jacob-1.17.zip文件,下载地址为: http://sourceforge.net/projects/jacob-project/ 。 

              jacob格式转换思路:打开word文档,再调用word文档中的文件另存为保存一个pdf文件。

              代码实现如下:

    /**
     * 下面使用jacob插件将word转换成pdf文件
     * 1、jacob.jar下载地址:http://sourceforge.net/projects/jacob-project/
     * 2、把jacobXXX.dll文件放在项目的根目录或者windows/system32目录下
     */
    import java.io.File;
    
    import com.jacob.activeX.ActiveXComponent;
    import com.jacob.com.Dispatch;
    import com.jacob.com.Variant;
    
    public class WordToPDF {
    	static final int wdFormatPDF = 17;// PDF 格式
    
    	public static void main(String[] args) {
    		WordToPDF.wordToPdf("C:/Users/KingPoint/Desktop/测试.doc","C:/Users/KingPoint/Desktop/测试.pdf");
    	}
    	/**
    	 * word转pdf
    	 * @param fromAddress 待转文件地址
    	 * @param toAddress	新文件地址
    	 */
    	public static void wordToPdf(String fromAddress,String toAddress){
    	    ActiveXComponent ax = null;
    	    try {
    	    	long startTime = System.currentTimeMillis();
    	    	/*
    	    	 * 创建不同的控件调用不同的值
    	    	 * Word——Word.Application
    	    	 * Excel——Excel.Application
    	    	 * Powerpoint——Powerpoint.Application
    	    	 * Outlook——Outlook.Application
    	    	 * */
    	        ax = new ActiveXComponent("Word.Application");
    	        /*设置打开word文档不可见*/
    	        ax.setProperty("Visible", false);
    	        //获取Word文档中所有内容
    	        Dispatch docs = ax.getProperty("Documents").toDispatch();
    	        //打开word文档,并设置word为不可编辑和不需确认
    	        Dispatch doc = Dispatch.call(docs,
    	                "Open", 
    	                fromAddress,// FileName
    	                false,// ConfirmConversions
    	                true // ReadOnly
    	                ).toDispatch();
    	        
    	        File tofile = new File(toAddress);
    	        if (tofile.exists()) {
    	            tofile.delete();
    	        }
    	        //word文件另存为pdf文件
    	        Dispatch.call(doc,//
    	                "SaveAs", //
    	                toAddress, // FileName
    	                wdFormatPDF);
    	        //关闭word文档
    	        Dispatch.call(doc, "Close", false);
    	        long endTime = System.currentTimeMillis();
    	        System.out.println("转化完成,总共耗时" + (endTime - startTime) + "ms。");
    	    } catch (Exception e) {
    	        System.out.println("========Error:文档转换失败:" + e.getMessage());
    	    } finally {
    	        if (ax != null)
    	            ax.invoke("Quit", new Variant[]{});
    	    }
    	}
    }


     

    展开全文
  • 在使用pdfboxpdf转换为图片时,转换中文时,文档中的标点符号以及数字都没显示,这是什么原因,怎样才能解决,,哪位大神能够帮忙解决一下,先谢了
  • 开发过程中经常会使用javaoffice系列文档转换为PDF, 一般都使用微软提供的openoffice+jodconverter 实现转换文档。 openoffice既有windows版本也有linux版。不用担心生产环境是linux系统。 关于linux系统安装...

    前导:

    1. 开发过程中经常会使用java将office系列文档转换为PDF, 一般都使用微软提供的openoffice+jodconverter 实现转换文档。
    2. openoffice既有windows版本也有linux版。不用担心生产环境是linux系统。
    3. 关于linux系统安装openoffice软件请参照:待更新...

     

    java使用SWFTools将PDF转成swf并使用flexpaper播放PDF

    1、openoffice依赖jar,以maven为例:

    <dependency>
    			<groupId>com.artofsolving</groupId>
    			<artifactId>jodconverter</artifactId>
    			<version>2.2.1</version>
    		</dependency>
    		<dependency>
    			<groupId>org.openoffice</groupId>
    			<artifactId>jurt</artifactId>
    			<version>3.0.1</version>
    		</dependency>
    		<dependency>
    			<groupId>org.openoffice</groupId>
    			<artifactId>ridl</artifactId>
    			<version>3.0.1</version>
    		</dependency>
    		<dependency>
    			<groupId>org.openoffice</groupId>
    			<artifactId>juh</artifactId>
    			<version>3.0.1</version>
    		</dependency>
    		<dependency>
    			<groupId>org.openoffice</groupId>
    			<artifactId>unoil</artifactId>
    			<version>3.0.1</version>
    		</dependency>
    
    		<!--jodconverter2.2.1必须依赖slf4j-jdk14必须这个版本,不然源码中日志会报错,很low的一个问题-->
    		<dependency>
    			<groupId>org.slf4j</groupId>
    			<artifactId>slf4j-jdk14</artifactId>
    			<version>1.4.3</version>
    		</dependency>

    2、直接上转换代码,需要监听openoffice应用程序8100端口即可。

    	public void convert(File sourceFile, File targetFile) {
    
    		try {
    			// 1: 打开连接
    			OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100);
    			connection.connect();
    
    			DocumentConverter converter = new OpenOfficeDocumentConverter(connection);
    			// 2:获取Format
    			DocumentFormatRegistry factory = new BasicDocumentFormatRegistry();
    			DocumentFormat inputDocumentFormat = factory
    					.getFormatByFileExtension(getExtensionName(sourceFile.getAbsolutePath()));
    			DocumentFormat outputDocumentFormat = factory
    					.getFormatByFileExtension(getExtensionName(targetFile.getAbsolutePath()));
    			// 3:执行转换
    			converter.convert(sourceFile, inputDocumentFormat, targetFile, outputDocumentFormat);
    		} catch (ConnectException e) {
    			log.info("文档转换PDF失败");
    		}
    	}

    3、需注意:jodconverter 在转换2007版本以后的xxx.docx文档会报错,原因大家都明03后缀名xxx.doc  07以后版本xxx.docx

    查看jodconverter源码发现documentFormat不支持xxx.docx格式BasicDocumentFormatRegistry中public DocumentFormat getFormatByFileExtension(String extension)默认支持是使用doc格式

    BasicDocumentFormatRegistry类源码

    //
    // JODConverter - Java OpenDocument Converter
    // Copyright (C) 2004-2007 - Mirko Nasato <mirko@artofsolving.com>
    //
    // This library is free software; you can redistribute it and/or
    // modify it under the terms of the GNU Lesser General Public
    // License as published by the Free Software Foundation; either
    // version 2.1 of the License, or (at your option) any later version.
    //
    // This library is distributed in the hope that it will be useful,
    // but WITHOUT ANY WARRANTY; without even the implied warranty of
    // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    // Lesser General Public License for more details.
    // http://www.gnu.org/copyleft/lesser.html
    //
    package com.artofsolving.jodconverter;
    
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    
    public class BasicDocumentFormatRegistry implements DocumentFormatRegistry {
    
    	private List/*<DocumentFormat>*/ documentFormats = new ArrayList();
    
    	public void addDocumentFormat(DocumentFormat documentFormat) {
    		documentFormats.add(documentFormat);
    	}
    
    	protected List/*<DocumentFormat>*/ getDocumentFormats() {
    		return documentFormats;
    	}
    
    	/**
    	 * @param extension the file extension
    	 * @return the DocumentFormat for this extension, or null if the extension is not mapped
    	 */
    	public DocumentFormat getFormatByFileExtension(String extension) {
            if (extension == null) {
                return null;
            }
            String lowerExtension = extension.toLowerCase();
    		for (Iterator it = documentFormats.iterator(); it.hasNext();) {
    			DocumentFormat format = (DocumentFormat) it.next();		
    			if (format.getFileExtension().equals(lowerExtension)) {
    				return format;
    			}
    		}
    		return null;
    	}
    
    	public DocumentFormat getFormatByMimeType(String mimeType) {
    		for (Iterator it = documentFormats.iterator(); it.hasNext();) {
    			DocumentFormat format = (DocumentFormat) it.next();		
    			if (format.getMimeType().equals(mimeType)) {
    				return format;
    			}
    		}
    		return null;
    	}
    }
    

    BasicDocumentFormatRegistry的默认实现类DefaultDocumentFormatRegistry  中支持的文件格式如下

     

    
    //
    // JODConverter - Java OpenDocument Converter
    // Copyright (C) 2004-2007 - Mirko Nasato <mirko@artofsolving.com>
    //
    // This library is free software; you can redistribute it and/or
    // modify it under the terms of the GNU Lesser General Public
    // License as published by the Free Software Foundation; either
    // version 2.1 of the License, or (at your option) any later version.
    //
    // This library is distributed in the hope that it will be useful,
    // but WITHOUT ANY WARRANTY; without even the implied warranty of
    // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    // Lesser General Public License for more details.
    // http://www.gnu.org/copyleft/lesser.html
    //
    package com.artofsolving.jodconverter;
    
    public class DefaultDocumentFormatRegistry extends BasicDocumentFormatRegistry {
    
    	public DefaultDocumentFormatRegistry() {
    		final DocumentFormat pdf = new DocumentFormat("Portable Document Format", "application/pdf", "pdf");
            pdf.setExportFilter(DocumentFamily.DRAWING, "draw_pdf_Export");
    		pdf.setExportFilter(DocumentFamily.PRESENTATION, "impress_pdf_Export");
    		pdf.setExportFilter(DocumentFamily.SPREADSHEET, "calc_pdf_Export");
    		pdf.setExportFilter(DocumentFamily.TEXT, "writer_pdf_Export");
    		addDocumentFormat(pdf);
    		
    		final DocumentFormat swf = new DocumentFormat("Macromedia Flash", "application/x-shockwave-flash", "swf");
            swf.setExportFilter(DocumentFamily.DRAWING, "draw_flash_Export");
    		swf.setExportFilter(DocumentFamily.PRESENTATION, "impress_flash_Export");
    		addDocumentFormat(swf);
    		
    		final DocumentFormat xhtml = new DocumentFormat("XHTML", "application/xhtml+xml", "xhtml");
    		xhtml.setExportFilter(DocumentFamily.PRESENTATION, "XHTML Impress File");
    		xhtml.setExportFilter(DocumentFamily.SPREADSHEET, "XHTML Calc File");
    		xhtml.setExportFilter(DocumentFamily.TEXT, "XHTML Writer File");
    		addDocumentFormat(xhtml);
    
    		// HTML is treated as Text when supplied as input, but as an output it is also
    		// available for exporting Spreadsheet and Presentation formats
    		final DocumentFormat html = new DocumentFormat("HTML", DocumentFamily.TEXT, "text/html", "html");
    		html.setExportFilter(DocumentFamily.PRESENTATION, "impress_html_Export");
    		html.setExportFilter(DocumentFamily.SPREADSHEET, "HTML (StarCalc)");
    		html.setExportFilter(DocumentFamily.TEXT, "HTML (StarWriter)");
    		addDocumentFormat(html);
    		
    		final DocumentFormat odt = new DocumentFormat("OpenDocument Text", DocumentFamily.TEXT, "application/vnd.oasis.opendocument.text", "odt");
    		odt.setExportFilter(DocumentFamily.TEXT, "writer8");
    		addDocumentFormat(odt);
    
    		final DocumentFormat sxw = new DocumentFormat("OpenOffice.org 1.0 Text Document", DocumentFamily.TEXT, "application/vnd.sun.xml.writer", "sxw");
    		sxw.setExportFilter(DocumentFamily.TEXT, "StarOffice XML (Writer)");
    		addDocumentFormat(sxw);
    
    		final DocumentFormat doc = new DocumentFormat("Microsoft Word", DocumentFamily.TEXT, "application/msword", "doc");
    		doc.setExportFilter(DocumentFamily.TEXT, "MS Word 97");
    		addDocumentFormat(doc);
    
    		final DocumentFormat rtf = new DocumentFormat("Rich Text Format", DocumentFamily.TEXT, "text/rtf", "rtf");
    		rtf.setExportFilter(DocumentFamily.TEXT, "Rich Text Format");
    		addDocumentFormat(rtf);
    
    		final DocumentFormat wpd = new DocumentFormat("WordPerfect", DocumentFamily.TEXT, "application/wordperfect", "wpd");
    		addDocumentFormat(wpd);
    
    		final DocumentFormat txt = new DocumentFormat("Plain Text", DocumentFamily.TEXT, "text/plain", "txt");
            // set FilterName to "Text" to prevent OOo from tryign to display the "ASCII Filter Options" dialog
            // alternatively FilterName could be "Text (encoded)" and FilterOptions used to set encoding if needed
            txt.setImportOption("FilterName", "Text");
    		txt.setExportFilter(DocumentFamily.TEXT, "Text");
    		addDocumentFormat(txt);
    
    		final DocumentFormat wikitext = new DocumentFormat("MediaWiki wikitext", "text/x-wiki", "wiki");
    		wikitext.setExportFilter(DocumentFamily.TEXT, "MediaWiki");
            addDocumentFormat(wikitext);
    		
    		final DocumentFormat ods = new DocumentFormat("OpenDocument Spreadsheet", DocumentFamily.SPREADSHEET, "application/vnd.oasis.opendocument.spreadsheet", "ods");
    		ods.setExportFilter(DocumentFamily.SPREADSHEET, "calc8");
    		addDocumentFormat(ods);
    
    		final DocumentFormat sxc = new DocumentFormat("OpenOffice.org 1.0 Spreadsheet", DocumentFamily.SPREADSHEET, "application/vnd.sun.xml.calc", "sxc");
    		sxc.setExportFilter(DocumentFamily.SPREADSHEET, "StarOffice XML (Calc)");
    		addDocumentFormat(sxc);
    
    		final DocumentFormat xls = new DocumentFormat("Microsoft Excel", DocumentFamily.SPREADSHEET, "application/vnd.ms-excel", "xls");
    		xls.setExportFilter(DocumentFamily.SPREADSHEET, "MS Excel 97");
    		addDocumentFormat(xls);
    
            final DocumentFormat csv = new DocumentFormat("CSV", DocumentFamily.SPREADSHEET, "text/csv", "csv");
            csv.setImportOption("FilterName", "Text - txt - csv (StarCalc)");
            csv.setImportOption("FilterOptions", "44,34,0");  // Field Separator: ','; Text Delimiter: '"'  
            csv.setExportFilter(DocumentFamily.SPREADSHEET, "Text - txt - csv (StarCalc)");
            csv.setExportOption(DocumentFamily.SPREADSHEET, "FilterOptions", "44,34,0");
            addDocumentFormat(csv);
    
            final DocumentFormat tsv = new DocumentFormat("Tab-separated Values", DocumentFamily.SPREADSHEET, "text/tab-separated-values", "tsv");
            tsv.setImportOption("FilterName", "Text - txt - csv (StarCalc)");
            tsv.setImportOption("FilterOptions", "9,34,0");  // Field Separator: '\t'; Text Delimiter: '"'
            tsv.setExportFilter(DocumentFamily.SPREADSHEET, "Text - txt - csv (StarCalc)");
            tsv.setExportOption(DocumentFamily.SPREADSHEET, "FilterOptions", "9,34,0");
            addDocumentFormat(tsv);
    
    		final DocumentFormat odp = new DocumentFormat("OpenDocument Presentation", DocumentFamily.PRESENTATION, "application/vnd.oasis.opendocument.presentation", "odp");
    		odp.setExportFilter(DocumentFamily.PRESENTATION, "impress8");
    		addDocumentFormat(odp);
    
    		final DocumentFormat sxi = new DocumentFormat("OpenOffice.org 1.0 Presentation", DocumentFamily.PRESENTATION, "application/vnd.sun.xml.impress", "sxi");
    		sxi.setExportFilter(DocumentFamily.PRESENTATION, "StarOffice XML (Impress)");
    		addDocumentFormat(sxi);
    
    		final DocumentFormat ppt = new DocumentFormat("Microsoft PowerPoint", DocumentFamily.PRESENTATION, "application/vnd.ms-powerpoint", "ppt");
    		ppt.setExportFilter(DocumentFamily.PRESENTATION, "MS PowerPoint 97");
    		addDocumentFormat(ppt);
            
            final DocumentFormat odg = new DocumentFormat("OpenDocument Drawing", DocumentFamily.DRAWING, "application/vnd.oasis.opendocument.graphics", "odg");
            odg.setExportFilter(DocumentFamily.DRAWING, "draw8");
            addDocumentFormat(odg);
            
            final DocumentFormat svg = new DocumentFormat("Scalable Vector Graphics", "image/svg+xml", "svg");
            svg.setExportFilter(DocumentFamily.DRAWING, "draw_svg_Export");
            addDocumentFormat(svg);
      	}
    }
    

     解决方法:重写BasicDocumentFormatRegistry类中public DocumentFormat getFormatByFileExtension(String extension)方法,只要是后缀名包含doc则使用doc的documentFormat文档格式

    //
    // JODConverter - Java OpenDocument Converter
    // Copyright (C) 2004-2007 - Mirko Nasato <mirko@artofsolving.com>
    //
    // This library is free software; you can redistribute it and/or
    // modify it under the terms of the GNU Lesser General Public
    // License as published by the Free Software Foundation; either
    // version 2.1 of the License, or (at your option) any later version.
    //
    // This library is distributed in the hope that it will be useful,
    // but WITHOUT ANY WARRANTY; without even the implied warranty of
    // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    // Lesser General Public License for more details.
    // http://www.gnu.org/copyleft/lesser.html
    //
    package com.artofsolving.jodconverter;
    
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    
    /**
     * 重写 BasicDocumentFormatRegistry 文档格式
     * @author HuGuangJun
     */
    public class BasicDocumentFormatRegistry implements DocumentFormatRegistry {
    
    	private List/* <DocumentFormat> */ documentFormats = new ArrayList();
    
    	public void addDocumentFormat(DocumentFormat documentFormat) {
    		documentFormats.add(documentFormat);
    	}
    
    	protected List/* <DocumentFormat> */ getDocumentFormats() {
    		return documentFormats;
    	}
    
    	/**
    	 * @param extension
    	 *            the file extension
    	 * @return the DocumentFormat for this extension, or null if the extension
    	 *         is not mapped
    	 */
    	public DocumentFormat getFormatByFileExtension(String extension) {
    		if (extension == null) {
    			return null;
    		}
    		//将文件名后缀统一转化
    		if (extension.indexOf("doc") >= 0) {
    			extension = "doc";
    		}
    		if (extension.indexOf("ppt") >= 0) {
    			extension = "ppt";
    		}
    		if (extension.indexOf("xls") >= 0) {
    			extension = "xls";
    		}
    		String lowerExtension = extension.toLowerCase();
    		for (Iterator it = documentFormats.iterator(); it.hasNext();) {
    			DocumentFormat format = (DocumentFormat) it.next();
    			if (format.getFileExtension().equals(lowerExtension)) {
    				return format;
    			}
    		}
    		return null;
    	}
    
    	public DocumentFormat getFormatByMimeType(String mimeType) {
    		for (Iterator it = documentFormats.iterator(); it.hasNext();) {
    			DocumentFormat format = (DocumentFormat) it.next();
    			if (format.getMimeType().equals(mimeType)) {
    				return format;
    			}
    		}
    		return null;
    	}
    }
    

     

    展开全文
  • Atom 文档转换为 JSON

    千次阅读 2008-01-30 11:09:00
    初看起来, Atom 文档转换为 JSON 似乎非常简单。毕竟,Atom 只是一些 XML,并且有大量 XML 和 JSON 转换工具可用。然而,Atom 格式不仅仅是 XML 元素和属性的集合。许多复杂的细节使得很难正确处理 Atom。本文...

    初看起来,将 Atom 文档转换为 JSON 似乎非常简单。毕竟,Atom 只是一些 XML,并且有大量 XML 和 JSON 转换工具可用。然而,Atom 格式不仅仅是 XML 元素和属性的集合。许多复杂的细节使得很难正确处理 Atom。本文将描述这些问题,并演示了一种由 Apache Abdera 项目实现的机制,该机制可以将 Atom 文档转换成 JSON 并生成易于理解、易于使用的完整内容。
    在将一个 Atom 文档转换为 JSON 时,将获得大量富含信息的内容,并将其序列化为一种非常简单的形式。在难于解析和正确处理 XML 的环境中,您可以更加轻松地使用这种更简单的内容形式。这个过程面临的主要挑战是,确保重要数据和上下文不会在转换过程中丢失。以下章节将讨论转换 Atom 文档时的各个关键问题。假设读者至少对 Atom 和 JSON 有一个基本的了解。如果对它们都不熟悉,请在继续阅读之前查看一下本文末尾列出的 参考资料。
    本文转自:IBM developerWorks 中国
    请点击此处查看全文

    展开全文
  • 我们在实际工作中很容易发现,有些时候我们需要Word文档转换为PDF文档,如果只是一个文件,我们也只是需要通过Word提供的转换为PDF文档的功能就可以实现了。但是WPS需要收费才能使用Word转换为PDF文档的服务,...
  • word文档转换为图片格式的PDF

    万次阅读 2017-12-14 19:28:37
    0x00 前言编写一篇文档后,往往会通过转为pdf版本后发布来...因此在这里推出一篇如何word文档转换为图片格式的pdf,来保护保护0x01 作案工具pdftiger下方是本人上传的工具(含注册码) http://download.csdn.net/do
  • 利用pdfboxpdf文档转换为图片

    千次阅读 2013-08-27 14:35:05
    如果需要在网页上预览pdf文档的话,可以pdf转换为flash,同时也可pdf转换为图片文件。以下为使用 pdfbox 对pdf进行转换的实例。  需要用到的jar包:pdfbox-1.8.2.jar、fontbox-1.8.2.jar public static ...
  • C# Word文档转换为HTML

    万次阅读 2013-02-20 14:37:49
    日常生活中,我们总是在Word中进行...这里我提供了一个小工具,你可以Word转换为Html,需要显示的话,可以直接访问该Html,废话不多说,下面看代码。 页面代码: C#代码: using System; using System.Data;
  • 利用POIExcel文档转换为Html

    千次阅读 2013-08-27 11:58:47
    excel文档转换为html其实和word转html相类似,优点也很明显。请参考 word转html  public static void convertExcel2Html(String excelFilePath,String htmlFilePath) throws IOException,...
  • wpsword文档转换为图片格式

    千次阅读 2017-07-07 17:31:14
    1、首先打开需要转化pdf的word文档,找到菜单栏中的特色功能 2、打开特色功能之后,找到菜单中输出图片,然后点击 3、然后在弹出面板中选择导出图片文件的存放路径 4、导出完会显示一个信息框,...
  • word文档转换为markdown(.md)文件

    千次阅读 2020-08-27 14:29:49
    word转换为markdown 安装 pandoc、writage 有的时候我们需要word转换为Markdown,可以用插件writage(Markdown plugin for Microsoft Word) http://www.writage.com/ 个人备份:...
  • 请问:如何pdf文档批量转换为xml文档?谢谢,或者是可以自己设置其格式使得转换出来的xml文档很美观
  • OFFICE 文档转换为html在线预览

    万次阅读 2017-06-20 11:04:01
    OFFICE 文档在线预览方案很多: 服务器先转换为PDF,再转换为SWF,最后...Office文档直接转换为SWF,通过网页加载Flash预览 微软的Office365 在浏览器中直接打开 转换为html 今天,我们要用的方案是转换为html来预览
  • javaWORD文档转换成pdf文件

    万次阅读 2007-10-14 11:31:00
    实现思路一、先WORD文档转换成HMTL文件格式(参阅我的前一文《JAVA操作WORD文档)。二、用流读取HTML文件。其保存在一个String对象中。三、用Itext组件,生成的字符串对象转换成PDF文件。四、在要生成的PDF...
  • Office2007如何Word文档转换PDF文档

    千次阅读 2018-11-24 12:41:31
    今天有需求Word文档转换PDF文档,而公司安装的Office 2007自带没有另存PDF文档功能,所以我们要先给Office 2007 安装一个加载项,就能导出文件并其保存 PDF 或 XPS 格式,生成的也是高质量 PDF。  2007 ...
  • 用宏批量word文档转换为htm文件

    千次阅读 2013-06-27 09:48:11
    2、在弹出的窗体中为宏命名,(方便操作,宏指定到按钮)点击“按钮(B)”,如下图2所示 图2 3、在弹出窗体的左侧栏中选择要添加到快速访问工具栏的宏,点击“添加”按钮,在点击“确定”,操作如下图3所示...
  • Java xml模板动态填充数据转换为word文档

    万次阅读 多人点赞 2018-05-30 19:56:00
     2、通过Java程序,使用freemarker.jar包转换为xml格式的word文档文件 3、使用jacob包,xml格式的word文档文件,转换为docx格式的文档文件具体实现步骤:一、模板编辑 1、word文档另存为xml模板: 2、模板中...
  • 如何多个word文档转换为pdf格式

    千次阅读 2015-07-22 10:31:34
    工作中,你必须应着领导的要求来办事,这点小编也不例外,这不就在昨天,主管让小编制作一份PDF文档,其制作要求很高,而当时小编的工作已经出于饱和状态,根本没有时间来... 工具:选择Word2013来进行转换  方法:
  • JODConverter是一个java的OpenDucument文件转换器,可以进行许多文件格式的转换,它利用 ... 1.Microsoft Office格式转换为OpenDucument,以及OpenDucument转换为Microsoft Office  2.OpenDucument转换为PDF,Wor
  • 如何ofd格式文档转换成Word

    千次阅读 2020-10-14 10:57:26
    我们日常工作中很少使用到OFD格式的文档,如果需要进行修改,一般就只能先转换成常用的Word文档后再编辑,那么如何ofd文件转换成Word呢?以下分享两种方法,一起来看看。 方法1:利用PDF中介 主要是利用PDF虚拟...
  • 使用javaword文档转换为swf格式

    千次阅读 2010-04-12 14:53:00
    doc格式转换为swf 基本做法是 word 转为 pdf ,然后再转为 swf 文件,几种做法的不同在于 word 转换为 pdf 上,所以我们这几天的重点工作就是学习如何 word 转为 pdf ,这几种方法虽然能...
  • 方正阿帕比CEBX格式的文档如何转换为PDF格式文档、DOCX文档?   简介:  PDF、Doc、Docx格式的文档使用的非常普遍,金山WPS可以直接打开PDF和Doc、Docx文档,使用也很方便。  CEB、CEBX格式是方正阿帕比的...
  • 从网上下载的数据往往都是一些txt文本格式的,现在的问题是如何才能转换为WPS表格文档呢?网上搜了了一下,有此一问的朋友还真不在少数,下面就为大家介绍下常用的文本文档转换方法。希望大家可以快速上手。 ...
  • 彩色文档转换为黑白色pdf文档

    千次阅读 2010-11-05 16:15:00
    设置pdf虚拟打印机中“纸张/质量”中“颜色”“黑白”  步骤:word例  菜单选择“文件”->“打印”->“打印机名称”选择“adobe pdf”,选择“属性”->“纸张/质量”中设置“颜色”“黑白”。...
  • 在SharePoint 2010中是可以配置文档库中的文档转换为其他格式的,但默认并没有开启此功能。要启用此功能,首先要在SharePoint 2010管理中心启动“文档转换启动器服务”和“文档转换负载平衡器服务”。如图1所示: ...
  • 找了很多工具,其实都是乱七八糟的,没几个好用的,... ABC Amber PDF Converter ABC Amber PDF Converter 是一个能可以帮助你快速轻松的PDF电子文档转换为HTML,RTF,TXT Ansi,TXT Unicode,DOC,MCW,WPS,SAM,RFT,W
  • 这时,我们就需要照片转换为PDF文档了。PDF文件以Post语言图象模型为基础,会忠实地再现原稿的每一个字符、颜色以及图象,所以PDF来保存传阅照片是最佳的选择。 这里我们来介绍一款能批量图片...
  • 2、通过eclipse或者myeclipse导出doc文档。  项目名称上点击右键-->export-->选择Javadoc--->next--->finish即可导出到自己制定的文件夹下。 注:若遇到导出文档乱码,则点击上图的【next】按钮,在vm ...
  • html版API文档转换成chm格式的API文档

    万次阅读 热门讨论 2014-12-22 22:51:25
    html版API文档转换成chm格式的API文档的方法

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 785,757
精华内容 314,302
关键字:

怎么将文档转换为更新的版本