`
xiaofengtoo
  • 浏览: 494030 次
  • 性别: Icon_minigender_1
  • 来自: xiamen
社区版块
存档分类
最新评论

swing 嵌入word

    博客分类:
  • java
阅读更多

由于项目中有用到swing 嵌入word,(需要可以编辑 或不编辑也要可以修改字体大小或修改字体颜色)

在网络上google 一直都没有答案,于是自己有想了以下几种方案:

 

1: 嵌入浏览器,浏览器在嵌入word

2: swing 嵌入swt窗体,swt 可操作word

3: 采用jacob

实践:

1:需要swing 先嵌入浏览器,在浏览器 嵌入 可编辑word。

     最终 卡在 可编辑word 上面

2: 需要架构swing 与swt 的桥梁 ,最终实现,一会贴出代码!!!

3: 可以进行数据交互,但无法进行展示

 

贴出代码:做过笔记,也希望能给有用的朋友!

贴代码:

 

import java.awt.BorderLayout;
import java.awt.Canvas;

import javax.swing.JFrame;
import org.eclipse.swt.SWT;
import org.eclipse.swt.awt.SWT_AWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.ole.win32.OleClientSite;
import org.eclipse.swt.ole.win32.OleFrame;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class Sword extends JFrame {
	private static final long serialVersionUID = -7511601547609623217L;
	private static OleFrame oleFrame1;
	
	public static void main(String[] args) {
		 final JFrame frame = new JFrame();
		 //关键 使用 canvas 进行交互
	        Canvas canvas = new Canvas();
	        frame.getContentPane().add(canvas,BorderLayout.CENTER);
	        frame.setVisible(true);
	        frame.setSize(800, 600);
	        final Display display = new Display();
	        //利用SWT_AWT.new_Shell 交互
	        final Shell shell = SWT_AWT.new_Shell(display,canvas);
	        
	        shell.setLayout(new FillLayout());
			shell.layout();
			shell.setSize(800, 600);
			initGUI(shell);
			shell.open();
			while (!shell.isDisposed()) {
				if (!display.readAndDispatch())
					display.sleep();
			}
			
	        
	}
	private static void initGUI(Shell shell) {
		try {
			FillLayout thisLayout = new FillLayout(org.eclipse.swt.SWT.HORIZONTAL);
			shell.setLayout(thisLayout);
//			shell.setSize(229, 54);
			{
				oleFrame1 = new OleFrame(shell, SWT.NONE);
				{
					try {
						OleClientSite site = new org.eclipse.swt.ole.win32.OleClientSite(
								oleFrame1, org.eclipse.swt.SWT.NONE,
								"Word.Document");
						site.setBounds(0, 0, 104, 54);
						site.doVerb(org.eclipse.swt.ole.win32.OLE.OLEIVERB_SHOW);
					} catch (org.eclipse.swt.SWTException e) {
						String str = "Create OleClientSite Error"
								+ e.toString();
						System.out.println(str);
						return;
					}
				}
			}
			shell.layout();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
   

 

实现过程中参考以下:

http://niubt.360doc.com/content/081214/10/7635_2120288.html

http://blog.csdn.net/fafey/archive/2006/05/10/721988.aspx

 

以上代码 只做了嵌入动作,存在几个点: 嵌入的word 没有滚动条,运行的时候要等1秒才会出来word,其他慢慢修补了。

 

至少能嵌入进去,不用找jacob jidi 以及ocx  麻烦!!!  总算做出来了 hight 下!!!

 

分享到:
评论
2 楼 yan_gusheng 2012-01-08  
万分感谢~
1 楼 itlangqun 2010-09-03  
赞一个。我也正在探讨这方面的东西,很喜欢,也很想做一个。

相关推荐

    SWT 中嵌入Word 控件应用

    在IT行业中,有时候我们需要在Java应用中集成第三方控件或者组件来实现特定的功能,比如在SWT(Standard Widget Toolkit)环境中嵌入Word编辑器。这篇博客"SWT中嵌入Word控件应用"可能就是讲述如何在Java SWT界面中...

    很强大-功能齐全带分页的swing项目

    项目内集成的一些小功能,如“浏览器”、“WORD”、“Excel”、“记事本”和“计算器”,显示了Swing的跨平台能力和组件复用性。这些功能的实现可能依赖于Java的Runtime类来执行系统命令,或者使用Apache POI库处理...

    java实现word表格指定位置盖印,并且设置印悬浮于文字之上,达到跟用实体印在A4纸上盖印一样的效果

    一旦印章图像准备完毕,我们需要将其转换为适合嵌入Word文档的格式,如JPEG或PNG。 接下来,我们需要找到Word文档中表格的指定位置。在Apache POI中,可以使用XWPFTable类代表Word中的表格,通过遍历表格的...

    如何用java实现下拉菜单

    在探讨如何用Java实现下拉菜单的过程中,我们主要聚焦于使用Java AWT(Abstract Window Toolkit)和Swing组件来创建动态、交互式的下拉菜单。虽然提供的代码片段中使用了Applet的方式,但在现代Java开发中,更推荐...

    Java如何操作Word.doc,pdf

    虽然不是直接用于操作Word或PDF,JavaFX和Swing这两个Java GUI库可以用来创建用户界面,显示和编辑这些文档的内容,例如通过嵌入Web浏览器组件来展示PDF。 为了在实际项目中使用这些库,你需要按照以下步骤操作: ...

    jawa语言word文档

    2. **编写和调用 Applet**:包括 Applet 的生命周期,以及如何在 HTML 页面中嵌入 Applet。 **第七章 线程** 1. **简介**:线程是程序中的执行路径,允许多个任务同时进行。 2. **线程的实现**:可以通过继承 ...

    dsoframer .net和java 实例下载

    在.NET框架中,dsoframer可能作为一个.NET控件或库,允许开发人员在C#、VB.NET或其他支持的.NET语言中方便地嵌入和操作Microsoft Word文档。它可能提供了丰富的API接口,用于读取、写入、编辑和显示Word文档,同时...

    (完整word版)Java程序设计B卷.pdf

    - 在HTML中嵌入Java小程序使用`<applet>`标签,其属性包括`code`、`width`和`height`,但不包括`color`。 12. **Javadoc注释**: - `/**...*/`形式的注释可以用于Javadoc命令,生成API文档。 13. **线程控制**:...

    (完整word版)python可以用来做什么.docx

    通过其他库,如Qt、GTK、MFC和Swing,Python也能支持更多种类的GUI开发。 在互联网脚本领域,Python的标准库包含了大量用于网络编程的模块,如套接字、CGI、HTTP、FTP等。Python可以轻松地处理服务器端和客户端的...

    java认证课程 word文档 java应用等

    Java applet是嵌入在网页中的小程序,可以增强网页的交互性。学习如何编写和部署applets,以及理解其生命周期和安全性问题。 8. **Java Swing和JavaFX** 这是Java用于构建图形用户界面(GUI)的工具包。Swing提供...

    Apache POI教程

    JExcel API提供了更多的高级功能,如Excel应用程序的自动化,可以方便地在Swing和AWT应用中嵌入工作簿。 总的来说,Apache POI是一个强大且广泛使用的工具,适用于需要与Microsoft Office文件交互的Java开发者。...

    完整word版,Java期末复习题华广概念填空题(含答案).docx

    1. **Swing容器**: - 容器可以嵌套其他容器,如`JPanel`可以作为其他容器的组成部分。 - 使用`BorderLayout`布局管理器时,组件的添加顺序不影响其最终位置。 2. **事件处理**: - Java中的事件模型基于监听器...

    docx4j使用说明.pdf

    9. **字体支持**:支持字体替换和嵌入,确保文档中使用的任何字体都能正确显示。 10. **文档兼容性**:能读写由Word 2007或安装了兼容包的早期版本创建的docx文件,但不支持Word 2003的XML文档,因为命名空间不同。 ...

    课程设计项目1(上机练习)

    2. **Applet与Application的区别**:Applet是嵌入在网页中的小型Java程序,而Application是独立运行的Java程序。两者启动方式、生命周期和交互方式有所不同,项目要求比较两者的不同。 3. **接口(Interface)**:...

    2021-2022计算机二级等级考试试题及答案No.2031.docx

    11. 字段大小属性限制了字段能容纳的最大字符数,OLE是对象链接和嵌入,不属于字段大小。 12. 扩内存通常指的是增加RAM(随机存取存储器)芯片,而不是ROM。 13. 在Word2003中,表格的每一行中各单元格的高度是...

    2021-2022计算机二级等级考试试题及答案No.18331.docx

    16. Swing组件中,JDialog对象可以指定布局管理器,比如使用`setLayout()`方法。 17. 使用`SKIP -1`跳过了第一条记录,`DISP NEXT 2`显示了下两条记录,所以`RECNO()`返回的是第三条记录的索引,即2。 18. 在SQL中...

    2021-2022计算机二级等级考试试题及答案No.1849.docx

    24. 直接添加组件的Swing容器是JPanel,它是容器类,可以容纳其他组件。 25. 四组函数中返回值的数据类型一致的是A,都是日期或时间相关的函数。 以上解析涵盖了题目中涉及到的大部分知识点,这些内容对于准备...

    2021-2022计算机二级等级考试试题及答案No.2586.docx

    - **解析**:FlowLayout是Swing中最简单的布局管理器,它将组件放置在一个容器中,按照它们被添加的顺序水平排列。如果一行放不下,就换行。因此,正确答案是A.FlowLayout。 ### 9. Word 文本格式化 - **知识点**...

    2021-2022计算机二级等级考试试题及答案No.1026.docx

    14. **AWT与Swing**:AWT是Java的基础图形用户界面库,Swing是其扩展和提高,两者可以同时使用,并且Swing类不从AWT继承。 15. **OLE对象数据类型**:OLE对象数据类型字段所嵌入的数据对象的数据通常存储在数据库中...

Global site tag (gtag.js) - Google Analytics