gpt4 book ai didi

java - 如何通过 docx4j 将图像插入 Word 模板而不调整其大小

转载 作者:行者123 更新时间:2023-12-01 09:27:52 34 4
gpt4 key购买 nike

我的程序将文本和图片注入(inject)到 Word 模板中。这通过内容控制数据绑定(bind)效果很好(感谢 docx4j 和 Content-Control-Toolkit)。

我的问题是,图像在注入(inject)后会调整大小。我真正想要的是 Jason 在这里描述的行为:http://www.docx4java.org/forums/data-binding-java-f16/picture-content-control-size-t634.html

The current behaviour is to just let it be whatever its natural size is (at a given dpi), unless that is greater than page width, in which case it is scaled down.

根据该帖子,docx4j 的行为已更改,以便图片始终适合内容控件的尺寸和比例。是否有可能恢复“旧”行为?我必须自己做这件事吗?还是 Jason 写的那个开关已经实现了?

作为How to force Docx4j to refresh a replaced image file的答案状态,图片的大小存储在主文档部分。目前,我仅使用 XPath 来设置自定义 XML 部分中的内容。如果有可能在不直接接触 XML 文档的情况下获得我需要的东西,我真的更喜欢这样。在 Word 中打开文档后设置尺寸的宏对我来说不是一个选择。

最佳答案

首先要注意的是,现在我们更喜欢在富文本内容控件中包含图片,而不是在图片内容控件中。

这是因为 Word 限制了您“ float ”图片内容控件的能力。

对此的处理由包含“od:Handler=picture”的 w:tag 触发:datastorage/bind.xslt#L165

基本行为是,如果 w:sdtContent 包含现有的 w:drawing/wp:inline/a:graphic,则重用它,因此使用如此配置的任何格式。

但是对于不包含 a:blip 的“传统”图片内容控件(这是什么时候?),xpathInjectImage 会通过传入的 wp:extent 来调用(请参阅bind.xslt#L240)。

第 1143 行,if (cxl==0 || cyl==0)//让 BPAI 计算出大小

因此,如果您希望图像保持其自然大小,您可以尝试删除bind.xslt#L212处的when子句

顺便说一下,我们还可以绑定(bind)转义的XHTML。但在那里,我们不仅努力使任何图像适合页面宽度,而且如果在表格单元格中,也适合页面宽度。

关于java - 如何通过 docx4j 将图像插入 Word 模板而不调整其大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39696019/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com