我无法将包含空行的文本作为单独段落添加到word文档中。
如果我尝试添加以下包含3个不同段落的文本。
我得到的是1。这里有一些文字。2.这里还有一段文字。3.这里还有一个。好像它们是同一段。
是否可以使用ApachePOI将包含空行的文本作为单独的段落添加到Word文档中?
public static void addingMyParagraphs(XWPFDocument doc, String text) throws InvalidFormatException, IOException {
XWPFParagraph p = doc.createParagraph();
XWPFRun run = p.createRun();
run.setText(text);
run.setFontFamily("Times new Roman");
}
在下面的方法中,MyText变量是一个文本区域变量,它是javaFx应用程序的一部分。
public void CreatingDocument() throws IOException, InvalidFormatException {
String theText = myText.getText();
addingMyParagraphs(doc, theText);
FileOutputStream output = new FileOutputStream("MyDocument.docx");
doc.write(output);
output.close();
}
}
您需要将文本拆分为“段落”,并将每个段落分别添加到WORD文档中。这与JavaFX无关。
下面是一个使用文本块来模拟输入到[JavaFX]TextArea
中的文本的示例。代码后的解释。
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
public class PoiWord0 {
public static void main(String[] args) {
String text = """
1. Some text here.
2. Another text here.
3. Another one here.
""";
String[] paras = text.split("(?m)^[ \\t]*\\r?\\n");
try (XWPFDocument doc = new XWPFDocument();
FileOutputStream output = new FileOutputStream("MyDocument.docx")) {
for (String para : paras) {
XWPFParagraph p = doc.createParagraph();
XWPFRun run = p.createRun();
run.setText(para.stripTrailing());
}
doc.write(output);
}
catch (IOException xIo) {
xIo.printStackTrace();
}
}
}
我假设段落分隔符是空行,所以我在空行上分割文本。这仍然会在数组的每个元素中留下尾随的换行符。我使用stripTraling()
来删除那个换行符。
现在我有了一个段落数组,所以我只需为每个数组元素向[WORD]文档添加一个新段落。
注意,上面的代码是使用JDK15编写的。
用于拆分文本的正则表达式来自题为“使用Java从多行字符串中删除空行”的SO问题
Java7中添加了Trywith资源。
在JDK 11中添加了stripTraling()
在使用ApachePOI写入word文档时,对于必须根据某个“计数”动态复制段落的位置,这些段落的标题必须按照章节顺序编号。假设它是word文档中的第7节,那么其中每个段落的标题应按顺序编号为7.1、7.2等。 尽管我看到了一些解决方案,其中考虑了word文档的xml,并使用了XWPFN编号。 还有其他更简单的方法吗? 或 如果我的word模板已经有了一个带有编号标题的段落,并且我必须多次复制相同
我正在尝试创建一个包含多列的word文档。这样做(而不是使用表)的原因是,数据将跨越多个页面,在添加到新页面之前,我只能用列填充整个页面。 可以用ApachePOI实现吗?谢谢
我试图设置一些段落或文本在. docx文件使用Apache POI,我正在读取一个. docx文件作为模板从WEB-INF/资源/模板文件夹内我的战争文件,一旦读取,我想创建动态更多的表后,第9表用作模板,我可以添加更多的表格,但其他类型的内容(段落)被安排在文档的其他部分?有必要的形式来做这件事吗?
我需要一个表格,第一行和第二行的单元格合并在一起。 大概是这样的: 桌子的图片(我不能张贴图片)http://i.stack.imgur.com/dAO6j.png 我一直在复习与本主题相关的所有问题,并找到了一些将网格跨度应用于单元的答案,但我找不到真正的解决方案。 以下是我从谷歌和本网站获得的示例代码: 我从这段代码中得到的信息如下: 我试图用
问题描述 (Problem Description) 如何使用Java将文本作为段落添加到PDF文档中。 解决方案 (Solution) 以下是使用Java将文本作为段落添加到PDF文档的程序。 import com.itextpdf.io.font.FontConstants; import com.itextpdf.kernel.color.Color; import com.itextp
假设我有两份文件。 一个是有大约2-3页的主模板。第二个只有一段文字与各种风格(粗体,斜体,下划线,字体大小等)。 我想用第二个文档中的段落替换模板中的一个参数。 null