You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在BeanShell脚本中获取jEdit主JTextArea以生成Isabelle理论文件截图?

解决Isabelle/jEdit理论文件导出为带排版高亮图片的问题

直接访问contentTextArea的BeanShell方案

无需修改jEdit代码,可通过jEdit内置API在BeanShell脚本中直接获取主文本区域:

  • 获取当前激活的视图对象:View view = jEdit.getActiveView();
  • 从视图中提取编辑面板:EditPane editPane = view.getEditPane();
  • 获取对应的文本区域组件:TextArea textArea = editPane.getTextArea();

拿到textArea后,结合图像绘制逻辑即可生成带排版和语法高亮的图片,完整示例脚本如下:

import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;

// 获取当前活跃的文本编辑区域
View view = jEdit.getActiveView();
EditPane editPane = view.getEditPane();
TextArea textArea = editPane.getTextArea();

// 创建匹配文本区域尺寸的图片
int imgWidth = textArea.getWidth();
int imgHeight = textArea.getHeight();
BufferedImage outputImage = new BufferedImage(imgWidth, imgHeight, BufferedImage.TYPE_INT_RGB);

// 将文本区域内容绘制到图片
Graphics2D g2d = outputImage.createGraphics();
textArea.paint(g2d);
g2d.dispose();

// 保存图片到指定路径(替换为你的目标路径)
File savePath = new File("/home/user/isabelle_theory.png");
ImageIO.write(outputImage, "png", savePath);

脚本调用方式

通过shell命令调用Isabelle/jEdit并执行脚本:

isabelle jedit -r /path/to/your/export_script.bsh

替代方案

如果上述方法存在兼容性问题,可尝试:

  • 利用jEdit打印功能:将理论文件打印为PDF,再通过convert等工具转成图片,需确保打印设置保留高亮格式。
  • Isabelle文档导出命令:使用isabelle document生成带格式的文档,再从中提取图片,该方式更适合批量处理纯内容格式,而非界面实时高亮样式。

内容的提问来源于stack exchange,提问作者Gergely

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 14:16:52