`
xdoc
  • 浏览: 296345 次
  • 性别: 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  

相关推荐

    java上传文件和文本编辑器功能

    在Java开发中,文件上传和文本编辑器功能是常见的需求,尤其在Web应用中。本文将深入探讨如何使用Java实现这两个功能,以及涉及到的关键技术。 首先,文件上传是Web应用程序中用户交互的重要部分,通常涉及表单提交...

    java使用FCKEditor富文本编辑器

    Java 使用 FCKEditor 富文本编辑器是一种常见的前端与后端交互方式,FCKEditor 是一个功能强大的开源富文本编辑器,它允许用户在网页上编辑 HTML 内容,类似于 Microsoft Word 的界面,使得非技术人员也能轻松编辑...

    fck嵌入JAVA

    总结,Java应用中嵌入FCKeditor涉及前端编辑器的引入和配置,以及后端接收和处理富文本内容。在实际开发中,还需要关注安全性、性能优化和用户体验等方面。理解这些知识点有助于构建高效、安全的Web编辑器应用。

    tinymce在线编辑器forjava版带上传

    在Java环境中集成TinyMCE,可以为Web应用程序提供一个用户友好的文本编辑界面,支持多种格式的文字、图片、表格等元素的编辑和插入。这个“tinymce在线编辑器forjava版带上传”是一个经过修改的版本,特别增加了文件...

    JSP文本编辑器(功能非常强大)(源码)

    综上所述,JSP文本编辑器是一个集成了多种文字处理功能的Web应用,它利用JSP和Java技术实现了与服务器的高效交互,通过富文本编辑器提供用户友好的编辑界面。这个编辑器的源码分析和学习对于了解Web开发中的前后端...

    基于HTML文字编辑器

    HTML文字编辑器是一种在网页上实现文本输入、格式化和编辑功能的工具,常用于创建动态网站内容。这种编辑器允许用户通过简单的界面,就像使用常见的桌面文字处理软件一样,来编写和编辑网页内容,而无需深入理解HTML...

    一个可以应用于ASP.net,Java等动态网页的富文本编辑器

    总之,CKEditor作为一个强大的富文本编辑器,为Web开发带来了极大的便利。无论是简单的文字编辑还是复杂的多媒体内容创建,都能在网页上轻松完成。无论你是ASP.NET、Java还是PHP开发者,CKEditor都是值得信赖的选择...

    HTML编辑器在JAVA WEB下的应用研究.pdf

    2. 页面集成:在HTML页面中创建一个IFrame或者利用contenteditable特性,为编辑器预留空间。 3. 初始化编辑器:通过JavaScript调用KindEditor的API,设置编辑器的配置,如工具栏、语言、初始内容等。 4. 数据交互:...

    在线文本编辑器ckeditor3.6.2 for JAVA

    CKEditor 3.6.2是该编辑器的一个版本,专为Java环境设计。 CKEditor 3.6.2 for Java版主要包含以下组件: 1. WAR包:WAR(Web Application Archive)是Java Web应用程序的标准打包格式,可以直接部署在支持Servlet...

    html文本编辑器集合

    综上所述,这个"html文本编辑器集合"是一个宝贵的资源,它不仅提供了多种实际应用的编辑器实例,还涵盖了Web开发中的关键技术,如Java、JSP和JavaScript,对于初学者和经验丰富的开发者都是极好的学习材料。...

    飞鱼在线编辑器

    JSP的优势在于其可移植性、性能和强大的Java生态系统支持,这使得飞鱼编辑器可以跨平台运行,并且能够利用丰富的Java库来扩展功能。 在线编辑器的安全性是至关重要的。描述中提到的“望验证有没有病毒”表明用户...

    fckeditor 文字编辑器

    **fckeditor文字编辑器详解** **一、简介** FCKeditor是一款开源的Web富文本编辑器,它在早期的Web开发中广泛使用,为用户提供了一种在网页上创建和编辑内容的方式,类似于桌面应用程序中的Word处理体验。...

    在线文本编辑器

    在线文本编辑器是一种网页应用程序,它允许用户在浏览器中创建、编辑和格式化文本,而无需离开网页。这种编辑器通常被用在内容管理系统(CMS)、论坛、博客平台或者任何需要用户输入富文本的地方。本项目提供的编辑...

    Java软件 简繁转换易jar程式嵌入工具

    用户可以通过命令行界面运行这个jar文件,或者将其嵌入到其他Java应用程序中作为库来调用其转换功能。例如,在一个Java项目中,开发者可以使用`java -jar 简繁转换易.jar`命令来启动这个工具。 在使用Java软件简繁...

    JSP下在线编辑器,比较好

    eWebEditor是一款常见的JSP在线编辑器,它为网站提供了一个便捷的文本编辑工具,使得用户可以在网页上实现类似Word的编辑体验。这款编辑器支持多种文本格式化操作,包括字体设置、颜色调整、段落样式、列表、表格、...

    可以嵌入WEB页面的富文本编辑框

    只需一行代码,就能将一个简单的textarea转换为功能丰富的编辑器,这是富文本编辑框的一个关键特性,简化了开发者集成编辑器到他们网站的过程。 标签“富文本编辑框”和“可以嵌入WEB页面”进一步强调了这个编辑框...

    JSP页面文本编辑器

    然后,可以创建一个textarea元素,FCKeditor会将其替换为可视化的编辑界面。在服务器端,开发者需要处理由FCKeditor提交的富文本内容,这通常涉及到HTML的解析和存储。 总之,FCKeditor作为一款强大的JSP页面文本...

    一款非常好用的附文本编辑器,只是jsp、asp、php等

    - **kindEditor**:这是一个轻量级且功能强大的Web富文本编辑器,具有良好的用户体验,支持多种浏览器,并提供丰富的API供开发者定制功能。 - **编辑器**:在计算机领域,编辑器是指用于创建、修改和查看文本文件的...

    FCKeditor_2.6.6文本编辑器

    **FCKeditor 2.6.6:一个强大的JavaScript文本编辑器** FCKeditor是一款功能丰富的开源文本编辑器,主要用于Web应用中,为用户提供类似桌面文字处理软件的体验。它基于JavaScript开发,这意味着任何支持JavaScript...

    ckeditor3.6的java版本完整项目

    它的3.6版本是该编辑器历史上的一个重要里程碑,提供了丰富的功能和良好的用户体验。在这个“ckeditor3.6的java版本完整项目”中,我们可以看到CKEditor被适配到Java环境中,使得在Java应用中也能使用其强大的编辑...

Global site tag (gtag.js) - Google Analytics