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

最全面的swing文本编辑器 该文本编辑器是记事本的强化版,可以插入图片,鼠标画图等等... 立即下载
 

如果你想在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

例子:

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());
        }
    }
}


 

doc_pdf解析用到的PDFRenderer.jar、hg.jar等jar PDFRenderer开源库是操作PDF的一个简单有强大的类库 hg.jar XDOC引擎与JSP引擎类似,它的目标是动态生成pdf、flash、docx、html、png等各种格式。与JSP不同的是XDOC是可视化设计的,提供了更多高级的显示功能,如:条形码、图表等。最重要的 jar 立即下载

相关推荐

Xdoc资源jar包hg.jar

hg.jar XDOC引擎与JSP引擎类似,它的目标是动态生成pdf、flash、docx、html、png等各种格式。与JSP不同的是XDOC是可视化设计的,提供了更多高级的显示功能,如:条形码、图表等。最重要的 jar

SWT 中嵌入Word 控件应用

利用WebOffice进行Word控件的应用,源码如下: 效果图如下: package com.edocbase.desktop.word; import java.io.File; import java.util.HashMap; import java.util.Iterator; import org.eclipse.swt.SWT; import org.ecl...

java 遇我 1170

PDF解析jar包

PDF解析jar包。可以用

java 集成pageoffice_Java集成PageOffice在线打开编辑word文件 - Spring Boot

开发环境:JDK1.8、Eclipse、Sping Boot + Thymeleaf框架。一. 构建Sping Boot + Thymeleaf框架的项目(不再详述):1. 新建一个maven project项目:demo。2. 修改pom.xml配置,把项目配置为Spring Boot项目;3. 配置Thymeleaf:添加Thymeleaf依赖,并在application.properties...

weixin_42357916的博客 1644

trang-jar下载

trang-jar下载

Swing实现编辑器(支持语法高亮)

Swing实现编辑器(支持语法高亮),支持的语言类型大致为十几个。

使用IDEA开发java swing,开发小型桌面应用,导出数据库表结构到word中

开发小型桌面应用,导出数据库表结构到word中

桃子疯狂_博客 1410

【漆学军】MT4进阶到MT5速成之路(2)获取持仓

MT5在持仓获取上,要比MT4复杂些,分两部分,获取持仓和挂单采用了不同的方法。 一、获取持仓中的buy和sell单 int b=0;//获取buy单个数 int s=0;//获取sell单个数 double lot_total_buy=0;//获取持仓中buy单的总手数 double lot_total_sell=0;//获取持仓中sell单的总手数 for(int i=0; i<PositionsTotal(); i++) { ulong ticket=Positi

漆学军的编程笔记 1626

用 java swing 编写的富文本编辑器,成品小程序,拿来即可用

用 java swing 编写的富文本编辑器,成品小程序,拿来即可用

u014480136的博客 1120

【Telephony】APN配置及加载流程&项目实践(AOSP)

学习APN关键是学会明白apns-conf.xml文件各个参数的意思,然后熟悉TelephonyProvider是如何读取文件创建数据库的,譬如数据库表的约束、文件的读写顺序等,还有读取后的ApnSetting的二次定制以及显示(例如屏蔽xcap等)。虽然一般在项目中APN的需求很简单,就是按照客户提供的APN参数添加上配置,或者在显示屏蔽一些参数,但是项目维护的过程中APN的问题也是比较多的。

weixin_44513784的博客 5514

MCP+A2A:从实验室到生产环境的落地之旅

本文通过实际项目中的落地案例,展示了 MCP+A2A 协议结合使用的强大功能和广泛适用性。同时,我们也探讨了开发者社区的贡献、与其他技术的融合,以及未来技术趋势的展望。希望本文能够帮助读者更好地理解如何将这一架构从实验室推向生产环境,推动 AI 技术的实际应用。

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 1495

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

http://xdoc.iteye.com/blog/1126216 以下文章转自:   如果你想在Java应用中嵌入一个功能强大的文字编辑器,那么XDocBuilder可能是最好的选择1、免费2、格式丰富,可以处理段落、文字、图形、图片、图表、表格等3、文件格式支持丰富:xdoc、docx、pdf、rtf、doc、htm、txt、swf、svg等4、标准格式xdoc是一个简单的xm...

郑林的专栏 213

x265开源编码器源码框架深度解析

x265开源编码器源码框架深度解析

世界那么大,我想去看看~【随心更新,看世界去了😄】 670

前端Java应用中如何嵌入支持Word上传的富文本编辑器?

