2013-08-29 59 views
1

請耐心等待,這是我第一次與Ruby搞混了。基本上這是我的問題。我有一個巨大的網站,只是需要修改一件事情,但我遇到問題。Ruby PDF標籤打印機新線不能正常工作

我想獲得翻領打印機的PDF輸出以包裝到下一行。這是我的代碼。

def print_labels 
    quantity = params[:quantity].to_i 
    hashed_label = ActiveSupport::JSON.decode(params[:label]) 
    p = InventoryItem.labels_pdf do |pdf| 
    (1..quantity).each do |i| 
    pdf.text("#{hashed_label['inventory_item_code']} #{hashed_label['label_description']} #{hashed_label['inventory_item_size']}", :style => :bold) 
    pdf.text("#{hashed_label['ingredients']}", :size => 9, :font => :serif) 
    #pdf.text(params[:label]); 
    pdf.start_new_page if i < quantity 
    end 
end 
send_data(p, :type => "application/x-pdf", :filename => "labels.pdf") 
end 

這裏是PDF中的輸出。

inventory_item_code label_description inventory_item_size 

我想讓它們在每個項目之間斷開。

+0

是所期望的輸出或什麼它目前樣子?你說你「試圖讓他們休息」,這不是很清楚你想要什麼。 –

回答

1

這是使用Prawn?你應該能夠把換行符所有你想要的:

pdf.text("Here is some\ntext with\nnewlines") 

所以,ingredients後換行也只是:

pdf.text("#{hashed_label['ingredients']}\n", :size => 9, :font => :serif) 
+0

此服務器正在使用對象0.11.1.pre。我嘗試使用「\ n」,但它似乎沒有工作。它自己的系統是在幾年前建成的,從那時起它一直沒有被觸及。是否會有某種緩存內置到ruby中,或者我是否需要進行某種重新編譯才能使其工作? –

+0

除非你的服務器沒有重載類,可以通過重新啓動它來解決,否則不應該有這樣的「緩存」。嘗試添加靜態文本到標籤,看看它是否顯示,應該告訴你,如果你的更改是在進入。不知道如何得到一個換行符! –

+0

我確實設法讓它工作。但現在由於聯邦法規,我需要增加保證金。我會如何去做這件事? –