2016-04-29 70 views
2

我试图让文本显示与使用Caracal红宝石gem的图像一致。在Ruby on Rails中使用Caracal添加内联图像

它目前这样的:

enter image description here

但我需要它,而不是这样做,而不是:(由去格式的图片在Word中完成的 - >自动换行 - >浮于文字上方)

enter image description here

第一个例子,用生成以下:

docx.img image.path do 
    width 250 
    height 200 
    align :left 
end 
docx.p "This is a cool picture", align: 'right' 

我在Word中编辑文档以创建第二个示例。

+0

您能告诉我们您现有的代码吗? –

+0

已添加代码! :) –

回答

1

图像的你的两个版本之间的差别在于,第一个是一个嵌入对象和第二个(即,它就像在段落的任何其他文本对齐)是一个浮动对象锚定到目前的段落。

我对Caracal图书馆不太熟悉,但是从第一眼看来,这个图书馆似乎只支持内联图像。

为了仍然得到你想要的,你应该能够做到以下几点内容:

  • 创建文档,你做它已经现在(这将会做正确的添加图像文件的所有复杂的工作放置在包中,并在.rels包部分和内容类型等中添加关系)
  • 然后使用标准Ruby压缩库打开生成的docx包文件
  • 将XML适配器的document.xml部分docx包中包含图像的浮动表示。

最后一步可能是最复杂的,因为您需要对OpenXML有一些基本的了解。我建议你看看由Word生成的第二个文档的OpenXML,并尝试相应地调整你的OpenXML。