直接把Html文本写入到Word文件
- 获取查看页面的body内容和引用的css文件路径传入到后台。
- 把对应css文件的内容读取出来。
- 利用body内容和css文件的内容组成一个标准格式的Html文本。
- 根据组合后的Html文本生成对应的ByteArrayInputStream。
- 构建一个默认的POIFSFileSystem,并利用它和生成的ByteArrayInputStream创建一个WordDocument。
- 把构建的POIFSFileSystem写入到对应的输出流。
经过上面这几步之后我们就可以把Html格式的文本写入到Word文件中,同时使生成的Word文件呈现出对应的Web样式。需要注意的是原本Html文件中引用到的css文件的内容需要放到生成的Word文件中,生成后的Word文件才会呈现出对应的Web样式。下面是一个针对于该方式的一个简单例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
public void htmlToWord2() throws Exception {
InputStream bodyIs = new FileInputStream( "f:\\1.html" );
InputStream cssIs = new FileInputStream( "f:\\1.css" );
String body = this .getContent(bodyIs);
String css = this .getContent(cssIs);
//拼一个标准的HTML格式文档
String content = "<html><head><style>" + css + "</style></head><body>" + body + "</body></html>" ;
InputStream is = new ByteArrayInputStream(content.getBytes( "GBK" ));
OutputStream os = new FileOutputStream( "f:\\1.doc" );
this .inputStreamToWord(is, os);
}
/**
* 把is写入到对应的word输出流os中
* 不考虑异常的捕获,直接抛出
* @param is
* @param os
* @throws IOException
*/
private void inputStreamToWord(InputStream is, OutputStream os) throws IOException {
POIFSFileSystem fs = new POIFSFileSystem();
//对应于org.apache.poi.hdf.extractor.WordDocument
fs.createDocument(is, "WordDocument" );
fs.writeFilesystem(os);
os.close();
is.close();
}
/**
* 把输入流里面的内容以UTF-8编码当文本取出。
* 不考虑异常,直接抛出
* @param ises
* @return
* @throws IOException
*/
private String getContent(InputStream... ises) throws IOException {
if (ises != null ) {
StringBuilder result = new StringBuilder();
BufferedReader br;
String line;
for (InputStream is : ises) {
br = new BufferedReader( new InputStreamReader(is, "UTF-8" ));
while ((line=br.readLine()) != null ) {
result.append(line);
}
}
return result.toString();
}
return null ;
}
|
1.css代码如下
1
2
3
4
5
6
7
8
9
10
|
table { border: 1px solid blue;
width: 800px;
height: 500px;
text-align: center;
} td { width: 200px;
border: 1px solid blue;
} |
1.html对应的内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<table cellpadding= "5" style= "border-collapse: collapse;" >
<tr>
<td>中文</td>
<td>中文</td>
<td>中文</td>
<td>中文</td>
</tr>
<tr>
<td>中文</td>
<td>中文</td>
<td>中文</td>
<td>中文</td>
</tr>
</table> |
效果图
相关推荐
5. **保存Word文档**:最后,保存Word文档到指定的文件路径。 在实际操作中,我们可能需要处理更多的细节,例如CSS样式、链接、表格等。CSS样式可以通过解析并应用到Word文档的样式表中来保留。链接如果无法本地化...
Apache POI提供了一套API,可以读取、写入和修改Word文档。利用这个库,我们可以解析富文本编辑器生成的HTML,提取文本和样式,然后创建对应的Word文档结构。 以下是实现这个功能的基本步骤: 1. **HTML解析**:...
这段代码首先加载Word文件,然后遍历文档中的各个元素,如段落(Paragraph)和文本块(TextRun),并将它们转换成HTML标签。最后,将生成的HTML内容写入一个新的文件中。 注意,这只是一个基本的转换示例,实际Word...
代码通常会包含读取Word文件、遍历内容并构建HTML字符串的逻辑。 6. **注意事项**: - 由于Word和HTML的结构差异,转换可能无法完全保持原始格式,特别是复杂的布局和样式。 - 图片处理:Word文档中的图片需要被...
在QT中生成基于HTML的Word文件,意味着我们可以利用QT的QTextDocument类来创建文档,然后通过将HTML内容转化为Word格式,实现复杂的文本格式化和布局设计。 QTextDocument是QT中的一个核心组件,它提供了丰富的文本...
- **QWord库介绍**:QWord是一个用于Qt的开源库,它提供了API来直接操作Word文档,包括读取、写入和编辑文档内容,以及处理表格、图像、样式等。 - **使用**: - 首先需要安装QWord库,确保项目配置正确,引入...
5. **写入Word文档**:将转换后的元素写入到Word文档中。 ```java WordDocumentWriter.write(doc, outputStream); ``` 6. **保存文件**:最后,将Word文档保存到磁盘。 ```java FileOutputStream out = new ...
爬虫抓取到的图片URL需要转换为本地文件,才能被写入Word文档。这通常通过下载图片并保存到本地完成。在`writeWord`方法中,可以创建一个`URLConnection`对象,通过`connect()`方法建立与图片URL的连接,然后使用`...
1. **读取Word文档**:使用HWPFDocument或XWPFDocument类根据文档格式打开Word文件。如果是Word 2003格式(.doc),则使用HWPFDocument;如果是Word 2007及以上版本(.docx),则使用XWPFDocument。 2. **遍历文档...
1. 创建`Document`对象:与读取操作相同,首先加载Word文档到`Document`对象。 2. 创建`PdfSaveOptions`:为了指定PDF保存选项,创建一个`PdfSaveOptions`实例,可以设置如页面大小、图像质量、书签、安全性等参数。...
首先,对于“qt界面数据保存到Word文件”,这里提到的“书签和模板”是关键。在Word文档中,书签是一种可以标记特定位置的元素,使得程序能够准确地找到并更新这些位置上的内容。开发者通常会创建一个预定义的Word...
由于浏览器能够直接解析并显示HTML,因此将其他格式的文档转换为HTML,可以让用户无需下载原始文件就能在线预览内容,提高了用户体验。 在ASP.NET框架下,可以使用多种库来实现这个功能: 1. **Word转HTML**:可以...
5. **保存文件**:最后,你需要保存生成的Word文档到本地或服务器上,这可以通过Java的文件操作API完成。 关于标签中的"freemarker",它强调了Freemarker作为模板引擎的角色;"模板"指的是用于生成Word文档的XML...
- 替换完成后,需要保存修改,这可以通过Word Interop对象的`SaveAs()`方法实现,将更新后的文档保存为新的Word文件。 6. **生成HTML文档**: - 除了生成Word文档外,此工具还能将内容转换为HTML格式,适合于网页...
以下是一个简单的示例,展示了如何使用jsoup解析HTML,然后用Apache POI将内容写入Word文档: ```java import org.apache.poi.xwpf.usermodel.*; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; ...
5. **保存Word文档**:完成转换后,使用XWPFDocument的write方法将内容写入到Word文件中。 以下是一个简单的示例代码片段,展示了如何开始这个过程: ```java import org.apache.poi.xwpf.usermodel.*; public ...
7. **转换逻辑**:转换Word到HTML的过程通常包括解析DOCX文件,提取文本、样式、图片等元素,然后根据HTML语法规则重新构建文档结构。这可能涉及到样式映射(Word样式到CSS)、图像处理(嵌入或链接)和特殊格式转换...
总之,C#中利用`richtextbox`显示、保存和另存为带格式的Word文档涉及到了文本处理、文件操作和API交互等多个知识点。通过合理使用.NET Framework提供的类库和第三方工具,我们可以轻松地实现在Windows Forms应用中...
Apache POI 是一个流行的Java库,它允许我们读取、写入和修改Microsoft Office格式的文件,包括Word(.doc)文档。在本场景中,开发者遇到了在使用POI进行Word到HTML转换时,编码问题导致转换失败的问题。 1. **...
8. **输出到网页**:最后,将生成的HTML字符串写入到文件系统中的HTML文件中,以便在浏览器中查看。 注意,处理Word中的复杂元素,如图片和公式,可能需要额外的库,如`Apache POI-OOXML-Schemas`和`org....