我有一个问题'XWPF文档'。程序的一部分获取docx文件,并将其中的所有内容复制到一个输出docx文件中。包括文字、表格、图片和公式。我在这方面有一个很好的结果,但是最近我有一个错误:一张图片没有复制到结果中。这是源代码,这是结果。结果你可以看到“3.1.6.2”部分的哪些图像被成功复制,但是不在“3.1.6.1”。
我是这样做的:
for (XWPFRun run : oldParagraph.getRuns()) {
XWPFRun newRun = newParagraph.createRun()
if (run.getText(0) != null && !run.getText(0).isEmpty()) {
.... copy text ....
}
if (run.getEmbeddedPictures() != null && run.getEmbeddedPictures().size() > 0) {
for (XWPFPicture pic : run.getEmbeddedPictures()) {
byte[] img = pic.getPictureData().getData()
long cx = pic.getCTPicture().getSpPr().getXfrm().getExt().getCx()
long cy = pic.getCTPicture().getSpPr().getXfrm().getExt().getCy()
int pictureType = pic.getPictureData().getPictureType()
XWPFDocument document = newParagraph.getDocument()
String blipId = document.addPictureData(new ByteArrayInputStream(img), pictureType)
createPictureCxCy(document, blipId, document.getNextPicNameNumber(pictureType), cx, cy)
}
}
}
这里的关键是:
for (XWPFPicture pic : run.getEmbeddedPictures())
我从'运行'得到嵌入的图片。在坏的文件中,我有5个段落,每个里面有1个运行,其中4个有文本,1个是空的。通常,正是这个空的“运行”嵌入了图片,根据顺序判断图片应该在这里。现在它空了。但是在XWPF文档中,此图片存在于图片和包图片列表中。
问题:此列表包含“XWPFPictureData”对象,这些对象不包含有关文档和图片比例中位置的信息。但是“快跑”。getEmbeddedPictures()包含“XWPFPicture”-我们需要什么。有办法摆脱这种局面吗?
更新第一条评论。
我检查:
for(XWPFParagraph paragraph: document.getParagraphs()) {
for (XWPFRun run : paragraph.getRuns()) {
println "run text: " + run.getText(0)
println "embedded picture count: " + run.getEmbeddedPictures().size()
}
}
println "*** for document picture count: " + document.allPictures.size()
结果是:
run text: 3.1.6.1 В ряде районов сейсмические нагрузки на СПБУ ...
embedded picture count: 0
run text: Интегральное сейсмическое воздействие на СПБУ ...
embedded picture count: 0
run text: null
embedded picture count: 0
run text: Рис. 3.1.6.1 Обообщенный коэффициент динамичности: ...
embedded picture count: 0
run text: Р01 — низшая частота горизонтальных колебаний
embedded picture count: 0
*** for document picture count: 4
我不知道为什么照片数是4。第二,关于锚。我没有找到它。此外,我没有找到它和其他文件-正确的文件。在一篇文章中,我读到:“对象可以以两种方式放置在文档中:内联或浮动。”只有漂浮的物体才有锚。
文档中包含的不是一个简单的图片,而是一个绘图画布,如将绘图添加到文档中所述。
此绘图画布包含两张相互对齐的图片。
在Word
中打开后,您可以看到这一点,因为您可以在那里选择三个对象。画布和其中的两幅图片:
此绘图画布在文档中表示。xml
在AlternateContent
元素中:
<mc:AlternateContent>
<mc:Choice Requires="wpg">
<w:drawing>
<wp:inline distT="0" distB="0" distL="0" distR="0">
...
</wp:inline>
</w:drawing>
</mc:Choice>
<mc:Fallback>
<w:pict>
...
</w:pict>
</mc:Fallback>
</mc:AlternateContent>
apachepoi
无法解释此XML
。至少到现在为止。
可以编写自己的方法来解释这个XML
。但这将是一项更大的任务。
如果没有太多的文件,你可以做的最好的是打开*. docx
使用Word
,选择并剪切整个画布到剪贴板,然后粘贴回JPEG
图片使用特殊粘贴。然后再次保存*. docx
。
或者从文档中获取两张图片。但是它们有两个,因为AlternateContent
元素提供了一个回退
元素,该元素将画布内容再次作为Base64编码的ZIP
存档,并且再次具有图片引用。这就是为什么文档图片计数的***:4
。
只需解压缩*。docx
存档并查看/word/document。xml
来查看此信息。
你知道有没有办法在段落完整填充文档(XWPFDocument)中插入段落(XWPFParagraph)?。 有一种方法可以将文档中已经存在的段落“更改”为另一个段落(XWPFDocument.setparagration()),但我不知道如何将新段落插入文档中的特定位置,而不是在XWPFDocument的末尾。创建段落()。
我想让(start)中的文本成为文档中另一个具体(end)的超链接。我发现了一个在中制作超链接的代码,但它不起作用(启动链接开始):
有人知道谷歌电子表格嵌入URL参数是否有任何官方文档吗? 也就是说,给定一个来自Google表单的嵌入URL,如下所示:https://docs.google.com/a/aicr.org/spreadsheet/pub?key=0AhExuVBhVYT1dGxxejBmUHAzYUhGb25veTRkdW1YekE 争论是做什么的? 还有哪些参数是默认情况下不包括的? 经过大量的挖掘和寻找,我发
提前感谢。 我只是遵循数字海洋的教程:https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-ubuntu-14-04-lts。我完成了所有说明,但是当我开始测试配置并从我的停车域添加 A 记录时,假设 example.com,我的数字海洋 vps 地址是 192.168.10.2
我在 rest 控制器中有两个 get 映射,一个具有必需的请求参数(项目 ID),一个没有具有相同路径的请求参数。 此外,在项目中设置一个带有UI的基本Swagger。起初,从我之前描述的2 get映射中,有一个是随机丢失的,然后我用swagger注释正确注释它们,但现在不带参数的get不断丢失。 有没有办法强制昂首阔步既得图又得图? 更新:是的,路径变量可以是一个很好的解决方案,但由于遗留的原
问题内容: 在Mongoose文档中的以下地址:http : //mongoosejs.com/docs/embedded- documents.html 有一条声明: DocumentArrays具有一个特殊的方法ID,该ID通过其_id属性(每个嵌入式文档获取一个)来过滤嵌入式文档: 考虑以下代码段: 我的问题是: 文档是否正确?如果是这样,那么我如何找出“ my_id”是什么(在示例中),以