要求:开源,免费,技术支持编辑器:百度ueditor前端:vue2,vue3,vue-cli,react,html5需求:复制粘贴word内容图片,word图片转存交互,导入pdf,导入PowerPoint(PPT),web截屏用户体验:Ctrl+V快捷键操作平台:Windows,macOS,Linux,RedHat,CentOS,Ubuntu,中标麒麟,银河麒麟,统信UOS,信创国产化系统。

2501_90694782的博客 684

建行报专版报道建设银行金融科技发展历程

经过十多年的建设,总行前中后台部门都有了自己的业务系统,但系统“部门”特征显著,渠道、客户、产品的横向整合不足,产品系统层次化、结构化、参数化程度不高,渠道支持产品快速部署以及跨渠道服务能力不足,管理分析类系统建设相对滞后,系统较弱的可扩展能力在应对高速增长的交易量时已疲态尽显,同时安全稳定运行的压力和风险日益积聚。站在新的历史起点上,科技条线将聚焦主责主业,完善信息科技管理体系,紧紧围绕安全生产中心任务,持续推动技术能力复用共享和自主可控,为全行做好金融五篇大文章,推动业务高质量发展提供技术支撑。

银行信息系统应用架构详解 386

2024美团秋招硬件开发笔试真题及答案解析

在 Linux 内核的网络设备驱动中,数据链路层的功能通常由网络协议栈的低层(如以太网驱动)实现,而不是作为网络设备驱动的一个独立层次。在 FreeRTOS 中,任务通知(Task Notifications)是一种轻量级的事件传递机制,用于在任务之间或任务与中断之间传递信号。小美正在开发一个简单的密码生成器,其中一个功能是将输入的字符串中的所有字母按字母顺序循环前移一位(即 'a' 变为 'z','B' 变为 'A',以此类推)。它包含了网络设备的各种参数和方法,用于管理网络设备的初始化、配置和操作。

XU157303764的博客 1678

【技术教程】如何将文档编辑器集成至基于Java的Web应用程序

自研文档功能成本高、兼容性差,第三方插件又容易出现 “割裂感”,怎么才能让专业文档工具和现有 Java Web 系统 “无缝对接”? ONLYOFFICE 文档轻松嵌入 Java、Python、Node.js 等各类 Web 应用,让你的系统瞬间拥有企业级文档处理能力。阅读本文,了解详细教程

ONLYOFFICE的官方博客 1260

基于知识图谱的时空事件关联推理能力培养

随着信息技术的飞速发展,大量的时空事件数据被产生和收集,如交通流量数据、气象观测数据、社交媒体上的地理定位信息等。这些数据蕴含着丰富的知识和规律,但要从中提取有价值的信息并非易事。基于知识图谱的时空事件关联推理旨在通过构建知识图谱,将时空事件数据进行整合和关联,从而实现对事件之间潜在关系的挖掘和推理。本文的目的是系统地介绍基于知识图谱的时空事件关联推理能力的培养方法,包括核心概念、算法原理、数学模型、实际应用等方面。

操作系统内核探秘的博客 751

CKEditor在线编辑器

CKEditor是个专门使用在网上属于开放源码的文字编辑器,它用于轻量化,不需要太复杂的安装步骤即可使用,它可以和PHP,javascript,asp,java等不同的编程语言相结合。接下来介绍CKEditor在线编辑器的实例。...

Muhtar_的博客 3784

嵌入式Modbus协议面试题及参考答案

Modbus 协议采用主从模式进行通信,这种模式定义明确,便于在工业环境中实现设备之间的有序数据交互。在主从模式中,存在一个主站(Master)和多个从站(Slave)。主站通常是工业控制系统中的上位机,如 PLC、工控机等,它负责发起通信请求,控制整个通信过程。从站则是各种现场设备,如传感器、执行器等,它们接收主站的请求,并根据请求进行相应的操作,然后将结果返回给主站。主站的主要功能包括:发起数据读取或写入请求、控制通信的时序和流程、处理从站返回的数据。

大模型大数据攻城狮的专栏 2044

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

html java编辑器插件,5+用Java编写的最佳代码编辑器插件

本文概述如今, 开发工作正在突飞猛进, 如今你触手可及的基于云的IDE使你无论身在何处都能工作。这些服务中最重要的组件是代码编辑器。是的, 你可以在其中编辑代码的那个框用奇特的颜色, 自动完成和其他(可能)可以帮助你更快地工作的东西突出显示。享受我们5个用Java编写的最佳代码编辑器插件的集合。5. EditArea例子 EditArea是用于源代码的免费JavaScript编辑器。该编辑器旨在编...

weixin_35367645的博客 1071

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

上一篇: 为你的Java应用嵌入一个功能强大的文字编辑器
下一篇: word方式编辑EPUB电子书
sqlhub
博客等级 码龄21年 19粉丝 93原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值