您的位置:首页 > 编程语言 > Java开发

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

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

程序库:

 

名称
用途
下载地址
hg.jar
主程序库(必须)
http://www.hgsql.com/xdoc/lib/hg.jar
fgio.jar
输出swf、svg、emf、ps
http://www.hgsql.com/xdoc/lib/fgio.jar
filters.jar
滤镜
http://www.hgsql.com/xdoc/lib/filters.jar
itext.jar
输出pdf、rtf
http://www.hgsql.com/xdoc/lib/itext.jar
jfreechart.jar
图表
http://www.hgsql.com/xdoc/lib/jfreechart.jar
poi.jar
读取doc、输出xls、ppt
http://www.hgsql.com/xdoc/lib/poi.jar
api文档:

http://www.hgsql.com/XDocApi/index.html
在线:

http://www.hgsql.com/XDocBuilder.asp

例子:

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

查看图片附件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: