0

我目前正在为这家公司开发一个应用程序,作为我最后一年的学习项目,在这个应用程序中,有一个允许你打印论文的功能,所以我显然使用了 jeditorpane,以及Charles Bell HTMLEditorKit的预定义功能,如设置字体和印刷等......我必须从文本文件中加载这个预先编写的文本,然后程序应该自动在文件中添加一些文本,如果用户也可以添加更多他需要,或更改字体或样式或其他任何东西。

所以这就是问题所在,因为预定义的文本应该已经与已经设置的字体和已经存在的一些其他属性对齐,并且由于 txt 文件不允许这样做,所以我尝试使用 docx 文件,这使得文本在编辑器窗格中难以理解,我也尝试了 docx4j api,但是我没有 HTMLEditorKit 菜单和功能,(或者我可以,但我不知道如何)并且应用程序的执行变得相当慢这个 api . 我还尝试了这个中期编辑器工具包,我发现它非常有用,可以提供很多功能,但我无法将文本文件加载到它的文本窗格中。

所以我的问题确切地说是: 1)我如何使用 charles bell HTMLEditorKit 并将 docx 文件加载到有问题的 edtiorpane 中?2)或者我如何使用带有功能菜单(样式、打印、字体...)或其他预定义菜单的 HTMLEditorKit 的 docx4j api?3)或者更好的是,我如何仍然使用 metaphaseEditorPane 及其完整的功能菜单,同时在其文本窗格中加载现有的 docx 文件?

很抱歉这个问题很长,任何帮助都很重要,我真的需要并感激它。

4

2 回答 2

0

请参阅将自定义形状添加到 JTextpane 并保存到新的 Word 文档以引用两个项目,这些项目使用 docx4j 在 Swing 中提供 docx 的富文本编辑。

于 2014-05-07T00:26:08.227 回答
0

经过几天的搜索和测试,我终于找到了解决方案,实际上它非常简单。

我所要做的就是使用一个中期编辑器面板(顺便说一下,它有一个很棒的工具栏)创建一个 DocxEditorkit,然后将中期编辑器面板的文本窗格的编辑器设置为这个 DocxEditorKit,虽然变形与 HTML 文本窗格一起使用,它奇迹般地工作...

DocxEditorKit DEK=new DocxEditorKit;
MetaphaseEditorPanel MEP=new MetaphaseEditorPanel;
MEP.getHTMLTextPane().setEditorKit(DEK);

   //Try and Catch blocks of course to read the file
DEK.read(new FileInputStream(PathToFile), MEP.getHTMLTextPane().getDocument(), 0);
getContentPane.add(MEP, BorderLayout.CENTER);

就是这样……谁能想到会这么简单。

于 2014-05-07T11:30:22.423 回答