精华内容
下载资源
问答
  • 这是一个很好的word低版本版本的转换器!
  • Word版本转换

    2013-02-01 11:55:50
    Word版本转换,非常好用,特别是常用word2003的朋友
  • 有的时间word2003已有很多的优点,一直舍不得放弃用它,但很多的时候又打不开别人的高版本软件,这个兼容补丁就能帮你解决这个问题。
  • 可能会遇到格式不兼容的问题,就直接导致图纸文件打不开,影响工作效率,那这时候,我们想要做避免这种问题,就要学会高效转换CAD图纸格式,那今天就给大家介绍两种方法,轻松转换CAD版本。 方法一:在线转换法 ...

    我们一般收到或者发给其他人的CAD图纸,可能会遇到格式不兼容的问题,就直接导致图纸文件打不开,影响工作效率,那这时候,我们想要做避免这种问题,就要学会高效转换CAD图纸格式,那今天就给大家介绍两种方法,轻松转换CAD版本。
    这里写图片描述

    方法一:在线转换法
    容适用情况:可以将1M以内大小的cad图纸转换成pdf、jpg格式,或者将pdf转换成cad,自由转换cad版本。

    第一步:在电脑桌面上打开浏览器搜索“迅捷CAD转换器在线版”点击官网直接进入页面即可。
    这里写图片描述
    第二步:在打开的页面之中,我们选择CAD版本转换功能,点击添加文件,在文件夹里打开CAD图纸文件,可以一次添加多个文件。
    这里写图片描述
    第三步:CAD图纸文件转换完成,设置下面的转换格式,还有输出文件版本,版本高的就设置低版本,反之高版本。最后点击开始转换。
    这里写图片描述
    第四步:文件转换好之后,我们点击打开文件,就会弹出一个文件选框,我们直接选择文件保存的路径,点击下载安装。
    这里写图片描述

    方法二:软件转换法
    适用情况:当你对插件进行配置设定之后,就可以直接将cad、jpg、word、excel等文件输出成pdf格式。甚至还可以在转换成pdf格式的同时加密pdf文件。

    步骤一:我们在电脑安装下载迅捷CAD转换器,直接在电脑桌面上打开软件。
    这里写图片描述
    步骤二:在下方的六个功能选项中,我们点击选择CAD版本转换,在中间点击添加文件或者直接把文件拖拽进来进行转换。这里写图片描述

    第三步:在下方设置好【输出类型】——【输出版本】——【批量转换】
    这里写图片描述
    第四步:CAD图纸转换状态达到100%。在【输出目录】中进行文件保存,设置好名称还有保存文件路径就可以随时点击查看或者发送打印。这里写图片描述

    两种方法,都是很实用的哦,希望可以帮助到你。

    展开全文
  • 版本编写的公式保存为低版本时,会发生不兼容问题,由可编辑状态变为图片格式,网上搜索了解决方法,主要有以下几种:(1)插入对象时选择对象类型为Micsoft 公式3.0(由于电脑等原因该方法可能解决不了)(2)...

    高版本编写的公式保存为低版本时,会发生不兼容问题,由可编辑状态变为图片格式,网上搜索了解决方法,主要有以下几种:(1)插入对象时选择对象类型为Micsoft 公式3.0(由于电脑等原因该方法可能解决不了)(2)借助同源软件Libre Office进行转换。本文提供详细介绍第二种方法。
    1、Libre Office下载:https://www.libreoffice.org/
    网页详细介绍了该软件,根据需要尽心下载。
    2、安装Libre Office:直接按照自定义安装,以免后期需要查找一些文件之类,建议类似Office系统软件直接按照自定义安 装,如果对自己安装路径位置十分熟悉,可以安在其他盘。
    3、进行转换
    (1)将高版本编辑好的文件保存为OpenDocument文本
    在这里插入图片描述
    (2)用Libre Office打开上步保存的文档,并保存为97-2003版本。
    (3)用高版本的Word打开,公式变成了可编辑状态。

    展开全文
  • PDF转换Word工具

    热门讨论 2015-05-04 16:46:47
    拥有这款PDF转换器,您相当于有了WORD转PDF转换器,PDF转WORD转换器,PDF转DOC转换器,PDF转TXT转换器,PDF转HTML转换器,PDF转JPG转换器,PDF转HTML转换器,PDF转FLASH转换器,DOC转PDF转换器,TXT转PDF转换器,...
  • 你有没有遇到过要将PDF转换Word需求的时候,找了一大堆工具,进行转换发现有一些转换不了,有一些转换限制,需要付费才能全部转换完成。我最近也是遇到有一个需求需要将PDF转换为Wold,找了好几个工具都是收费的...

    先给大家打个预防针:由于 PDF 文件本身的特性,想要百分百完美地将它转回 Word 格式基本上是不可能的!

    我们都知道PDF是一种不能编辑的文件,如果要将pdf文件转换成word文件又该怎样转换呢?其实我们可以借助工具实现pdf转换成word的操作哦。

    你有没有遇到过要将PDF转换为Word需求的时候,找了一大堆工具,进行转换发现有一些转换不了,有一些转换限制,需要付费才能全部转换完成。我最近也是遇到有一个需求需要将PDF转换为Wold,找了好几个工具都是收费的(因为只是转换一两次,没必要充个会员,不差钱的伙伴可以使用付费版!),通过不断的尝试,最后在网上找到一个,可以在线进行转换,并宣传在线转换永久免费。
    首先我介绍一下我找PDF转Word的旅程吧,我希望你不要再踩我踩过的坑!


    WPS的PDF转Word
    我本机安装的了 WPS ,使用WPS打开PDF,在显示界面很明显地方的显示了 PDF转Word 的字眼,我很开心,这不so easy了嘛!
    在这里插入图片描述
    然而当我点击了PDF转Word 后,界面显示转换进度,等待转换进度百分百的时候,点击开始转换,然后提示我,会员才能转换大于5页的PDF。好吧,此路不通,我只能放弃放弃,不过如果你转换的PDF小于5页可以使用一下。


    迅捷在线PDF转Word
    百度上最先搜索到的,说的是免费的,然而点击进行发现我太年轻了:
    以前未开通会员仅限于2M以内的文件,现在是只能转一页,若想获得更大转换文件、转换更多格式,请开通在线版VIP会员。
    在这里插入图片描述


    风云PDF转换器
    找到这款,首页界面如下(其实还有):
    在这里插入图片描述
    这就是一款比较**”流氓“**的软件,整个界面不管哪个地方只要点击了就会触发 下载这个软件,并且整个首页没有任何一个地方介绍说是一款收费软件,我开开心心的下载完后,安装成功,准备去进行转换的时候,提示:非会员只能转前五页,不论你文件大小如何。


    注: 上面的那些软件描述,全部是基于事实!软件界面的任何地方的操作都会下载此软件,并没有任何地方提示此软件付费,这种方式用户体验真心差的很!百度搜索前面的推广结果,大部分写的全时免费的,但是当你天真的下载后,你会发现还是自己太年轻了,大部分都是需要付费的,而付过费后会发现转化效果也非常差。一定要留意,不要被坑了!!!


    接下来重点来了:


    首先奉上脱水版,详细版详见后文。 对于可复制型PDF ❶ 高版本的 Word 2013及以上版本 可以直接打开并转换 PDF 文档 ❷
    复制粘贴至Word,利用查找替换批量修改不需要的格式 ❸ 在线转换网站 超级pdf、smallpdf、ilovepdf、LightPDF 等

    对于扫描型PDF ❹ 专业的PDF编辑器 Adobe Acrobat Pro DC(免费试用 7 天) ❺ 专业的OCR文字识别软件
    ABBYY FineReader (免费试用30天)


    一、Word 转换法:

    PDF转Word首推的工具就是 Word,没想到吧,Word 还能转换 PDF!
    Word 的确可以转换 PDF,但必须是 Word2013 及以上版本。

    事实上随着Word版本的提升,完全可以把原本由Word转换而来的PDF,逆向转回;你要做的就是选中想要转换的 PDF 文档,右击鼠标选择用 Word2013或2016 打开。
    在这里插入图片描述
    这个时候 Word 友情地提示你,它正在努力地转 Word,但转换之后可能会和 PDF 有点差异,没事,点确认就行。耐心等待过后,你的 PDF 就能转换为 Word 了。经过大量测试,文件较小且原始排版简单或者直接由 Word 转换过来的 PDF 通过 Word2013/2016 效果才能有所保证。(PS:Word现在越来越高级,对于简单的扫描型PDF,Word也有可能转换成功哦,不妨也试试~)


    二、复制粘贴法:

    我们需要选用 PDF 里的局部段落到 Word 中时,复制粘贴足矣!


    三、在线网站免费转:

    随着5G技术的普及,大家越来越依赖云端操作,对于绝大多数偶尔转一下的用户来说,在线平台是首选,PDF在线转Word随用随走,无需额外下载软件的特性,越来越受到大家青睐。


    推荐一:图鲁班在线转换工具
    在这里插入图片描述
    无需任何登录直接选择上传文件,转好直接下载就OK


    推荐二:PDF转换器
    在这里插入图片描述
    支持在线与使用


    推荐三:超级PDF——PDF转Word|PDF转换成Word在线免费 - 超级PDF
    在这里插入图片描述
    缺点就是需要登录,但是登录之后,是可以直接上传PDF就能快速转换成功,转换效果还是能满足日常需求的。它每天有6次,并且不限页数的免费机会!这一点还是挺良心的,由于他的服务器在国内,访问也速度挺快的。


    推荐四:SmallPDF
    首页如下图所示,一体化易于使用的在线PDF工具。虽然有登录图标,但是转换的时候不需要登录, 只是一天只能转一次,然后在转的话,提示获取付费版工具!不过可以先体验 Smallpdf Pro免费7天试用 ,如果你就是用几次的话,可以使用7天试用版。
    在这里插入图片描述
    在这里插入图片描述
    单击该功能后,弹出上传 PDF 文件的界面,你这时只管上传,坐等转换完成,直接下载就好。(注:高级账户€5/月)


    最后再推荐一款免费又好用的**在线PDF编辑软件**(PDF Snake 6.20),响应速度非常快,亲测可用。
    在这里插入图片描述
    其实这些软件用的技术都差不多,要么是调用三方服务,要么是调用三方API……”,为了维持成本和商业目的,多是通过免费服务导流收费业务,请大家注意甄别,避免不必要的损失,如果需求不大,综合利用各个网站实现个人转换即可。

    展开全文
  • Word转换成PDF转换器转换Word到PDF是容易的,但你需要一个有效,并且能支持各种Word各种版本功能强大的Word转换成Adobe PDF最佳解决方案,需要的朋友快来下载使用吧。 软件功能特色 Word转换成PDF转换器就能让你转换...
  • java+poi实现word转换html兼容03和07,可以直接用于项目中,当做工具类使用,添加部分注释,自己也是在网上做了很多功课整理出来的,血汗分
  • 前面上传了:pdf 转换word 格式(doc版本)pdf2word.rar,这里是(rtf版本): pdf 转换 word 格式 (rtf版本) pdf2rtf.rar pdf 转换 word 格式 (rtf版本) pdf2rtf.rar
  • pdf转换word 破解版

    热门讨论 2011-11-17 15:00:55
    右键转换:在安装 AnyBizSoft PDF to Word的时候若勾选了将程序添加到快捷菜单的选项,可直接右键点击单个PDF文件,在弹出菜单中选择使用AnyBizSoft PDF to Word转换,便可迅速将该PDF文件转换成Word文档,而无须...
  • html和word相互转换

    万次阅读 2019-01-22 09:07:27
    目前从html转换word为doc格式,而图片处理支持的是docx格式,所以需要手动把doc另存为docx,然后才可以进行图片替换。 一.添加maven依赖 主要使用了以下和poi相关的依赖,为了便于获取html的图片元素,还使用了...

    项目后端使用了springboot,maven,前端使用了ckeditor富文本编辑器。目前从html转换的word为doc格式,而图片处理支持的是docx格式,所以需要手动把doc另存为docx,然后才可以进行图片替换。

    一.添加maven依赖

    主要使用了以下和poi相关的依赖,为了便于获取html的图片元素,还使用了jsoup:

    <dependency>    <groupId>org.apache.poi</groupId>    <artifactId>poi</artifactId>    <version>3.14</version></dependency><dependency>    <groupId>org.apache.poi</groupId>    <artifactId>poi-scratchpad</artifactId>    <version>3.14</version></dependency><dependency>    <groupId>org.apache.poi</groupId>    <artifactId>poi-ooxml</artifactId>    <version>3.14</version></dependency><dependency>    <groupId>fr.opensagres.xdocreport</groupId>    <artifactId>xdocreport</artifactId>    <version>1.0.6</version></dependency><dependency>    <groupId>org.apache.poi</groupId>    <artifactId>poi-ooxml-schemas</artifactId>    <version>3.14</version></dependency><dependency>    <groupId>org.apache.poi</groupId>    <artifactId>ooxml-schemas</artifactId>    <version>1.3</version></dependency><dependency>    <groupId>org.jsoup</groupId>    <artifactId>jsoup</artifactId>    <version>1.11.3</version></dependency>

    二.word转换为html

    在springboot项目的resources目录下新建static文件夹,将需要转换的word文件temp.docx粘贴进去,由于static是springboot的默认资源文件,所以不需要在配置文件里面另行配置了,如果改成其他名字,需要在application.yml进行相应配置。

    doc格式转换为html:

    public static String docToHtml() throws Exception {
        File path = new File(ResourceUtils.getURL("classpath:").getPath());
        String imagePathStr = path.getAbsolutePath() + "\\static\\image\\";
        String sourceFileName = path.getAbsolutePath() + "\\static\\test.doc";
        String targetFileName = path.getAbsolutePath() + "\\static\\test2.html";
        File file = new File(imagePathStr);    if(!file.exists()) {
            file.mkdirs();
        }
        HWPFDocument wordDocument = new HWPFDocument(new FileInputStream(sourceFileName));
        org.w3c.dom.Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
        WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(document);    //保存图片,并返回图片的相对路径
        wordToHtmlConverter.setPicturesManager((content, pictureType, name, width, height) -> {        try (FileOutputStream out = new FileOutputStream(imagePathStr + name)) {
                out.write(content);
            } catch (Exception e) {
                e.printStackTrace();
            }        return "image/" + name;
        });    wordToHtmlConverter.processDocument(wordDocument);    org.w3c.dom.Document htmlDocument = wordToHtmlConverter.getDocument();    DOMSource domSource = new DOMSource(htmlDocument);    StreamResult streamResult = new StreamResult(new File(targetFileName));    TransformerFactory tf = TransformerFactory.newInstance();    Transformer serializer = tf.newTransformer();    serializer.setOutputProperty(OutputKeys.ENCODING, "utf-8");    serializer.setOutputProperty(OutputKeys.INDENT, "yes");    serializer.setOutputProperty(OutputKeys.METHOD, "html");    serializer.transform(domSource, streamResult);    return targetFileName;
    }123456789101112131415161718192021222324252627282930313233
    

    docx格式转换为html

    public static String docxToHtml() throws Exception {
        File path = new File(ResourceUtils.getURL("classpath:").getPath());
        String imagePath = path.getAbsolutePath() + "\\static\\image";
        String sourceFileName = path.getAbsolutePath() + "\\static\\test.docx";
        String targetFileName = path.getAbsolutePath() + "\\static\\test.html";
    
        OutputStreamWriter outputStreamWriter = null;    try {
            XWPFDocument document = new XWPFDocument(new FileInputStream(sourceFileName));
            XHTMLOptions options = XHTMLOptions.create();        // 存放图片的文件夹
            options.setExtractor(new FileImageExtractor(new File(imagePath)));        // html中图片的路径
            options.URIResolver(new BasicURIResolver("image"));
            outputStreamWriter = new OutputStreamWriter(new FileOutputStream(targetFileName), "utf-8");
            XHTMLConverter xhtmlConverter = (XHTMLConverter) XHTMLConverter.getInstance();
            xhtmlConverter.convert(document, outputStreamWriter, options);
        } finally {        if (outputStreamWriter != null) {
                outputStreamWriter.close();
            }
        }    return targetFileName;
    }
    

    转换成功后会生成对应的html文件,如果想在前端展示,直接读取文件转换为String返回给前端即可。

    public static String readfile(String filePath) {
        File file = new File(filePath);
        InputStream input = null;    try {
            input = new FileInputStream(file);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        StringBuffer buffer = new StringBuffer();    byte[] bytes = new byte[1024];    try {        for (int n; (n = input.read(bytes)) != -1;) {
                buffer.append(new String(bytes, 0, n, "utf8"));
            }
        } catch (IOException e) {
            e.printStackTrace();
        }    return buffer.toString();
    }
    

    在富文本编辑器ckeditor中的显示效果: 
    这里写图片描述

    三.html转换为word

    实现思路就是先把html中的所有图片元素提取出来,统一替换为变量字符”${imgReplace}“,如果多张图片,可以依序排列下去,之后生成对应的doc文件(之前试过直接生成docx文件发现打不开,这个问题尚未找到好的解决方法),我们将其另存为docx文件,之后就可以替换变量为图片了:

    public static String writeWordFile(String content) {
            String path = "D:/wordFile";
            Map<String, Object> param = new HashMap<String, Object>();
    
            if (!"".equals(path)) {
                File fileDir = new File(path);
                if (!fileDir.exists()) {
                    fileDir.mkdirs();
                }
                content = HtmlUtils.htmlUnescape(content);
                List<HashMap<String, String>> imgs = getImgStr(content);
                int count = 0;
                for (HashMap<String, String> img : imgs) {
                    count++;
                    //处理替换以“/>”结尾的img标签
                    content = content.replace(img.get("img"), "${imgReplace" + count + "}");
                    //处理替换以“>”结尾的img标签
                    content = content.replace(img.get("img1"), "${imgReplace" + count + "}");
                    Map<String, Object> header = new HashMap<String, Object>();
    
                    try {
                        File filePath = new File(ResourceUtils.getURL("classpath:").getPath());
                        String imagePath = filePath.getAbsolutePath() + "\\static\\";
                        imagePath += img.get("src").replaceAll("/", "\\\\");
                        //如果没有宽高属性,默认设置为400*300
                        if(img.get("width") == null || img.get("height") == null) {
                            header.put("width", 400);
                            header.put("height", 300);
                        }else {
                            header.put("width", (int) (Double.parseDouble(img.get("width"))));
                            header.put("height", (int) (Double.parseDouble(img.get("height"))));
                        }
                        header.put("type", "jpg");
                        header.put("content", OfficeUtil.inputStream2ByteArray(new FileInputStream(imagePath), true));
                    } catch (FileNotFoundException e) {
                        e.printStackTrace();
                    }
                    param.put("${imgReplace" + count + "}", header);
                }
                try {
                    // 生成doc格式的word文档,需要手动改为docx
                    byte by[] = content.getBytes("UTF-8");
                    ByteArrayInputStream bais = new ByteArrayInputStream(by);
                    POIFSFileSystem poifs = new POIFSFileSystem();
                    DirectoryEntry directory = poifs.getRoot();
                    DocumentEntry documentEntry = directory.createDocument("WordDocument", bais);
                    FileOutputStream ostream = new FileOutputStream("D:\\wordFile\\temp.doc");
                    poifs.writeFilesystem(ostream);
                    bais.close();
                    ostream.close();
    
                    // 临时文件(手动改好的docx文件)
                    CustomXWPFDocument doc = OfficeUtil.generateWord(param, "D:\\wordFile\\temp.docx");
                    //最终生成的带图片的word文件
                    FileOutputStream fopts = new FileOutputStream("D:\\wordFile\\final.docx");
                    doc.write(fopts);
                    fopts.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
    
            }
            return "D:/wordFile/final.docx";
        }
    
        //获取html中的图片元素信息
        public static List<HashMap<String, String>> getImgStr(String htmlStr) {
            List<HashMap<String, String>> pics = new ArrayList<HashMap<String, String>>();
    
            Document doc = Jsoup.parse(htmlStr);
            Elements imgs = doc.select("img");
            for (Element img : imgs) {
                HashMap<String, String> map = new HashMap<String, String>();
                if(!"".equals(img.attr("width"))) {
                    map.put("width", img.attr("width").substring(0, img.attr("width").length() - 2));
                }
                if(!"".equals(img.attr("height"))) {
                    map.put("height", img.attr("height").substring(0, img.attr("height").length() - 2));
                }
                map.put("img", img.toString().substring(0, img.toString().length() - 1) + "/>");
                map.put("img1", img.toString());
                map.put("src", img.attr("src"));
                pics.add(map);
            }
            return pics;
        }
    

    OfficeUtil工具类,之前发现网上的写法只支持一张图片的修改,多张图片就会报错,是因为添加了图片,processParagraphs方法中的runs的大小改变了,会报ArrayList的异常,就和我们循环list中删除元素会报异常道理一样,解决方法就是复制一个新的Arraylist进行循环即可:

    package com.example.demo.util;  
    
    import java.io.ByteArrayInputStream;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Map.Entry;import org.apache.poi.POIXMLDocument;import org.apache.poi.hwpf.extractor.WordExtractor;import org.apache.poi.openxml4j.opc.OPCPackage;import org.apache.poi.xwpf.usermodel.XWPFParagraph;import org.apache.poi.xwpf.usermodel.XWPFRun;import org.apache.poi.xwpf.usermodel.XWPFTable;import org.apache.poi.xwpf.usermodel.XWPFTableCell;import org.apache.poi.xwpf.usermodel.XWPFTableRow;  
    
    /** 
     * 适用于word 2007
     */  public class OfficeUtil {  
    
        /** 
         * 根据指定的参数值、模板,生成 word 文档 
         * @param param 需要替换的变量 
         * @param template 模板 
         */  
        public static CustomXWPFDocument generateWord(Map<String, Object> param, String template) {  
            CustomXWPFDocument doc = null;        try {  
                OPCPackage pack = POIXMLDocument.openPackage(template);  
                doc = new CustomXWPFDocument(pack);  
                if (param != null && param.size() > 0) {  
    
                    //处理段落  
                    List<XWPFParagraph> paragraphList = doc.getParagraphs();  
                    processParagraphs(paragraphList, param, doc);  
    
                    //处理表格  
                    Iterator<XWPFTable> it = doc.getTablesIterator();  
                    while (it.hasNext()) {
                        XWPFTable table = it.next();  
                        List<XWPFTableRow> rows = table.getRows();  
                        for (XWPFTableRow row : rows) {  
                            List<XWPFTableCell> cells = row.getTableCells();  
                            for (XWPFTableCell cell : cells) {  
                                List<XWPFParagraph> paragraphListTable =  cell.getParagraphs();  
                                processParagraphs(paragraphListTable, param, doc);  
                            }  
                        }  
                    }  
                }  
            } catch (Exception e) {  
                e.printStackTrace();  
            }  
            return doc;  
        }  
        /** 
         * 处理段落 
         * @param paragraphList 
         */  
        public static void processParagraphs(List<XWPFParagraph> paragraphList,Map<String, Object> param,CustomXWPFDocument doc){  
            if(paragraphList != null && paragraphList.size() > 0){  
                for(XWPFParagraph paragraph:paragraphList){                //poi转换过来的行间距过大,需要手动调整                if(paragraph.getSpacingBefore() >= 1000 || paragraph.getSpacingAfter() > 1000) {
                        paragraph.setSpacingBefore(0);
                        paragraph.setSpacingAfter(0);
                    }                //设置word中左右间距
                    paragraph.setIndentationLeft(0);
                    paragraph.setIndentationRight(0);
                    List<XWPFRun> runs = paragraph.getRuns();                //加了图片,修改了paragraph的runs的size,所以循环不能使用runs
                    List<XWPFRun> allRuns = new ArrayList<XWPFRun>(runs);                for (XWPFRun run : allRuns) {
                        String text = run.getText(0);  
                        if(text != null){                        boolean isSetText = false;  
                            for (Entry<String, Object> entry : param.entrySet()) {  
                                String key = entry.getKey();  
                                if(text.indexOf(key) != -1){  
                                    isSetText = true;  
                                    Object value = entry.getValue();  
                                    if (value instanceof String) {//文本替换  
                                        text = text.replace(key, value.toString());  
                                    } else if (value instanceof Map) {//图片替换  
                                        text = text.replace(key, "");  
                                        Map pic = (Map)value;  
                                        int width = Integer.parseInt(pic.get("width").toString());  
                                        int height = Integer.parseInt(pic.get("height").toString());  
                                        int picType = getPictureType(pic.get("type").toString());  
                                        byte[] byteArray = (byte[]) pic.get("content");  
                                        ByteArrayInputStream byteInputStream = new ByteArrayInputStream(byteArray);  
                                        try {  
                                            String blipId = doc.addPictureData(byteInputStream,picType);  
                                            doc.createPicture(blipId,doc.getNextPicNameNumber(picType), width, height,paragraph);
                                        } catch (Exception e) {  
                                            e.printStackTrace();  
                                        }  
                                    }  
                                }  
                            }  
                            if(isSetText){  
                                run.setText(text,0);  
                            }  
                        }  
                    }  
                }  
            }  
        }  
        /** 
         * 根据图片类型,取得对应的图片类型代码 
         * @param picType 
         * @return int 
         */  
        private static int getPictureType(String picType){  
            int res = CustomXWPFDocument.PICTURE_TYPE_PICT;  
            if(picType != null){  
                if(picType.equalsIgnoreCase("png")){  
                    res = CustomXWPFDocument.PICTURE_TYPE_PNG;  
                }else if(picType.equalsIgnoreCase("dib")){  
                    res = CustomXWPFDocument.PICTURE_TYPE_DIB;  
                }else if(picType.equalsIgnoreCase("emf")){  
                    res = CustomXWPFDocument.PICTURE_TYPE_EMF;  
                }else if(picType.equalsIgnoreCase("jpg") || picType.equalsIgnoreCase("jpeg")){  
                    res = CustomXWPFDocument.PICTURE_TYPE_JPEG;  
                }else if(picType.equalsIgnoreCase("wmf")){  
                    res = CustomXWPFDocument.PICTURE_TYPE_WMF;  
                }  
            }  
            return res;  
        }  
        /** 
         * 将输入流中的数据写入字节数组 
         * @param in 
         * @return 
         */  
        public static byte[] inputStream2ByteArray(InputStream in,boolean isClose){  
            byte[] byteArray = null;  
            try {  
                int total = in.available();  
                byteArray = new byte[total];  
                in.read(byteArray);  
            } catch (IOException e) {  
                e.printStackTrace();  
            }finally{  
                if(isClose){  
                    try {  
                        in.close();  
                    } catch (Exception e2) {  
                        System.out.println("关闭流失败");  
                    }  
                }  
            }  
            return byteArray;  
        }  
    }
    

    我认为之所以word2003不支持图片替换,主要是处理2003版本的HWPFDocument对象被声明为了final,我们就无法重写他的方法了。而处理2007版本的类为XWPFDocument,是可以继承的,通过继承XWPFDocument,重写createPicture方法即可实现图片替换,以下为对应的CustomXWPFDocument类:

    package com.example.demo.util;    
    
    import java.io.IOException;  
    import java.io.InputStream;  
    import org.apache.poi.openxml4j.opc.OPCPackage;  
    import org.apache.poi.xwpf.usermodel.XWPFDocument;  
    import org.apache.poi.xwpf.usermodel.XWPFParagraph;  
    import org.apache.xmlbeans.XmlException;  
    import org.apache.xmlbeans.XmlToken;  
    import org.openxmlformats.schemas.drawingml.x2006.main.CTNonVisualDrawingProps;  
    import org.openxmlformats.schemas.drawingml.x2006.main.CTPositiveSize2D;  
    import org.openxmlformats.schemas.drawingml.x2006.wordprocessingDrawing.CTInline;  
    
    /** 
     * 自定义 XWPFDocument,并重写 createPicture()方法 
     */  public class CustomXWPFDocument extends XWPFDocument {    
        public CustomXWPFDocument(InputStream in) throws IOException {    
            super(in);    
        }    
    
        public CustomXWPFDocument() {    
            super();    
        }    
    
        public CustomXWPFDocument(OPCPackage pkg) throws IOException {    
            super(pkg);    
        }    
    
        /** 
         * @param ind 
         * @param width 宽 
         * @param height 高 
         * @param paragraph  段落 
         */  
        public void createPicture(String blipId, int ind, int width, int height,XWPFParagraph paragraph) {    
            final int EMU = 9525;    
            width *= EMU;    
            height *= EMU;    
            CTInline inline = paragraph.createRun().getCTR().addNewDrawing().addNewInline();    
            String picXml = ""    
                    + "<a:graphic xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\">"    
                    + "   <a:graphicData uri=\"http://schemas.openxmlformats.org/drawingml/2006/picture\">"    
                    + "      <pic:pic xmlns:pic=\"http://schemas.openxmlformats.org/drawingml/2006/picture\">"    
                    + "         <pic:nvPicPr>" + "            <pic:cNvPr id=\""    
                    + ind    
                    + "\" name=\"Generated\"/>"    
                    + "            <pic:cNvPicPr/>"    
                    + "         </pic:nvPicPr>"    
                    + "         <pic:blipFill>"    
                    + "            <a:blip r:embed=\""    
                    + blipId    
                    + "\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\"/>"    
                    + "            <a:stretch>"    
                    + "               <a:fillRect/>"    
                    + "            </a:stretch>"    
                    + "         </pic:blipFill>"    
                    + "         <pic:spPr>"    
                    + "            <a:xfrm>"    
                    + "               <a:off x=\"0\" y=\"0\"/>"    
                    + "               <a:ext cx=\""    
                    + width    
                    + "\" cy=\""    
                    + height    
                    + "\"/>"    
                    + "            </a:xfrm>"    
                    + "            <a:prstGeom prst=\"rect\">"    
                    + "               <a:avLst/>"    
                    + "            </a:prstGeom>"    
                    + "         </pic:spPr>"    
                    + "      </pic:pic>"    
                    + "   </a:graphicData>" + "</a:graphic>";    
    
            inline.addNewGraphic().addNewGraphicData();    
            XmlToken xmlToken = null;    
            try {    
                xmlToken = XmlToken.Factory.parse(picXml);    
            } catch (XmlException xe) {    
                xe.printStackTrace();    
            }    
            inline.set(xmlToken);   
    
            inline.setDistT(0);      
            inline.setDistB(0);      
            inline.setDistL(0);      
            inline.setDistR(0);      
    
            CTPositiveSize2D extent = inline.addNewExtent();    
            extent.setCx(width);    
            extent.setCy(height);    
    
            CTNonVisualDrawingProps docPr = inline.addNewDocPr();      
            docPr.setId(ind);      
            docPr.setName("图片" + ind);      
            docPr.setDescr("测试");   
        }    
    }
    

    以上就是通过POI实现html和word的相互转换,对于html无法转换为可读的docx这个问题尚未解决,如果大家有好的解决方法可以交流一下~~~

    展开全文
  • Latex——Word公式转换

    万次阅读 2019-02-20 20:31:12
    文章目录1.Word to Latex2. Latex to Word3.MathType安装4.MathType下载链接   Word通常使用MathType作为公式编辑器,MathType编辑公式较为容易,很快就能上手,但是Latex有其单独的编辑方式,通常直接编辑较难...
  • Word无法启动转换器RECOVR32.CNV解决方法

    万次阅读 多人点赞 2019-05-15 11:15:43
    最近打开Word或者保存Word时总会出现“无法启动转换器RECOVR32.CNV”的报错窗口。 在网上找到了一个解决方法,亲测有效。 (1)win+R打开“运行”→输入“regedit”,进入注册表编辑器。 (2)找到HKEY_LOCAL_...
  • 怎么把word转换ppt?

    千次阅读 2020-10-22 10:15:48
    作者:郑少PPT ...来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 在职场中,你有没有遇到这样的“疑难杂症”,想把Word To PPT、PPT To Word再或者...1、Word转换 (1)Word ...
  • java代码实现word转换成pdf

    千次下载 热门讨论 2013-09-18 12:45:07
    va代码 word转pdf ,word批量转换成pdf,word单独转换成pdf,只需要调用WordToPDFUtil方法就可以实现批量或者单独转换
  • word字体出现重叠 pdf转换word

    千次阅读 2020-12-24 23:45:13
    word中为什么会出现字体重叠?1。当你打开一个word文档时,你会发现一个地方的文本是重叠的。选择这些重叠字体,使它们成为可操作的黑灰色。2。右击弹出右侧下拉框,查找并点击字体。3。此时会出现字体选项来设置...
  • word 无法启动转换器wps32修复工具

    千次阅读 2015-09-14 11:13:37
    word 无法启动转换器wps32修复工具 本人所写,方便大家
  • 可能是低版本打开版本。或者是格式不相同。2.文档损坏了。解决办法:方法一:利用word2002/2003的“打开并修复”功能来修复文挡。(1)启动word2002/2003,单击“文件-----打开”,在“打开”对话框中选重要修复的...
  • word选择题转换成Excel

    千次阅读 2020-10-28 18:23:51
    office办公小技巧 如何将word选择题转换成Excel 七日拂晓看资讯03-13 21:24 关注 点击播放 GIF 0.0M 图1-1是以word方式录入的选择题。图1-2是转换后的Excel数据库格式。 一.设立分隔字符,将文档保存为纯文本文件 ...
  • 把PDF文档转换word文档的转换器,很好用的,希望能给大家带来方便。
  • 1Java 将 Word 文档转换为 PDF 的完美工具 在日常工作中,PDF格式良好的视觉阅读性和稳定性使其使用越来越广泛。因此我们常会遇到需要将成型的Word文档转换为PDF格式的情况。本文就将通过使用Java程序来演示如何将...
  • 更改引用版本glibc的程序到引用低版本的glibc

    千次阅读 多人点赞 2018-10-17 09:17:11
    在拥有版本glibc的机器上编译分布式xgboost程序,结果在拥有低版本glibc版本的集群机器上无法运行,总是报错,显示缺少glibc_2.14,为了解决整个问题,google查阅了很多资料,大体给出了两种方案: 方案一:升级...
  • word 大小写转换

    千次阅读 2018-09-16 09:26:40
    1. 快捷键:shift + F3 2. 举例 ATTRIBUTE HASHING FOR ZERO-SHOT IMAGE RETRIEVAL attribute hashing for zero-shot image retrieval Attribute Hashing For Zero-Shot Image Retrieval
  • 实现html和word的相互转换(带图片)

    万次阅读 多人点赞 2018-06-16 13:29:10
    目前从html转换word为doc格式,而图片处理支持的是docx格式,所以需要手动把doc另存为docx,然后才可以进行图片替换。 一.添加maven依赖 主要使用了以下和poi相关的依赖,为了便于获取html的图片元素,还使用了...
  • 如何将word文档转换为图片

    千次阅读 2020-12-04 23:01:12
    网上逛了一圈,对于docx直接转图片这种转换没有什么有效的信息,不过结合获取的信息,笔者倒是想了一个曲线救国的法子,docx->pdf, pdf->image,通过两步可以最终实现该转换。一、环境准备首先进行环境准备...
  • pdf转换成word转换器.v12.0.破解版

    热门讨论 2012-11-05 08:05:39
    pdf转换成word转换器v12.0,内含破解补丁。
  • Microsoft offic软件版本都是向下兼容的,所以用版本编辑的文件另存为低版本时往往会出现问题。最近遇到的一个问题就是Word 2013上编辑的公式在另存为Word 2003(.doc)时会自动转换成图片。并且无法通过改扩展名...
  • 借助caj转换成word转换器进行操作: 1:打开我们电脑上的这个转换器,页面会默认停留在caj转word的页面上。 2:在右边的操作界面上点击添加要进行转换的caj 文件。 3:文件添加好之后,如果你还想在添加文...
  • markdown与word相互转换

    千次阅读 2018-11-12 11:34:40
    markdown文本转换word步骤如下 首先,下载typora,一路安装即可。网址为: http://www.softpedia.com/get/Internet/WEB-Design/HTML-Editors/Typora.shtml 下载pandoc,一路安装即可,网址为(注意,Windows选择...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 265,834
精华内容 106,333
关键字:

word高版本转换低版本