为有中文需求的客户提供多渠道中文技术支持.

Mon Jan 08, 2024 3:05 am

我想新增在word是只有单纯的图片内容控制项,因为需求是需要生成一个word样版供其他人在word自己选择需要的图片就好

想要的效果如下

Image

t889256775
 
Posts: 4
Joined: Mon Jan 08, 2024 1:28 am

Mon Jan 08, 2024 3:58 am

您好,

感谢您的咨询。
请参考下面的代码来实现向Word文档中添加图片内容控件的需求。
Code: Select all
// 创建一个Document对象
Document document = new Document();
// 加载文档数据
document.loadFromFile("input.docx");
// 获取文档的第一个节对象
Section section = document.getSections().get(0);
// 获取节中的第一个表格对象
Table table = section.getTables().get(0);
// 获取表格中位于第3行第4列的单元格对象
TableCell cell = table.get(2, 3);
// 获取单元格中的第一个段落对象
Paragraph paragraph = cell.getParagraphs().get(0);
// 创建一个StructureDocumentTagInline对象
StructureDocumentTagInline picControl = new StructureDocumentTagInline(document);
// 设置SDT类型为Picture,并设置外观为Tags
picControl.getSDTProperties().setSDTType(SdtType.Picture);
picControl.getSDTProperties().setAppearance(SdtAppearance.Bounding_Box);
// 创建一个DocPicture对象
//DocPicture picture = new DocPicture(document);
// 加载图像
//picture.loadImage("input.jpg");
// 设置图像的宽度和高度
//picture.setWidth(50);
//picture.setHeight(50);
// 将图像添加到SDT内容中
//picControl.getSDTContent().getChildObjects().add(picture);
// 将图片内容控件添加到段落中
paragraph.getChildObjects().add(picControl);
// 保存文件
document.saveToFile("output.docx");

如果您还有其他问题,欢迎您随时咨询。

Sincerely,
Annika
E-iceblue support team
User avatar

Annika.Zhou
 
Posts: 1657
Joined: Wed Apr 07, 2021 2:50 am

Mon Jan 08, 2024 5:34 am

你好,我想要的是只需要新增图片内容控制项而不需要真的图片,此段内容已经使用过,甚至移除此行
picture.loadImage("input.jpg");
也无法达成我的想要的图片上的效果

如果还有其他方法在麻烦您回复了,谢谢

t889256775
 
Posts: 4
Joined: Mon Jan 08, 2024 1:28 am

Mon Jan 08, 2024 8:18 am

您好,

感谢您的反馈。
请参考下面修改后的代码以实现添加图片内容控件后可选择图片的需求。在此我附上了我的测试结果文件供您参考。
Code: Select all
// 创建一个新的文档对象
Document document = new Document();
// 加载文档数据
document.loadFromFile("input.docx");
// 获取文档的第一个节对象
Section section = document.getSections().get(0);
// 创建一个DocPicture对象
DocPicture picture = new DocPicture(document);
// 加载名为"image.png"的图像
picture.loadImage("image.png");
// 创建一个StructureDocumentTagInline对象作为图片容器
StructureDocumentTagInline picControl = new StructureDocumentTagInline(document);
// 设置SDT标签为"pic1"
picControl.getSDTProperties().setTag("pic1");
// 设置SDT类型为Picture
picControl.getSDTProperties().setSDTType(SdtType.Picture);
// 设置SDT控制属性为SdtPicture
picControl.getSDTProperties().setControlProperties(new SdtPicture());
// 设置外观为Bounding_Box
picControl.getSDTProperties().setAppearance(SdtAppearance.Bounding_Box);
// 设置显示占位符
picControl.getSDTProperties().isShowingPlaceHolder(true);
// 将图像添加到SDT内容中
picControl.getSDTContent().getChildObjects().add(picture);
// 获取表格中的第一个表格对象
Table table = section.getTables().get(0);
// 获取表格的第一行第一列的单元格对象
Paragraph paragraph1 = table.getRows().get(0).getCells().get(0).addParagraph();
// 将图片容器添加到段落中
paragraph1.getChildObjects().add(picControl);
// 保存文档
document.saveToFile("output.docx");

另外,像WPS添加图片内容控件默认是填充了图片的。因此使用我们的产品添加图片内容控件也要填充图片。

Sincerely,
Annika
E-iceblue support team
User avatar

Annika.Zhou
 
Posts: 1657
Joined: Wed Apr 07, 2021 2:50 am

Mon Jan 08, 2024 8:48 am

謝謝,幫了大忙

t889256775
 
Posts: 4
Joined: Mon Jan 08, 2024 1:28 am

Mon Jan 08, 2024 9:57 am

您好

不客氣。
如果您還有其他問題,歡迎您隨時諮詢。

Sincerely,
Annika
E-iceblue support team
User avatar

Annika.Zhou
 
Posts: 1657
Joined: Wed Apr 07, 2021 2:50 am

Return to 中文技术支持