提取网页内容存储为word的方法

应用需求

word是我们平常办公最常用的文字处理软件之一了,但是我们第一手阅读的材料却并不通常是用word来写就的(非doc格式),可能是txt文本,pdf文件,更多的可能就是网页内容了。我们希望有一种轻快便捷的方案可以很容易地将网页内容导出成doc格式的文件,这样我们就可以用word来处理它们了。

今天老师让我办件事,是登录进一个问卷调查网页,将所有问卷内容提取出来,整理成word文件发给她。我在登进问卷(.aspx格式)后发现,网页内容是受保护的,不可以直接复制内容(点击右键没有任何响应)。

于是乎,我就面临了第一个考验,如何获取网页内容?

pdf2word

我的第一种方法是利用浏览器的打印功能,将网页保存为pdf。保存了4个pdf文件(因为问卷有4页)之后,我首先利用在线文档转换工具Smallpdf将4个pdf文件合二为一,然后在线转为word。

然而令我大失所望的是,转化成的word文件有太多太多的格式、字体问题,别说是编辑重用了,连阅读都不堪其用。我试了许多其他的pdf转word在线平台,效果都是半斤八两,不堪入目。

html2word

既然pdf不是一个明智的选择,我开始思考其他方案。我发现在浏览器中还有这样一个功能:将页面存储为html格式。以谷歌为例,在功能->更多工具中选中另存为html,就可以将当前网页的html格式连同一个链接文件(如果存在)一起下载到本地。

接下来的操作异常简单:

  • 选择下载好的html文件,右键点击“打开方式”选项,用Word打开;
  • 打开后可以看到文件格式与网页中显示基本一致,选择“文件另存为”,存成以“docx”为后缀的文件;
  • 如果html中有引用文件包中的链接,需要对其进行编辑(我遇到的网页无此情形);
  • 可尝试删除与html文件一起被下载的文件包,以免每次打开html转成的word文件都需要授权。

这样一来,一个可以分享给他人的word文件就完成了。
为了方便以后的工作,以及分享给有需要的人,暂且把这些操作记录下来。
【其实我是个科研工作者~~~】

参考内容:
http://code.makery.ch/library/convert-web-page-to-word/

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用 Apache POI 来实现将 Word 文件转换为 PDF 格式的文件。Apache POI 是一个 Java 库,可以用来处理 Microsoft Office 文件,并且可以使用它来将 Word 文件转换为 PDF 格式。 ### 回答2: 要使用Java将以Word形式存储HTML文件转换为PDF,可以使用一些开源的Java库来实现。 首先,需要将HTML文件加载到Java程序中。可以使用Apache POI库来读取Word文档,并将其转换为HTML格式。Apache POI提供了一组API来处理各种文档格式,包括Word文档(.doc和.docx)。 接下来,需要将HTML文件转换为PDF格式。可以使用开源的PDFBox库来实现这个功能。PDFBox是一个功能强大的Java库,可以创建和操作PDF文件。 首先,将HTML文件加载到Java程序中。可以使用POI的HTML Parser模块来读取HTML内容。使用POI的XWPFWordExtractor类从Word文档中提取出文本。然后,使用这些文本创建一个PDF文件。 以下是一个简单的示例代码,演示了如何使用POI和PDFBox库将以Word形式存储HTML文件转换为PDF: ```java import org.apache.poi.hwpf.HWPFDocument; import org.apache.poi.hwpf.converter.WordToHtmlConverter; import org.apache.poi.hwpf.usermodel.Range; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.extractor.XWPFWordExtractor; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.text.PDFTextStripper; import java.io.*; public class HTMLtoPDFConverter { public static void main(String[] args) { String inputFile = "input.doc"; String outputFile = "output.pdf"; // 转换Word文档为HTML String htmlContent = convertWordToHTML(inputFile); // 将HTML转换为PDF convertHTMLToPDF(htmlContent, outputFile); System.out.println("转换完成!"); } private static String convertWordToHTML(String inputFile) { StringBuilder htmlContent = new StringBuilder(); try { FileInputStream fis = new FileInputStream(inputFile); HWPFDocument wordDoc = new HWPFDocument(fis); WordToHtmlConverter htmlConverter = new WordToHtmlConverter( org.apache.poi.hwpf.HWPFDocumentMapper.getInstance() ); htmlConverter.processDocument(wordDoc); htmlContent.append(htmlConverter.getDocument().getInnerHTML()); fis.close(); } catch (Exception e) { e.printStackTrace(); } return htmlContent.toString(); } private static void convertHTMLToPDF(String htmlContent, String outputFile) { try { // 创建PDF文档对象 PDDocument document = new PDDocument(); // 创建PDF页面 PDPage page = new PDPage(); document.addPage(page); // 创建PDF内容流 PDPageContentStream contentStream = new PDPageContentStream(document, page); // 创建HTML文本剥离器 PDFTextStripper stripper = new PDFTextStripper(); // 设置HTML内容 stripper.setHTMLText(htmlContent); // 提取HTML内容并绘制到PDF页面 stripper.writeText(contentStream); // 关闭内容流 contentStream.close(); // 保存PDF文件 document.save(outputFile); // 关闭PDF文档 document.close(); } catch (Exception e) { e.printStackTrace(); } } } ``` 以上代码示例了如何使用Apache POI的HWPF和XWPF模块来读取Word文档,并将其转换为HTML。然后,使用PDFBox库将HTML内容转换为PDF。 ### 回答3: 要使用Java将以Word形式存储HTML转换为PDF,可以遵循以下步骤: 1. 解析HTML文件:可以使用HTML解析库,如Jsoup,从HTML文件中提取内容和样式。 2. 创建PDF文档:使用Java的PDF库,如iText或Apache PDFBox,创建一个新的PDF文档对象。 3. 根据HTML内容,生成PDF内容:将HTML文件中的元素和样式映射到PDF文档中的对应元素和样式。 4. 添加样式和格式:根据HTML文件中的CSS样式规则,将样式应用到相应的PDF元素上。 5. 添加图片和链接:解析HTML文件中的图片和超链接标签,将其添加到PDF文档对应的位置。 6. 保存PDF文档:将生成的PDF文档保存到指定的文件路径。 以下是一个基本的Java代码示例,演示了如何使用iText库将以Word形式存储HTML转换为PDF: ```java import com.itextpdf.text.Document; import com.itextpdf.text.PageSize; import com.itextpdf.text.Paragraph; import com.itextpdf.text.pdf.PdfWriter; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import java.io.FileOutputStream; import java.io.IOException; public class WordToPdfConverter { public static void main(String[] args) { try { // 解析HTML文件 org.jsoup.nodes.Document htmlDoc = Jsoup.parse(new File("input.html"), "UTF-8"); // 创建PDF文档 Document pdfDoc = new Document(PageSize.A4); // 创建PDF写入器 PdfWriter.getInstance(pdfDoc, new FileOutputStream("output.pdf")); // 打开PDF文档 pdfDoc.open(); // 遍历HTML文件中的所有段落元素 Elements paragraphs = htmlDoc.select("p"); for (Element paragraph : paragraphs) { // 创建PDF段落,并添加到PDF文档中 pdfDoc.add(new Paragraph(paragraph.text())); } // 关闭PDF文档 pdfDoc.close(); System.out.println("HTML转换为PDF成功!"); } catch (IOException e) { e.printStackTrace(); } } } ``` 上述示例代码仅演示了基本的转换过程,实际应用中可能需要更复杂的处理逻辑和样式调整。同时,还可根据具体需求使用其他PDF库或添加更多的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值