当前位置:

首页 > 编程开发 > Java怎么实现Word/Pdf/TXT转html

Java怎么实现Word/Pdf/TXT转html

一:Java实现将word转换为html1:引入依赖12fr.opensagres.xdocreport3fr.opensagres.xdocreport.document41.0.5567fr.opensagres.xdocreport8org.apache.poi.xwpf.converter.xhtml91.0.5101112org.apache.poi13poi143.12151617org.apache.poi18poi-scratchpad193.12202:代码demo1packagecom

本文目录

    一:Java实现将word转换为html

       1:引入依赖

     1 
     2   fr.opensagres.xdocreport
     3   fr.opensagres.xdocreport.document
     4   1.0.5
     5 
     6  
     7   fr.opensagres.xdocreport 
     8   org.apache.poi.xwpf.converter.xhtml 
     9   1.0.5 
    10 
    11   
    12   org.apache.poi
    13   poi
    14   3.12
    15 
    16 
    17   org.apache.poi
    18   poi-scratchpad
    19   3.12
    20 

      2:代码demo

      1 package com.svse.controller;
      2 
      3 import javax.xml.parsers.DocumentBuilderFactory;
      4 import javax.xml.parsers.ParserConfigurationException;
      5 import javax.xml.transform.OutputKeys;
      6 import javax.xml.transform.Transformer;
      7 import javax.xml.transform.TransformerException;
      8 import javax.xml.transform.TransformerFactory;
      9 import javax.xml.transform.dom.DOMSource;
     10 import javax.xml.transform.stream.StreamResult;
     11 
     12 import org.apache.poi.hwpf.HWPFDocument;
     13 import org.apache.poi.hwpf.converter.PicturesManager;
     14 import org.apache.poi.hwpf.converter.WordToHtmlConverter;
     15 import org.apache.poi.hwpf.usermodel.PictureType;
     16 import org.apache.poi.xwpf.converter.core.BasicURIResolver;
     17 import org.apache.poi.xwpf.converter.core.FileImageExtractor;
     18 import org.apache.poi.xwpf.converter.core.FileURIResolver;
     19 import org.apache.poi.xwpf.converter.core.IURIResolver;
     20 import org.apache.poi.xwpf.converter.core.IXWPFConverter;
     21 import org.apache.poi.xwpf.converter.xhtml.XHTMLConverter;
     22 import org.apache.poi.xwpf.converter.xhtml.XHTMLOptions;
     23 import org.apache.poi.xwpf.usermodel.XWPFDocument;
     24 /**
     25  * word 转换成html
     26  */
     27 public class TestWordToHtml {
     28 
     29     public static  final String STORAGEPATH="C://works//files//";
     30     public static  final String IP="192.168.30.222";
     31     public static  final String PORT="8010";
     32     public static void main(String[] args) throws IOException, TransformerException, ParserConfigurationException {
     33         TestWordToHtml wt=new TestWordToHtml();
     34         //wt.Word2003ToHtml("甲骨文考证.doc");
     35         wt.Word2007ToHtml("甲骨文考证.docx");
     36 
     37     }
     38       
     39      /**
     40      * 2003版本word转换成html
     41      * @throws IOException
     42      * @throws TransformerException
     43      * @throws ParserConfigurationException
     44      */
     45     public void Word2003ToHtml(String fileName) throws IOException, TransformerException, ParserConfigurationException {
     46        
     47         final String imagepath = STORAGEPATH+"fileImage/";//解析时候如果doc文件中有图片  图片会保存在此路径
     48         final String strRanString=getRandomNum();
     49         String filepath =STORAGEPATH;
     50         String htmlName =fileName.substring(0, fileName.indexOf("."))+ "2003.html";
     51         final String file = filepath + fileName;
     52         InputStream input = new FileInputStream(new File(file));
     53         HWPFDocument wordDocument = new HWPFDocument(input);
     54         WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument());
     55         //设置图片存放的位置
     56         wordToHtmlConverter.setPicturesManager(new PicturesManager() {
     57             public String savePicture(byte[] content, PictureType pictureType, String suggestedName, float widthInches, float heightInches) {
     58                 File imgPath = new File(imagepath);
     59                 if(!imgPath.exists()){//图片目录不存在则创建
     60                     imgPath.mkdirs();
     61                 }
     62                 
     63                 File file = new File(imagepath +strRanString+suggestedName);
     64                 try {
     65                     OutputStream os = new FileOutputStream(file);
     66                     os.write(content);
     67                     os.close();
     68                 } catch (FileNotFoundException e) {
     69                     e.printStackTrace();
     70                 } catch (IOException e) {
     71                     e.printStackTrace();
     72                 }
     73                 
     74                 return  "http://"+IP+":"+PORT+"//uploadFile/fileImage/"+strRanString+suggestedName;
     75                // return imagepath +strRanString+suggestedName;
     76             }
     77         });
     78         
     79         //解析word文档
     80         wordToHtmlConverter.processDocument(wordDocument);
     81         Document htmlDocument = wordToHtmlConverter.getDocument();
     82         
     83         File htmlFile = new File(filepath +strRanString+htmlName);
     84         OutputStream outStream = new FileOutputStream(htmlFile);
     85         
     86 
     87         DOMSource domSource = new DOMSource(htmlDocument);
     88         StreamResult streamResult = new StreamResult(outStream);
     89 
     90         TransformerFactory factory = TransformerFactory.newInstance();
     91         Transformer serializer = factory.newTransformer();
     92         serializer.setOutputProperty(OutputKeys.ENCODING, "utf-8");
     93         serializer.setOutputProperty(OutputKeys.INDENT, "yes");
     94         serializer.setOutputProperty(OutputKeys.METHOD, "html");
     95         
     96         serializer.transform(domSource, streamResult);
     97         outStream.close();
     98         
     99         System.out.println("生成html文件路径:"+ "http://"+IP+":"+PORT+"//uploadFile/"+strRanString+htmlName);
    100     }
    101 
    102     /**
    103      * 2007版本word转换成html
    104      * @throws IOException
    105      */
    106     public void Word2007ToHtml(String fileName) throws IOException {
    107         
    108        final String strRanString=getRandomNum();
    109         
    110         String filepath = STORAGEPATH+strRanString;
    111         String htmlName =fileName.substring(0, fileName.indexOf("."))+ "2007.html";
    112         File f = new File(STORAGEPATH+fileName);  
    113         if (!f.exists()) {  
    114             System.out.println("Sorry File does not Exists!");  
    115         } else {  
    116             if (f.getName().endsWith(".docx") || f.getName().endsWith(".DOCX")) {  
    117                 try {
    118                     // 1) 加载word文档生成 XWPFDocument对象  
    119                     InputStream in = new FileInputStream(f);  
    120                     XWPFDocument document = new XWPFDocument(in);  
    121       
    122                     // 2) 解析 XHTML配置 (这里设置IURIResolver来设置图片存放的目录)  
    123                     File imageFolderFile = new File(filepath);  
    124                     XHTMLOptions options = XHTMLOptions.create().URIResolver(new FileURIResolver(imageFolderFile));  
    125                     options.setExtractor(new FileImageExtractor(imageFolderFile));  
    126                     options.URIResolver(new IURIResolver() {
    127                         public String resolve(String uri) {
    128                             //http://192.168.30.222:8010//uploadFile/....
    129                             return "http://"+IP+":"+PORT+"//uploadFile/"+strRanString +"/"+ uri;
    130                         }
    131                     });
    132                     
    133                     options.setIgnoreStylesIfUnused(false);  
    134                     options.setFragment(true);  
    135                       
    136                     // 3) 将 XWPFDocument转换成XHTML  
    137                     OutputStream out = new FileOutputStream(new File(filepath + htmlName));  
    138                     IXWPFConverter converter = XHTMLConverter.getInstance();
    139                     converter.convert(document,out, options);
    140                     //XHTMLConverter.getInstance().convert(document, out, options);  
    141                     System.out.println("html路径:"+"http://"+IP+":"+PORT+"//uploadFile/"+strRanString+htmlName);
    142                 } catch (Exception e) {
    143                     e.printStackTrace();
    144                 }
    145             
    146             } else {  
    147                 System.out.println("Enter only MS Office 2007+ files");  
    148             }  
    149         }  
    150     }  
    151 
    152      /**
    153      *功能说明:生成时间戳
    154      *创建人:zsq
    155      *创建时间:2019年12月7日 下午2:37:09
    156      *
    157      */
    158      public static String getRandomNum(){
    159          Date dt = new Date();
    160          SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");  
    161          String str=sdf.format(dt);
    162          return str;
    163      }
    164      
    165    }

    二:Java实现将Pdf转换为html

      1: 引入依赖

     1 
     2             net.sf.cssbox
     3             pdf2dom
     4             1.7
     5          
     6         
     7             org.apache.pdfbox
     8             pdfbox
     9             2.0.12
    10         
    11         
    12             org.apache.pdfbox
    13             pdfbox-tools
    14             2.0.12
    15  
    16

    2:代码Demo

     1 public class PdfToHtml {
     2 
     3   /*
     4     pdf转换html
     5      */
     6     public void pdfToHtmlTest(String inPdfPath,String outputHtmlPath)  {
     7        // String outputPath = "C:\\works\\files\\ZSQ保密知识测试题库.html";
     8     9        //try() 写在()里面会自动关闭流
    10         try{
    11             BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(outputHtmlPath)),"utf-8"));
    12             //加载PDF文档
    13             //PDDocument document = PDDocument.load(bytes);
    14             PDDocument document = PDDocument.load(new File(inPdfPath));
    15             PDFDomTree pdfDomTree = new PDFDomTree();
    16             pdfDomTree.writeText(document,out);
    17         } catch (Exception e) {
    18             e.printStackTrace();
    19         }
    20     }
    21 
    22     public static void main(String[] args) throws IOException {
    23         PdfToHtml ph=new PdfToHtml();
    24         String pdfPath="C:\\works\\files\\武研中心行政考勤制度.pdf";
    25         String outputPath="C:\\works\\files\\武研中心行政考勤制度.html";
    26         ph.pdfToHtmlTest(pdfPath,outputPath);
    27   }
    28 
    29 }

    三:Java实现将TXT转换为html

     1  /*
     2      * txt文档转html
     3        filePath:txt原文件路径
     4        htmlPosition:转化后生成的html路径
     5     */
     6     public static void txtToHtml(String filePath, String htmlPosition) {
     7         try {
     8             //String encoding = "GBK";
     9             File file = new File(filePath);
    10             if (file.isFile() && file.exists()) { // 判断文件是否存在
    11                 InputStreamReader read = new InputStreamReader(new FileInputStream(file), "GBK");
    12                 // 考虑到编码格式
    13                 BufferedReader bufferedReader = new BufferedReader(read);
    14                 // 写文件
    15                 FileOutputStream fos = new FileOutputStream(new File(htmlPosition));
    16                 OutputStreamWriter osw = new OutputStreamWriter(fos, "GBK");
    17                 BufferedWriter bw = new BufferedWriter(osw);
    18                 String lineTxt = null;
    19                 while ((lineTxt = bufferedReader.readLine()) != null) {
    20                     bw.write("   "+lineTxt + "
    "); 21                 } 22                 bw.close(); 23                 osw.close(); 24                 fos.close(); 25                 read.close(); 26             } else { 27                 System.out.println("找不到指定的文件"); 28             } 29         } catch (Exception e) { 30             System.out.println("读取文件内容出错"); 31             e.printStackTrace(); 32         } 33     }
    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发 Java html
    相关文章 更多
    Java单元测试入门:使用JUnit 5编写第一个测试用例
    Java单元测试入门:使用JUnit 5编写第一个测试用例

    面向初学者的JUnit 5实用入门指南。从测试概念、Maven依赖配置,到手把手编写首个单元测试用例及断言验证,助你掌握Java单元测试的核心流程。

    Java变量未初始化报错解析:局部变量与成员变量默认值差异
    Java变量未初始化报错解析:局部变量与成员变量默认值差异

    深入解析Java中局部变量未初始化编译报错与成员变量自动赋予默认值的机制差异,涵盖JVM内存分配、编译期确定性赋值检查与实际排查修复方案。

    Java获取当前时间并格式化输出:DateTimeFormatter与SimpleDateFormat
    Java获取当前时间并格式化输出:DateTimeFormatter与SimpleDateFormat

    详细讲解在Java中获取当前系统时间并进行格式化输出的两种核心方案:基于Java 8全新日期时间API的DateTimeFormatter与传统遗留的SimpleDateFormat,包含完整代码示例、线程安全机制对比及生产选型建议。

    Java中final与static final常量的定义及初始化规则
    Java中final与static final常量的定义及初始化规则

    深入解析Java中final变量与static final常量的定义、内存语义、初始化时机及合法赋值路径,涵盖编译期常量优化与实战避坑指南。

    Java抽象方法与接口方法的区别及选型建议
    Java抽象方法与接口方法的区别及选型建议

    深入对比Java中抽象类抽象方法与接口方法的语法演进、设计意图及运行期差异,并提供清晰的架构选型决策流程与实战范例。

    Java实现HTTP请求与JSON解析的完整代码示例
    Java实现HTTP请求与JSON解析的完整代码示例

    本文提供Java标准库HttpClient发起HTTP GET/POST请求并结合Jackson进行JSON数据反序列化与序列化的完整代码示例与工程实践指南。

    Java递归出现StackOverflowError的原因分析及栈空间优化方案
    Java递归出现StackOverflowError的原因分析及栈空间优化方案

    详细分析Java递归调用出现StackOverflowError的原因,结合代码说明线程栈、栈帧和递归深度之间的关系,并介绍终止条件排查、迭代改写、减少栈帧开销以及通过-Xss调整JVM栈空间的方法。

    Java空指针异常(NPE)的代码排查与修复实例
    Java空指针异常(NPE)的代码排查与修复实例

    针对Java中常见的NullPointerException(NPE),本文从堆栈日志定位、典型代码触发场景、具体修复代码对比到防御体系进行系统讲解,提供实用且易上手的排查与修复方案。

    selenium上传文件教程本地文件路径设置方法
    selenium上传文件教程本地文件路径设置方法

    深入解析Selenium处理文件上传的技术细节,涵盖标准HTML控件的路径直接注入法与非标准控件的系统级模拟方案,提供Windows与Linux环境下的路径设置最佳实践及常见异常排查。

    大数据开发语言选型:Java对比Scala与Python的优缺点及适用场景
    大数据开发语言选型:Java对比Scala与Python的优缺点及适用场景

    针对大数据工程场景,系统对比Java、Scala与Python在执行性能、生态结合、开发效率和维护成本上的核心差异,给出清晰的架构选型依据与落地方案。

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。