`
yjgyjg4
  • 浏览: 118976 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java 生成word

    博客分类:
  • java
阅读更多
public class RTFCreate {

public static void main(String[] args) throws MalformedURLException,
   IOException {
RTFCreate rtfCreate = new RTFCreate();
try {    String bodyText="abc";
   //byte[] b= null;
   //rtfCreate.createRTF(bodyText,"WebRoot/images/yjg.png");
// rtfCreate.createRTF(bodyText,b);
// } catch (FileNotFoundException e) {
/  
//    e.printStackTrace();
//   } catch (DocumentException e) {
//  
//    e.printStackTrace();
//   }
// }

public String createRTF(String bodyText, byte[] image) throws DocumentException, BadElementException,
    MalformedURLException, IOException {
  
   String filePath = "c:/testW.rtf";
   Document document = new Document(PageSize.A4);
   // document.addTitle("Title");
   // document.addHeader("header","Header");

//生成html格式文件
//   HtmlWriter.getInstance(document, new FileOutputStream("C:/testW.html"));

//生成rtf格式文件doc文件
   RtfWriter2.getInstance(document, new FileOutputStream("C:/testW.rtf"));

//生成pdf格式文件
//   PdfWriter.getInstance(document, new FileOutputStream("C:/testW.pdf"));


////生成xml格式文件

//   XmlWriter.getInstance(document, new FileOutputStream("C:/testW.xml"));
   document.open();
   // add a word
   document.add(new Paragraph(bodyText));
   // add a table
   Table table = new Table(3);
   table.setBorderWidth(1);
   table.setBorderColor(new Color(0, 0, 255));
   table.setPadding(5);
   table.setSpacing(5);
   Cell cell = new Cell("header");
cell.setHeader(true);
   cell.setColspan(3);
   table.addCell(cell);
   table.endHeaders();
cell = new Cell("example cell with colspan 1 and rowspan 2");
   cell.setRowspan(2);
   cell.setBorderColor(new Color(255, 0, 0));
   table.addCell(cell);
   table.addCell("1.1");
   table.addCell("2.1");
   table.addCell("1.2");
   table.addCell("2.2");
   table.addCell("cell test1");
   cell = new Cell("big cell");
   cell.setRowspan(2);
   cell.setColspan(2);
   table.addCell(cell);
table.addCell("cell test2");
document.add(table);

//这里可以是图片路径,也可以把图片读为是byte[] 类型传进来,我这里用的是byte 因为我的图片从数据表取出
   //Image png = Image.getInstance(imageUrl);
   Image img = Image.getInstance(image);
   document.add(img);
   document.close();

//返回生成word文档的路径,为了在Action 中读出此word文件
   return filePath;
  
}

Action 方法中读取word文件,可以读取图片,部分代码

String bodyText = null;
   if (clsb != null) {
    bodyText = clsb.getBodyText();
   }

if(bodyText !=null){
    RTFCreate rtfCreate = new RTFCreate();
    try{
     //TODO word letter form 
     CamDoc cdoc = new CamDoc();
     cdoc = camDocControl.findByRecordID(3);
     byte[] cimg = cdoc.getDocObject();
     request.setAttribute("cimg", cimg);
     String body = TestHTMLParser.testHtml(bodyText);//使用htmlparser来解析html中的文本 
    
     String filePath = rtfCreate.createRTF(body, cimg);
     FileInputStream fis = new FileInputStream(filePath);
     // 1 k = 1024 byte , 1 m = 1024 k = 1048576 byte
     // 10000000 byte = 9.5 m
     byte[] bytes = new byte[10000000];
     while (fis.read(bytes) != -1) // 将文件读入byte数组
     {

     }
     
      response.reset();
      response.setContentType("application/rtf;charset=UTF-8");
      response.setContentLength(bytes.length);
      response.setHeader("Content-disposition",
        "attachment; filename=bankAuthForm.doc");
  
      ServletOutputStream ouputStream = response.getOutputStream();
      ouputStream.write(bytes, 0, bytes.length);
      ouputStream.flush();
      ouputStream.close();

//这段是提取word 文件中的文本
//     String st = null;
//          DefaultStyledDocument styledDoc = new DefaultStyledDocument(); 
//          InputStream is = new FileInputStream(new File("c:/testW.rtf"));
//             new RTFEditorKit().read(is, styledDoc, 0);
//             st = styledDoc.getText(0, styledDoc.getLength());
//             System.out.println("---rtf content>>>"+st);
             //   String(styledDoc.getText(0, styledDoc.getLength()).getBytes("UTF-8"));
    }catch(Exception e){
     e.printStackTrace();
    }
   }
   return null;

}



jsp 直接頁面直接生成word 文檔來下載保存,這個基本可以滿足了。

Action :中的方法

public ActionForward downloadWord(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) throws Exception {
   return mapping.findForward("printWord");}

轉到這個生成word 文檔的頁面。

在此JSP 頁面中加上:<%@ page contentType="application/msword; charset=UTF-8" %>
<%
response.setHeader("Content-Disposition", "attachment;filename=application.doc");
%>這兩句后即可以下載了。
分享到:
评论

相关推荐

    java生成word文档完美解决方案.

    在Java开发中,生成Word文档是一项常见的需求,例如在报告生成、数据导出或合同制作等场景。...实际应用中,根据项目特性和需求选择合适的库,并灵活运用其提供的功能,就能实现Java生成Word文档的“完美解决方案”。

    JAVA生成WORD工具类

    这个“JAVA生成WORD工具类”提供了一种解决方案,使得开发者可以通过代码动态地生成Word文档,避免手动操作的繁琐和错误。下面将详细介绍这个工具类的工作原理和可能的应用场景。 首先,Java生成Word文档通常涉及到...

    java生成word

    首先,Java生成Word文档通常依赖于第三方库,如Apache POI。Apache POI是一个开源项目,提供了API来处理Microsoft Office格式的文件,包括Word(.doc和.docx)。在本例中提到的"jar包"很可能就是Apache POI的库文件...

    java生成word模板详解

    Java生成Word模板是一种常见的技术,尤其在企业级应用中,用于自动生成报告、合同或任何需要格式化的文本文档。这个技术通常涉及到Java的IO流处理、模板引擎以及可能的库如Apache POI或OpenOffice API。 Apache POI...

    Java 生成word文件,带样式,带页眉,带页码,带图片,带表格

    Java 生成word文件,带样式,带页眉,带页码,带图片,带表格,需要相关iText包,包可在http://download.csdn.net/detail/wuxinxing1981/8055977 链接下载。

    Java生成word和excel文件所需完整jar包

    首先,Java生成Word文件,最常用的库是Apache POI。Apache POI是一个开源项目,专门用于处理Microsoft Office格式的文件,包括Word、Excel和PowerPoint。对于Word文档,Apache POI提供了HWPF(Horrible Word ...

    java 生成Word文档-模板示例

    Java 生成 Word 文档-模板示例 Java 生成 Word 文档-模板示例是 Java 开发语言中的一种常见应用场景,通过使用 Java 语言,可以生成 Word 文档,以满足业务需求。下面是该示例中涉及到的知识点: 1. Java 模板引擎...

    java生成word 代码

    Java生成Word是编程中常见的需求,特别是在数据报告、文档生成或者网页内容导出等场景。在Java中,我们可以使用各种库来实现这个功能,比如Apache POI和docx4j。Apache POI是一个广泛使用的开源项目,它允许开发者...

    RtfTemplate实现Java生成word

    总的来说,RtfTemplate是一个强大的工具,它简化了Java生成Word文档的过程,使得开发者可以专注于数据处理和文档内容,而不是底层的文件操作。通过熟练掌握RtfTemplate的使用,可以大大提高开发效率,提升项目的质量...

    java生成word,包括word表格,表格插入图片,jar包都在了

    Java生成Word文档是一种常见的需求,特别是在企业级应用中,例如报告生成、数据导出等。在Java中,我们可以使用各种库来实现这个功能,比如Apache POI,它是一个开源项目,提供了API来处理Microsoft Office格式的...

    Java 生成word所需要包(完全,已经测试可用)

    Java生成Word文档是常见的需求,尤其在自动化报告、数据导出或者系统集成中。iText是一个流行的开源Java库,用于创建和修改PDF和RTF文件。在这个压缩包中,我们有iText 2.7.1,iText rtf 2.7.1以及iTextAsian,这些...

    java 生成word 导入内容 图片

    在Java编程环境中,生成Word文档并导入图片是一项常见的任务,特别是在数据报告、自动化测试报告或者文档自动生成等场景。本文将详细讲解如何使用Java来实现这个功能,以及如何做到不受模板限制,通过代码生成简洁...

    java生成word带样式

    java使用itext生成word文件带样式可自己调整样式 背景 格式

    java生成word的实例 java导出Word文档的实例

    以上就是使用Java生成Word文档的基本步骤和关键知识点。实际应用中,你可以根据需求扩展这些基本元素,构建更复杂的Word文档结构。在处理大量数据或复杂格式时,理解并熟练运用Apache POI库至关重要。

    java生成Word代码

    在Java编程环境中,生成...以上就是使用Java生成Word文档的关键知识点。在实际开发中,你可能还需要结合MVC框架、数据库操作等进行更复杂的集成。通过掌握这些技术,你可以构建强大的文档生成系统,满足各种业务需求。

    用java生成word文档方法

    在IT领域,特别是软件开发行业中,使用Java生成Word文档是一种常见的需求,特别是在自动化报告生成、文档模板填充等场景中。本文将深入探讨如何利用Java语言和相关库来实现这一功能,重点介绍Apache POI和一个相对...

    java生成word文件代码

    java中生成word文件,生成固定文件模板的word文件 封装成工具类,可以更方便的实现需求

Global site tag (gtag.js) - Google Analytics