2014-04-24 30 views
1

我有一個二維數組:Ruby +蝦PDF:如何在表內的字符串中添加空格前綴?

line_items = [] 
    line_item.product.book_versions.each do |book_version| 
     data = [] 
     data << "" 
     data << "  #{book_version.book.title} - #{book_version.isbn}" #<-- notice the extra spaces in the beginning of the string 
     data << "#{line_item.quantity}" 
     line_items << data 
    end 

我這個數據加載到我的表pdf.table line_items ... do ... end

然而,在我的第2列多餘的空格顯示不出來。我將如何逃避這些空間,以免它們被剝離?

回答

0

你最好的選擇可能是使用該列的自定義填充。事情是這樣的:

pdf.table line_items do 
    column(1).padding = [5, 5, 5, 30] # Default padding is 5; just increase the left padding 
    ... 
end 
0

我不認爲這是一個逃避問題,也許你應該使用更正式的間距方式,嘗試使用\t字符而不是空格。它旨在用於此用途。

line_items = [] 
line_item.product.book_versions.each do |book_version| 
    data = [] 
    data << "" 
    data << "\t\t#{book_version.book.title} - #{book_version.isbn}" 
    data << "#{line_item.quantity}" 
    line_items << data 
end 
+2

沒有工作...它仍然忽略它 – Edmund

1

取決於你想做的事,你也可以使用常量Prawn::Text::NBSP。如果它是純粹的空白,那麼列填充是你想要的。但是,我有一種情況,我必須模擬一個「複選標記空間」,使得X字符被加下劃線。我的表看起來像:

table([["<u>X</u>", "Do you agree to these terms and conditions?"]]) do 
    columns(0).style(:inline_format => true) 
end 

然而,由此產生一個簡單的X帶下劃線。我想強調部分更寬,即空格(空白)字符仍然收到下劃線。所以我改變了表數據是

table([["<u>#{Prawn::Text::NBSP*3} X #{Prawn::Text::NBSP*3}</u>", ...]]) do 

然後在PDF,它看起來像我想:___X___(與X顯然強調過)。

相關問題