当前位置: 首页 > 知识库问答 >
问题:

如何通过docx4j将图像注入Word模板而不调整大小

裴兴学
2023-03-14

我的程序将文本和图片注入 Word 模板。这可以通过内容控制数据绑定(感谢docx4j和内容控制工具包)非常有效。

我的问题是,注射后图像会被调整大小。我实际上想要的是杰森在这里描述的行为:http://www.docx4java.org/forums/data-binding-java-f16/picture-content-control-size-t634.html

当前的行为是让它成为它的自然大小(在给定的dpi下),除非它大于页面宽度,在这种情况下,它会缩小。

根据该帖子,docx4j的行为已更改,因此图片始终适合内容控件相对于比例的大小。有没有可能让“老”的行为回归?我是否必须自己做这件事,或者杰森写的开关已经实现了?

正如如何强制Docx4j刷新替换的图像文件的答案所述,图片的大小存储在主文档部分。目前,我只使用XPath在自定义XML部分设置内容。如果有任何可能在不直接接触文档XML的情况下获得我需要的东西,我真的更喜欢这样。在Word中打开文档后设置大小的宏对我来说是没有选择的。

共有1个答案

颜霖
2023-03-14

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

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

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

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

但是对于不包含 a:blip 的“旧版”图片内容控件(这什么时候会是?),xpath输入图像是使用传入的 wp:extent 调用的(请参见 bind.xslt#L240)。

在第1143行,如果(cxl==0||cyl==0)//让BPAI计算大小

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

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

 类似资料:
  • 问题内容: 在Java中,如何将图像的大小调整为任何类型或大小的默认大小? 问题答案: 网上有很多关于如何执行此操作的文章,类似的内容应该可以帮助您: 最终的Java图像处理(包括 许多 其他图像功能)

  • 问题内容: 我正在使用python 3和最新版本的openCV。我正在尝试使用提供的调整大小功能来调整图像大小,但是调整图像大小后会非常失真。代码: 原始图像为480 x 640(RGB,因此我将0传递给它来达到灰度) 有什么办法可以调整大小并避免使用OpenCV或任何其他库造成的失真?我打算制作一个手写数字识别器,并且已经使用MNIST数据训练了我的神经网络,因此我需要图像为28x28。 问题答

  • 所以我有一个非常奇怪的情况。我有两个图标,都是288x288px。但第一个图标在应用程序中显示得比另一个更大。 她是我的xml: css部分:. background{background-图像: url("res://login_bg"); background-重复:无重复;background-大小:封面;background-位置:中心;} 和两个图标: 有人有同样的问题吗?

  • 下面是一个简单的例子: first.docx=简单文本 second.docx=简单文本+图像 问题是我什么时候存钱。出现以下错误: 谢谢

  • 问题内容: 我在这里使用Go调整大小包:https://github.com/nfnt/resize 我正在从S3中提取图像,如下所示: // this gives me data []byte 之后,我需要调整图像大小: // problem is that the original_image has to be of type image.Image 将图像上传到我的S3存储桶 // pro

  • 问题内容: 调整通过Django表单上传的图像文件的大小最直接的方法是ImageField什么? 问题答案: 我为找不到完整的工作示例而烦恼,只能在这里和那里找到一些。我设法自己解决了问题。这是完整的示例,我将其放在表单的clean()方法中(你也可以以完全相同的方式覆盖模型save()方法-更改ImageField的file属性)。