2016-04-29 67 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。