在word中插入目录,不把目录的页数计算在内

假设目录在第1页
1. 先在第1页最后,点击“页面布局”——“分隔符”——插入“分节符”的“下一页”;
2.点击菜单的“插入”——“页眉”中的“编辑页眉”,把光标移到第2页的页脚,此时,工具栏中变成了“设计”,在里面可以找到“链接到前一条页眉”的按钮,取消;
3.选择“页码”——“页码格式”——“编号格式”选择“1 2 3……”,页码编号选择“起码页码” “1”——“确定”,然后选“页码”选择适当格式;

4.最后点击“关闭页眉和页脚”即可。 


亲测可用!

可以使用Apache POI库来实现在Word指定页数开头插入一张图片。具体的实现方法可以参考以下代码: ``` import java.io.FileInputStream; import java.io.FileOutputStream; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; import org.apache.poi.xwpf.usermodel.XWPFRun; import org.apache.poi.xwpf.usermodel.XWPFPicture; import org.apache.poi.xwpf.usermodel.XWPFPictureData; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; import org.apache.poi.xwpf.usermodel.XWPFRun; import org.apache.poi.xwpf.usermodel.XWPFPictureData; import org.apache.poi.xwpf.usermodel.XWPFPicture; import org.apache.poi.xwpf.usermodel.ParagraphAlignment; import org.apache.poi.xwpf.usermodel.TextOrientation; import org.apache.xmlbeans.XmlCursor; import org.apache.xmlbeans.XmlException; import org.apache.xmlbeans.XmlObject; import org.apache.xmlbeans.impl.xb.xmlschema.SpaceAttribute$Enum; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTRelativePosition; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTWrapText; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTP; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTPoint2D; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTAnchor; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTBlip; import org.openxmlformats.schemas.wordprocessingml.x2006.main.STWrapText; import org.openxmlformats.schemas.drawingml.x2006.main.*; public class WordImageInsertDemo { public static void main(String[] args) { try { String docxPath = "D:\\temp\\test.docx"; int pageNumber = 2; String picPath = "D:\\temp\\test.png"; //打开docx文件 FileInputStream fis = new FileInputStream(docxPath); XWPFDocument document = new XWPFDocument(fis); fis.close(); //获取目标面的段落 XWPFParagraph paragraph = document.getParagraphs().stream() .filter(p -> document.getPosOfParagraph(p) >= document.getDocument().getBody().getSectPr().getPgSz().getH().intValue()*pageNumber) .findFirst() .orElse(null); if(paragraph == null) { System.out.println("未找到指定面。"); return; } //在目标段落前面插入一张图片 XmlCursor cursor = paragraph.getCTP().newCursor(); cursor.toPrevSibling(); XWPFParagraph newParagraph = document.insertNewParagraph(cursor); XWPFRun newRun = newParagraph.createRun(); newRun.addCarriageReturn(); //图片嵌入段落 String id = document.addPictureData(new FileInputStream(picPath), XWPFDocument.PICTURE_TYPE_PNG); XWPFPicture picture = newRun.addPicture(new FileInputStream(picPath), XWPFDocument.PICTURE_TYPE_PNG, "abcdef", Units.toEMU(180), Units.toEMU(100)); //设置图片位置(水平和垂直居) picture.getCTPicture().getSpPr().getLn().setNoFill(true); //去掉边框 CTPicture ctPic = picture.getCTPicture(); CTTransform2D ctTransform2D = CTTransform2D.Factory.newInstance(); ctTransform2D.setRot(0); CTPoint2D ctPoint2D = ctTransform2D.addNewOff(); ctPoint2D.setX(Units.toEMU(400)); //横坐标 ctPoint2D.setY(Units.toEMU(200)); //纵坐标 ctPic.getSpPr().getXfrm().setOff(ctTransform2D); CTAnchor ctAnchor = ctPic.getAnchor(); ctAnchor.setSimplePos2(false); ctAnchor.setX(0); ctAnchor.setY(0); CTMarker ctMarker = ctAnchor.addNewFrom(); ctMarker.setCol(0); ctMarker.setColOff(0); ctMarker.setRow(0); ctMarker.setRowOff(0); ctMarker = ctAnchor.addNewTo(); ctMarker.setCol(0); ctMarker.setColOff(0); ctMarker.setRow(0); ctMarker.setRowOff(0); //保存docx文件 FileOutputStream fos = new FileOutputStream(docxPath); document.write(fos); fos.close(); System.out.println("图片插入成功!"); } catch (Exception e) { e.printStackTrace(); } } } ``` 在这段代码,首先打开docx文件,并根据指定的页数获取目标段落。然后,在目标段落前插入一张图片,并设置该图片的位置为垂直和水平居。最后保存docx文件即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值