在Java中使用Apache POI XWPF在同一个word文档中实现横向和纵向页面。
我正在尝试使用Java和Apache POI库来创建一个包含一些景观和一些肖像页面的Word文档.我可以更改所有页面的方向,但是有没有办法仅改变其中一些页面的方向?我尝试使用不同的部分和身体,但无济于事. 目前,我编写了一个以XWPFDOPUMENT作为输入并更改新主体的方向的函数.我曾希望改变新体的方向不会影响以前的页面,但会影响整个文档. private void changeOrientation(XWPFDocument document, String orientation){ CTDocument1 doc = document.getDocument(); CTBody body = doc.addNewBody(); body.addNewSectPr(); CTSectPr section = body.getSectPr(); if(!section.isSetPgSz()) { section.a
0 2023-05-14
编程技术问答社区
Apache POI的XWPF是否支持段落的自动缩略语功能?
我知道,HWPF具有此功能,但是我在XWPF中找不到任何模拟. 也许有解决此问题的解决方法.如果您知道一些,请与我分享. 预先感谢! 解决方案 在Word Office OpenXML中,自动连字符设置设置为整个文档,并且可以抑制单段.整个文档的设置在软件包的/word/settings.xml部分中.这是单段可能抑制自动连字符,以 ctpprbase.ctpprbase.Addnew get-addnew get-addnew get-addnew get-addnew get-addnew get-addnew and and and and and and and and and and and and and and and . 示例: import java.io.FileOutputStream; import org.apache.poi.xwpf.usermodel.*; import org.apache.poi.POIXMLDocu
2 2023-04-04
编程技术问答社区
Java Apache POI:在 "文本 "后面插入一个图像
我的DOCX文件中有一个占位符图像,我想用新图像替换它.问题是 - 占位符图像具有"文本前面"的属性,但新图像却没有.结果,对齐破裂.这是我的代码片段和带有占位符和由此产生的docx的DOCX. ....... replaceImage(doc, "Рисунок 1", qr, 50, 50); ByteArrayOutputStream out = new ByteArrayOutputStream(); doc.write(out); out.close(); return out.toByteArray(); } } public XWPFDocument replaceImage(XWPFDocument document, String imageOldName, byte[] newImag
0 2023-04-04
编程技术问答社区
XWPF 在表格单元格中新增段落
我试图用一列创建一个简单的表. 我创建了一个新的行,在每一行中有一个新段落.问题在于每行以一个空线开头 - 我想新段落会创建它. 我试图在没有成功的情况下设置间距,缩进等. for (int i=0; i
0 2023-04-04
编程技术问答社区
如何使用apache poi为word文档设置页边距?
我想为使用Apache Poi-3.9创建的Word文档设置页面细边缘.我发现可以使用CTPageMar完成 但是CTPageMar尚未解决.我正在使用Apache Poi-3.9 我尝试了这个 CTSectPr sectPr = document.getDocument().getBody().addNewSectPr(); CTPageMar pageMar = sectPr.addNewPgMar(); pageMar.setLeft(BigInteger.valueOf(720L)); pageMar.setTop(BigInteger.valueOf(1440L)); pageMar.setRight(BigInteger.valueOf(720L)); pageMar.setBottom(BigInteger.valueOf(1440L)); 采 缺少类问题的来源在 apache poi faq : 要使用新的O
8 2023-04-04
编程技术问答社区
Apache POI: ${my_placeholder}被视为三个不同的运行。
i有一个.docx模板,供占位符,例如${programming_language},${education},等等. 占位符的关键字必须轻松地与其他普通单词区分开,因此它们与${ }一起包含. for (XWPFTable table : doc.getTables()) { for (XWPFTableRow row : table.getRows()) { for (XWPFTableCell cell : row.getTableCells()) { for (XWPFParagraph paragraph : cell.getParagraphs()) { for (XWPFRun run : paragraph.getRuns()) { System.out.println("run text: " + run.text()); /** replace text here, etc.
0 2023-04-04
编程技术问答社区
在Apache POI XWPF中替换一个文本
我刚刚发现Apache POI库对于使用Java编辑Word文件非常有用.具体来说,我想使用Apache POI的XWPF类编辑 docx 文件.我发现没有适当的方法/文档,可以做到这一点.有人可以通过步骤解释,如何替换DOCX文件中的某些文本. **文本可以在行/段落中或表行/列 中 解决方案 您需要的方法是 xwpfrun.setText(string).只需通过文件进行操作,直到找到感兴趣的XWPFrun,请确定您想要的新文本,然后替换它. (运行是具有相同格式的文本序列) 您应该能够做类似的事情: XWPFDocument doc = new XWPFDocument(OPCPackage.open("input.docx")); for (XWPFParagraph p : doc.getParagraphs()) { List runs = p.getRuns(); if (runs != null) {
6 2023-04-04
编程技术问答社区
检查XWPFRun是否被突出显示
对于Apache Poi,我正在阅读DOC和DOCX的Word文档. DOC的旧字符具有一个iShighlight的函数,它告诉我文本是否突出显示. DOCX文件是否有XWPFrun的等效函数? 解决方案 经过大量的研究和分析,我能够找出CTRPR类中的功能. //p is the XWPFParagraph for (XWPFRun pRun : p.getRuns()) { CTRPr ctrpr = pRun.getCTR().getRPr(); if (ctrpr != null && ctrpr.isSetHighlight()) { //This is highlighted } }
6 2023-01-05
编程技术问答社区
在内容之间插入XWPFTable
嗨,我想在某些内容之间插入xwpft.文件是固定的,并将文件作为输入.我需要将表插入特定字段. 这样: Stack Overflow是一个私人网站,这是Jeff Atwood和Joel Spolsky于2008年创建的Stack Exchange网络的旗舰网站.这是表. 内容继续.它是为早期问答站点(例如Experts-extchange. 谢谢 我编写的代码 public static void main(String[] args) throws IOException { XWPFDocument document = new XWPFDocument(new FileInputStream(new File("input.docx"))); FileOutputStream out = new FileOutputStream(new File("output.docx")); XmlCursor c
2 2023-01-04
编程技术问答社区
XWPFTable中的文本方向
如何使用xwpftable中的apache poi旋转文本? ? 解决方案 到目前为止,文本方向设置还没有实现到XWPFTableCell中.但是使用用于使用org.openxmlformats.schemas.spreadsheetml.x2006.main.CTTextDirection此示例需要所有schemas ooxml-schemas-1.3.jar的完整罐子=" noreferrer"> FAQ-N10025 . 示例: import java.io.File; import java.io.FileOutputStream; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFTable; import org.apache.poi.xwpf.usermodel.XWPFTableCell; import org.ap
8 2023-01-03
编程技术问答社区
XWPFDocument是否可以转换为Byte[]而不用先保存到文件中?
是否可以将XWPFDocument转换为byte[]?我不想将其保存到文件中,因为我不需要它.如果有可能的方法可以做到,它将有助于 解决方案 a xwpfdocument 扩展 poixmldument 方法将java.io.OutputStream作为参数.也可以是ByteArrayOutputStream.因此,如果需要将XWPFDocument作为字节数组,然后将其写入ByteArrayOutputStream,然后从方法 bytearrayoutputstream.tobytearray . 示例: import java.io.ByteArrayOutputStream; import java.io.FileOutputStream; import org.apache.poi.xwpf.usermodel.*; public class CreateXWPFDocumentAsByteArray { public static void main
40 2022-12-31
编程技术问答社区
删除一个XWPFParagraph可以保留它的段落符号(¶)。
我正在尝试使用Apache POI. 根据我所理解的内容,可以通过删除所有运行来删除段落,这样: /* * Deletes the given paragraph. */ public static void deleteParagraph(XWPFParagraph p) { if (p != null) { List runs = p.getRuns(); //Delete all the runs for (int i = runs.size() - 1; i >= 0; i--) { p.removeRun(i); } p.setPageBreak(false); //Remove the eventual page break } } 实际上,它有效,但是有些奇怪.删除的段落的块不会从文档中消失,而是在一组空线路中转换.就像每
4 2022-12-24
编程技术问答社区
Apache POI-将Word文档(docx)分割成若干页
我一直在尝试根据预定义的标准将DOCX文档分割为多个文档.以下是我将其切成段落的方法 try { FileInputStream in = new FileInputStream(file); XWPFDocument doc = new XWPFDocument(in); List paragraphs = doc.getParagraphs(); for (int idx = 0; idx
10 2022-12-24
编程技术问答社区
如何在Java的POI中使用XWPFTable合并单元格(或应用colspan)?
在POI中创建一个表非常容易,但是它的教程非常有限,我找不到可以在生成DOCX文件时在表中创建一个简单的合并单元格的一个. 解决方案 如果您已经创建了表格,在表中行和行中的单元格,则可以将GridSpan添加到单元格属性: if (cell.getCTTc().getTcPr() == null) cell.getCTTc().addNewTcPr(); if (cell.getCTTc().getTcPr().getGridSpan() == null) cell.getCTTc().getTcPr().addNewGridSpan(); cell.getCTTc().getTcPr().getGridSpan().setVal(2); 注意:单元格是org.apache.poi.xwpf.usermodel.XWPFTableCell. 其他解决方案 要水平/垂直合并您需要创建2个cthmerge并使用setVal: 一个用于您将保留的单元格(stme
16 2022-12-22
编程技术问答社区
如何使用apache POI XWPFDocument从java创建多层次的子弹和编号?
我已经阅读了许多与我的要求相关的博客和论坛,但到目前为止我能够使用我所拥有的所有帮助来生成先子弹或编号.任何人都可以指导我如何使用Apache Poi创建多级编号. 想知道apache poi xwpfdocument支持此类功能吗? 下面是我的要求 第一级 第二级 第二级 第一级 编辑1: 以下是我的示例代码,适用于单级编号 public class TestNumbering { String fileName=""; InputStream in = null; CTAbstractNum abstractNum = null; public TestNumbering() { try { in = CreateWordDocument.class.getClassLoader().getResourceAs
250 2022-12-21
编程技术问答社区
替换.docx内的文本模板(Apache POI、Docx4j或其他)。
我想在 ms Word ( .docx )文档中使用正则表达式(Java Regex): Example: …, с одной стороны, и %SOME_TEXT% именуемое в дальнейшем «Заказчик», в лице %SOME_TEXT% действующего на основании %SOME_TEXT% с другой стороны, заключили настоящий Договор о нижеследующем: … 我试图获取文本模板(例如%some_text%)使用 apache poi -xwpf 并替换文本,但不能保证替换,因为POI分离 运行 =>我得到这样的东西(System.out.println(run.getText(0))): … , с одной стороны, и % SOME_TEXT % именуемое в дальнейшем «Заказчи
16 2022-12-21
编程技术问答社区
如何在java中用apache poi从docx中删除包含数据的表格和段落
我有一个单词模板,该模板具有多个相似表和与放置在它们面前的表相关的一些段落.根据数据的数量,我填充了一些表,而其他表则不需要,因此有段落. 我需要删除这些表和段落. 如您在图像中所看到的,我需要删除表2及其段落表Parahgraph 请帮助我如何做.我尝试使用document.removebodylement(pos),但这无济于事. int startIndex = 0; int endIndex = 0; startIndex = doc.getPosOfTable(doc.getTables().get(0)); startIndex++; endIndex = doc.getPosOfTable(doc.getTables().get(1)); System.out.println("startIndex "+ startIndex); System.out.println("endIndex "+ endIndex); for(int i=startInde
8 2022-12-21
编程技术问答社区
如何通过使用Apache POI向docx文件添加嵌入式公式?
我想通过Apache Poi以编程方式创建DOCX文件. 我想在某些行中添加一些数学方程. 如何以某种方式执行此操作,即当用户打开DOCX文件时,它将将该等式视为DOCX方程式. 我的意思是我不希望只需向那个运行给出背景颜色,我想要当用户双击我的等式ms-word以方程式打开它. 提前感谢 解决方案 这不是真正复杂的: import java.io.FileOutputStream; import org.apache.poi.xwpf.usermodel.*; import org.openxmlformats.schemas.officeDocument.x2006.math.CTOMath; import org.openxmlformats.schemas.officeDocument.x2006.math.CTRad; import org.openxmlformats.schemas.officeDocument.x2006.math
26 2022-12-21
编程技术问答社区