一:Java实现将word转换为html
1:引入依赖
1 <dependency> 2 <groupid>fr.opensagres.xdocreport</groupid> 3 <artifactid>fr.opensagres.xdocreport.document</artifactid> 4 <version>1.0.5</version> 5 </dependency> 6 <dependency> 7 <groupid>fr.opensagres.xdocreport</groupid> 8 <artifactid>org.apache.poi.xwpf.converter.xhtml</artifactid> 9 <version>1.0.5</version> 10 </dependency> 11 <dependency> 12 <groupid>org.apache.poi</groupid> 13 <artifactid>poi</artifactid> 14 <version>3.12</version> 15 </dependency> 16 <dependency> 17 <groupid>org.apache.poi</groupid> 18 <artifactid>poi-scratchpad</artifactid> 19 <version>3.12</version> 20 </dependency>
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<xhtmloptions> 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 }</xhtmloptions>
二:Java实现将Pdf转换为html
1: 引入依赖
1 <dependency> 2 <groupid>net.sf.cssbox</groupid> 3 <artifactid>pdf2dom</artifactid> 4 <version>1.7</version> 5 </dependency> 6 <dependency> 7 <groupid>org.apache.pdfbox</groupid> 8 <artifactid>pdfbox</artifactid> 9 <version>2.0.12</version> 10 </dependency> 11 <dependency> 12 <groupid>org.apache.pdfbox</groupid> 13 <artifactid>pdfbox-tools</artifactid> 14 <version>2.0.12</version> 15 </dependency> 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 }
以上是Java实现Word/Pdf/TXT转HTML的方法的详细内容。更多信息请关注PHP中文网其他相关文章!

新兴技术对Java的平台独立性既有威胁也有增强。1)云计算和容器化技术如Docker增强了Java的平台独立性,但需要优化以适应不同云环境。2)WebAssembly通过GraalVM编译Java代码,扩展了其平台独立性,但需与其他语言竞争性能。

不同JVM实现都能提供平台独立性,但表现略有不同。1.OracleHotSpot和OpenJDKJVM在平台独立性上表现相似,但OpenJDK可能需额外配置。2.IBMJ9JVM在特定操作系统上表现优化。3.GraalVM支持多语言,需额外配置。4.AzulZingJVM需特定平台调整。

平台独立性通过在多种操作系统上运行同一套代码,降低开发成本和缩短开发时间。具体表现为:1.减少开发时间,只需维护一套代码;2.降低维护成本,统一测试流程;3.快速迭代和团队协作,简化部署过程。

Java'splatformindependencefacilitatescodereusebyallowingbytecodetorunonanyplatformwithaJVM.1)Developerscanwritecodeonceforconsistentbehavioracrossplatforms.2)Maintenanceisreducedascodedoesn'tneedrewriting.3)Librariesandframeworkscanbesharedacrossproj

要解决Java应用程序中的平台特定问题,可以采取以下步骤:1.使用Java的System类查看系统属性以了解运行环境。2.利用File类或java.nio.file包处理文件路径。3.根据操作系统条件加载本地库。4.使用VisualVM或JProfiler优化跨平台性能。5.通过Docker容器化确保测试环境与生产环境一致。6.利用GitHubActions在多个平台上进行自动化测试。这些方法有助于有效地解决Java应用程序中的平台特定问题。

类加载器通过统一的类文件格式、动态加载、双亲委派模型和平台无关的字节码,确保Java程序在不同平台上的一致性和兼容性,实现平台独立性。

Java编译器生成的代码是平台无关的,但最终执行的代码是平台特定的。1.Java源代码编译成平台无关的字节码。2.JVM将字节码转换为特定平台的机器码,确保跨平台运行但性能可能不同。

多线程在现代编程中重要,因为它能提高程序的响应性和资源利用率,并处理复杂的并发任务。JVM通过线程映射、调度机制和同步锁机制,在不同操作系统上确保多线程的一致性和高效性。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

Dreamweaver Mac版
视觉化网页开发工具

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。