1.java实现word文档自动转成pdf文档我现在在做一个网站,客
没自动的。
你可以把软件安装好了点文件-导入\导出 来转换成PDF文件 也可以用WPS, 这是我自己下载了在用的,很好用的版本: Office。
2003。SP2。
龙卷风大企业版 V2。2 2。
2 658M ISO 此ISO整合SP2升级包,免激活,免序列号,支持在线更新 包含下列组件: Microsoft Office Word 2003 Microsoft Office Excel 2003 Microsoft Office PowerPoint 2003 Microsoft Office FrontPage 2003 Microsoft Office Access 2003 Microsoft Office Outlook 2003 Microsoft Office OneNote 2003 Microsoft Office Visio 2003 Microsoft Office InfoPath 2003 Microsoft Office Publisher 2003 Microsoft Office Project 2003 安装说明:先卸载你原来的版本,然后全新安装此版即可 。
2.求教用java 生成word!!!
1-apache的POI,此方法对Excel的导出做的很好,目前对Word的导出方面的功能尚未完全。
2-纯JavaScript脚本实现。主要通过客户端调用本机Office组件来实现。
3-在JSP页面引入头文件实现。
纯JavaScript脚本实现细节方面大体是创建一个word组件ActiveXObject('Word.Application'),用js通过表ID取得表内容然后保存到word,要注意的是js实现有很多不好的地方,例如Internet选项需要把ActiveX空间全部启用,安全级别设置为中。这样的话岂不是每台机器都要配置一下。其次每次生成word文档以后弹出对话框(无法保存此文件,因为它已在别处打开(C:\。\STARTUP\Powerword.dot)),出现此问题就需要把C:\Documents and Settings\当前用户名\Application Data\Microsoft\Word\STARTUP下的Powerword.dot文件删除,每次遇到此问题就需要删除文件来解决,十分不方便。
JSP页面引入来实现Word保存就方便多了,但是也有不足的地方,首先如果需要引入
如果需要下载的话就引入
其实如果大家用框架做就方便多了,比如Struts2。在Action里直接写如下代码:
if(out!=null){
String fileName="";
fileName+="评价报告.doc";
try {
HttpServletResponse response = ServletActionContext.getResponse();
response.setHeader("Content-disposition","attachment; filename="+new String(fileName.getBytes("GB2312"), "8859_1"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
out是jsp页面表单元素,一个button,用于提交表单到相应Action进行Word下载。Action设置jsp页面头文件。这样每次点击button就可以把相应jsp页面的内容保存到Word中并且支持下载,Word中内容并且是可编辑状态。
不足的地方在于由于表内容是动态生成,有的需要先查看在下载Word,就需要另外建立一个新JSP页面进行Word下载,当然首先要在struts.xml里配置好页面转向。
新建立的页面传值同查看页面要保持一样。
3.java生成word文档的问题
Jacob解决Word文档的读写问题收藏Jacob 是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁。
使用Jacob自带的DLL动态链接库,并通过JNI的方式实现了在Java平台上对COM程序的调用。Jacob下载的地址为:.jacob.activeX.ActiveXComponent;import com.jacob.com.Dispatch;import com.jacob.com.Variant;public class WordOperate { public static void main(String args[]) { ActiveXComponent wordApp = new ActiveXComponent("Word.Application"); // 启动word // Set the visible property as required. Dispatch.put(wordApp, "Visible", new Variant(true));// //设置word可见 Dispatch docs = wordApp.getProperty("Documents").toDispatch(); // String inFile = "d:\\test.doc"; // Dispatch doc = Dispatch.invoke(docs, "Open", Dispatch.Method, // new Object[] { inFile, new Variant(false), new Variant(false)},//参数3,false:可写,true:只读 // new int[1]).toDispatch();//打开文档 Dispatch document = Dispatch.call(docs, "Add").toDispatch();// create new document String userName = wordApp.getPropertyAsString("Username");// 显示用户信息 System.out.println("用户名:" + userName); // 文档对齐,字体设置//////////////////////// Dispatch selection = Dispatch.get(wordApp, "Selection").toDispatch(); Dispatch align = Dispatch.get(selection, "ParagraphFormat") .toDispatch(); // 行列格式化需要的对象 Dispatch font = Dispatch.get(selection, "Font").toDispatch(); // 字型格式化需要的对象 // 标题处理//////////////////////// Dispatch.put(align, "Alignment", "1"); // 1:置中 2:靠右 3:靠左 Dispatch.put(font, "Bold", "1"); // 字型租体 Dispatch.put(font, "Color", "1,0,0,0"); // 字型颜色红色 Dispatch.call(selection, "TypeText", "Word文档处理"); // 写入标题内容 Dispatch.call(selection, "TypeParagraph"); // 空一行段落 Dispatch.put(align, "Alignment", "3"); // 1:置中 2:靠右 3:靠左 Dispatch.put(selection, "Text", " "); Dispatch.call(selection, "MoveDown"); // 光标标往下一行 //表格处理//////////////////////// Dispatch tables = Dispatch.get(document, "Tables").toDispatch(); Dispatch range = Dispatch.get(selection, "Range").toDispatch(); Dispatch table1 = Dispatch.call(tables, "Add", range, new Variant(3), new Variant(2), new Variant(1)).toDispatch(); // 设置行数,列数,表格外框宽度 // 所有表格 Variant tableAmount = Dispatch.get(tables, "count"); System.out.println(tableAmount); // 要填充的表格 Dispatch t1 = Dispatch.call(tables, "Item", new Variant(1)) .toDispatch(); Dispatch t1_row = Dispatch.get(t1, "rows").toDispatch();// 所有行 int t1_rowNum = Dispatch.get(t1_row, "count").getInt(); Dispatch.call(Dispatch.get(t1, "columns").toDispatch(), "AutoFit");// 自动调整 int t1_colNum = Dispatch.get(Dispatch.get(t1, "columns").toDispatch(), "count").getInt(); System.out.println(t1_rowNum + " " + t1_colNum); for (int i = 1; i <= t1_rownum;="" i++)="" {="" for="" (int="" j="1;" j="">=><= t1_colnum;="" j++)="" {="" dispatch="" cell="Dispatch.call(t1," "cell",="" new="" variant(i),="" new="" variant(j)).todispatch();//="" 行,列="" dispatch.call(cell,="" "select");="" dispatch.put(selection,="" "text",="" "cell"="" +="" i="" +="" j);="" 写入word的内容="" dispatch.put(font,="" "bold",="" "0");="" 字型租体(1:租体="" 0:取消租体)="" dispatch.put(font,="" "color",="" "1,1,1,0");="" 字型颜色="" dispatch.put(font,="" "italic",="" "1");="" 斜体="" 1:斜体="" 0:取消斜体="" dispatch.put(font,="" "underline",="" "1");="" 下划线="" dispatch="" range="Dispatch.get(cell," "range").todispatch();="" string="" cellcontent="Dispatch.get(Range," "text").tostring();="" system.out.println((cellcontent.substring(0,="" cellcontent="" .length()="" -="" 1)).trim());="" }="" dispatch.call(selection,="" "movedown");="" 光标往下一行(才不会输入盖过上一输入位置)="" }="" 合并单元格////////////////////////="" dispatch.put(selection,="" "text",="" "="">=>
4.在Java中如何实现word的插入功能
你所谓的插入word是将整个word文档插入数据库还是??还是先生成word文档 再插入数据import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.sql.Blob;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import oracle.sql.BLOB;public class OracleBlob { private DBstep.iDBManager2000 DbaObj ; private File file = null; public OracleBlob() { DbaObj=new DBstep.iDBManager2000(); //创建数据库对象 }public void insert(String infile) throws Exception { FileInputStream fis = null; int iFileId = -1; PreparedStatement pstmt = null; ResultSet rs = null; try { //生成随机码 java.util.Date dt=new java.util.Date(); long lg=dt.getTime(); Long ld=new Long(lg); String mRecordID=ld.toString(); file = new File(infile); fis = new FileInputStream(file); //得到数据库 iFileId = DbaObj.GetMaxID("INFO_DOCUMENT_FILE","FileId"); if (DbaObj.OpenConnection()) { DbaObj.Conn.setAutoCommit(false); String sql="insert into INFO_DOCUMENT_FILE(FileID,RecordID,FileName,FileType,FileSize,FileDate,FileBody,FilePath,UserName,Descript) values (?,?,?,?,?,?,empty_blob(),?,?,? )"; pstmt = DbaObj.Conn.prepareStatement(sql); pstmt.setInt(1, iFileId); pstmt.setString(2, mRecordID); pstmt.setString(3, mRecordID+".doc"); pstmt.setString(4, "doc"); pstmt.setLong(5,file.length()); pstmt.setDate(6, DbaObj.GetDate()); pstmt.setString(7, ""); pstmt.setString(8, ""); pstmt.setString(9, "测试通用版本=="); // "通用版本" pstmt.executeUpdate(); pstmt = DbaObj.Conn.prepareStatement("select FileBody,FileSize from INFO_DOCUMENT_FILE where RecordID='"+mRecordID+"' for update"); rs = pstmt.executeQuery(); while (rs.next()) { oracle.sql.BLOB blob = (oracle.sql.BLOB)rs.getBlob("FileBody"); OutputStream os = blob.getBinaryOutputStream(); BufferedInputStream bis = new BufferedInputStream(fis); byte[] buf = new byte[rs.getInt("FileSize")]; int len = 0; if ((len = bis.read(buf)) != -1) { os.write(buf, 0, len); os.flush(); } os.close(); bis.close(); } DbaObj.Conn.commit(); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally{ fis.close(); DbaObj.CloseConnection(); } } public void readDoc(String outfile,String id)throws Exception{ FileOutputStream fos = null; InputStream is = null; String Sql = "SELECT FileBody,FileSize FROM info_document_file WHERE RecordID='" + id + "'"; try { if (DbaObj.OpenConnection()) { try { ResultSet result = DbaObj.ExecuteQuery(Sql); if (result.next()) { try { int fileSize=result.getInt("FileSize"); Blob blob=result.getBlob("FileBody"); file = new File(outfile); if(!file.exists()) { file.createNewFile();//如果文件不存在,则创建 } fos = new FileOutputStream(file); is = blob.getBinaryStream();// 读出数据后转换为二进制流 byte[] data = new byte[fileSize]; int size = 0; while((size = is.read(data)) != -1) { fos.write(data,0,size); } } catch (Exception ex) { ex.printStackTrace(); } } result.close(); } catch (SQLException e) { e.printStackTrace(); } } } finally { DbaObj.CloseConnection(); } } public static void main(String args[]) { OracleBlob blob=new OracleBlob(); try { blob.readDoc("c://test.doc", "1281088075378"); //blob.insert("c://信息处WebService接口文档.doc"); } catch (Exception e) { e.printStackTrace(); } }}。
5.java怎么实现将word文档转换为pdf文件
WORD转换到PDF
WORD转换到PDF的步骤就相对简单了,我们只需要安装一款虚拟打印机软件“Virtual Pdf Printer”即可,它可以将你编辑好的WORD文档直接输出为PDF文件格式。(下载地址:
安装后在WORD中点击“打开”→“打印”,在“打印机名称”中会看到多了一个“Virtual Printer”选项,选中它,点击确定后(未注册版本有10秒的等待时间),弹出“保存PDF文件”对话框,先选择文件的保存路径,再点击“生成设置”按钮,弹出“系统设置”面板(如图3),对输出后的PDF文件进行加密和字体等设置,点击两次确定,当前的WORD文档就被转换成PDF格式的文件了
6.用java怎么实现对word的在线编辑
WORD在线编辑的方案有几种。
1)采用网页插件,比如PageOffice,这种方案实际是调用本地Office进行编辑,确切的说是网页编辑而非在线编辑。2)采用微软的OWA,这个是网页版的Office,好处确实是Word,缺点是网页版功能比本地版本弱,开发难以得到微软的支持,坑很多,碰到了也不知道怎么解决。
与之接近的是一起写,石墨这样的类Word编辑,这个就不是原生word格式,是格式转换后的在线编辑。3)采用UZER.ME的SDK,UZER.ME支持网页内无插件使用各种原生应用,当然也包括Word,本地也无需安装Office,全平台支持。
缺点是需要服务器资源较多。在线编辑主要还是前端的活,主要用JavaScript做,当然,上面几种方案后台用Java都是可以也是需要的。
转载请注明出处51数据库 » java实现word现在