`
xdoc
  • 浏览: 290878 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

为你的Java应用嵌入一个功能强大的文字编辑器

 
阅读更多

如果你想在Java应用中嵌入一个功能强大的文字编辑器,那么XDocBuilder可能是最好的选择
1、免费
2、格式丰富,可以处理段落、文字、图形、图片、图表、表格等
3、文件格式支持丰富:xdoc、docx、pdf、rtf、doc、htm、txt、swf、svg等
4、标准格式xdoc是一个简单的xml文本
5、包依赖少,只有一个包是必须的
6、嵌入简单,它只是一个JComponent
7、API功能强大:打开、编辑、打印、格式转换等

程序库:

 

xdoc.jar 主程序库(必须)
jfreechart.jar 图表(可选)
zxing.jar 二维码(可选)
poi.jar 读取doc、ppt、xls(可选)
rsyntax.jar

高亮格式化(可选)

 

在线:

http://www.xdocin.com/xdoc?_func=edit

例子:

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.File;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JToolBar;
import javax.swing.UIManager;

import com.hg.xdoc.XDocBuilder;
import com.hg.xdoc.XDocIO;

/**
 * XDocBuilder嵌入测试
 * @author xdoc
 */
public class XDocBuilderTest {
    private static XDocBuilder builder;
    /**
     * @param args
     */
    public static void main(String[] args) {
        try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
            //获取XDocBuilder实例
            builder = new XDocBuilder();
            JFrame frame = new JFrame("XDocBuilder嵌入测试");
            //将XDocBuilder放入面板中
            frame.getContentPane().add(builder, BorderLayout.CENTER);
            JToolBar bar = new JToolBar("工具条");
            JButton btn = new JButton("新建");
            btn.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    //新建
                    builder.create();
                }
            });
            btn = new JButton("打开");
            btn.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    //打开
                    builder.open();
                    //builder.open("http://www.hgsql.com/down/XDocIntro.xdoc", XDocIO.READ_FORMAT_XDOC);
                }
            });
            bar.add(btn);
            btn = new JButton("查看XML");
            btn.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    //显示XML内容
                    try {
                        JOptionPane.showMessageDialog(null, builder.getXml());
                    } catch (Exception e1) {
                        JOptionPane.showMessageDialog(null, e1.getMessage());
                    }
                }
            });
            bar.add(btn);
            btn = new JButton("保存");
            btn.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    //保存当前文件
                    builder.save();
                }
            });
            bar.add(btn);
            btn = new JButton("全部保存");
            btn.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    for (int i = 0; i < builder.getXDocCount(); i++) {
                        //选择第i个文件
                        builder.activeXDoc(i);
                        //保存
                        builder.save();
                        //builder.save("xdox" + i + ".rtf", XDocIO.WRITE_FORMAT_PDF);
                    }
                }
            });
            bar.add(btn);
            btn = new JButton("关闭");
            btn.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    //关闭当前文件
                    builder.close();
                }
            });
            bar.add(btn);
            btn = new JButton("打印");
            btn.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    builder.print();
                }
            });
            bar.add(btn);
            btn = new JButton("直接打印");
            btn.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    //打印到指定打印机
                    builder.print("HG JPD 虚拟打印机");
                }
            });
            bar.add(btn);
            btn = new JButton("关于");
            btn.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    builder.about();
                }
            });
            bar.add(btn);
            Container content = frame.getContentPane();
            content.add(bar, BorderLayout.NORTH);
            frame.setSize(800, 600);
            frame.setVisible(true);
            frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
            frame.addWindowListener(new WindowListener() {
                public void windowOpened(WindowEvent e) {}
                public void windowClosing(WindowEvent e) {
                    //frame关闭时做处理
                    for (int i = 0; i < builder.getXDocCount(); i++) {
                        try {
                            XDocIO.write(builder.getXDoc(i), new File("c:/xdoc" + i + ".xdoc"));
                        } catch (Exception e1) {
                            JOptionPane.showMessageDialog(null, e1.getMessage());
                        }
                    }
                    System.exit(0);
                }
                public void windowClosed(WindowEvent e) {}
                public void windowIconified(WindowEvent e) {}
                public void windowDeiconified(WindowEvent e) {}
                public void windowActivated(WindowEvent e) {}
                public void windowDeactivated(WindowEvent e) {}
            });
            frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }
}

 运行效果:



 

  • 大小: 25 KB
12
3
分享到:
评论
11 楼 minglaihan 2012-12-26  
获取XDocBuilder实例出错啊。。。还是不如想象中的好啊
10 楼 mahaigss 2012-02-16  
9 楼 chdlxm 2012-01-24  
好 ,学习 一下
8 楼 greenhunter 2012-01-20  
确实是好东西!!
7 楼 TESZLX 2011-09-26  
6 楼 zwh910621 2011-09-19  
5 楼 hyw100200 2011-09-19  
这么难看 现在谁会用啊
4 楼 giianhui 2011-09-19  
好东西,正好可以用上。
3 楼 liyaxi 2011-09-17  
好东东!!!!
2 楼 qinlinhai 2011-09-17  
1 楼 chdlxm 2011-09-17  

相关推荐

    swing界面设计之JTree

    (十九) 向 Java 应用程序伸出援助之手——用 JavaHelp 2.0 构建下一个 Java 应用程序的帮助系统 115 入门 116 使用 HelpSet 117 HelpSet 数据文件 118 helpset 文件 118 maps 部分 119 view 部分 119 presentation ...

    Python简介.doc

    开发环境与编辑器 14. 嵌入和扩展 15. 游戏编程 16. 中文编程与文字处理 17. 手机移动 18. 成功案例与应用 19. 书籍文档 20. 综合应用 21. 精选链接 22. 技术支持和服务 什么是 Python 语言 Python 语言是一种...

    etherpad-new:我最近尝试推出自定义 etherpad

    用于网络的真正实时协作文字处理器关于Etherpad 是由 Etherpad 社区维护的真正实时协作编辑器。 Etherpad 在服务器和客户端上都是用 Javascript(99.9%) 编写的,因此开发人员很容易维护和添加新功能。 正因为如此,...

    华报智能报表工具

    华报智能报表工具(ReportAll)是开发人员最理想的报表工具,具有全新的设计思想,对中国式报表和很多复杂报表有很强的针对性,他将“对象摆放”类和“电子表格”类报表开发工具完美融合,使用种类丰富且功能强大的...

    Activiti6.0教程例子下载

    Activiti 作为一个遵从 Apache 许可的工作流和业务流程管理开源平台,其核心是基于 Java 的超快速、超稳定的 BPMN2.0 流程引擎,强调流程服务的可嵌入性和可扩展性,同时更加强调面向业务人员。 Activiti 流程引擎...

    Google Android SDK开发范例大全(第3版) 1/5

    详细介绍了开发Android的人机交互界面、Android常用的开发控件、Android手机收发短信等通信服务、开发Android手机的自动服务功能和娱乐多媒体功能以及整合Android与Google强大的网络服务等内容。随书光盘中包括了...

    Google Android SDK开发范例大全(第3版) 4/5

    详细介绍了开发Android的人机交互界面、Android常用的开发控件、Android手机收发短信等通信服务、开发Android手机的自动服务功能和娱乐多媒体功能以及整合Android与Google强大的网络服务等内容。随书光盘中包括了...

    Google Android SDK开发范例大全(第3版) 3/5

    详细介绍了开发Android的人机交互界面、Android常用的开发控件、Android手机收发短信等通信服务、开发Android手机的自动服务功能和娱乐多媒体功能以及整合Android与Google强大的网络服务等内容。随书光盘中包括了...

    Google Android SDK开发范例大全(第3版) 5/5

    详细介绍了开发Android的人机交互界面、Android常用的开发控件、Android手机收发短信等通信服务、开发Android手机的自动服务功能和娱乐多媒体功能以及整合Android与Google强大的网络服务等内容。随书光盘中包括了...

    正则表达式

    \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界。 -或- 对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,...

    PL/SQL 基础.doc

    可以运用任何纯文本的编辑器编辑,例如:VI 3. PL/SQL字符集 字母: A-Z, a-z; 数字: 0-9; 空白: TAB , SPACE , 回车; 符号: +_)(*&^%$#@!~ ; PL/SQL对大小写不敏感(注意) 4. 标识符命名规则答: 1) 字母...

    HTML开发王

    1.3.1 关于html和html编辑器 1.3.2 创建第一个网页 1.3.3 查看网页的源文件 1.4 html 4.0的特点 1.4.1 国际化 1.4.2 可访问性 1.4.3 表格 1.4.4 混合文档 1.4.5 样式表 . 1.4.6 脚本 1.4.7 打印 1.5 巩固与自测 第2...

    XML实用大全----xml详细参考书

    1.3.1 编辑器... 15 1.3.2 语法分析程序和处理程序... 15 1.3.3 浏览器和其他工具... 15 1.3.4 处理过程总结... 15 .4 相关技术... 17 1.4.1 超文本标记语言(Hypertext Markup Language)... 17 1.4.2 级联...

Global site tag (gtag.js) - Google Analytics