2012-04-11 18 views
7

Tôi muốn tạo một bảng tôm nơi văn bản ô được bao bọc bởi các từ chứ không phải chữ cái. Tôi đã sử dụng shrink_to_fit, nhưng có vẻ như tôm được gói dựa trên các chữ cái. Tôi lý tưởng sẽ muốn nó để bọc trên các từ một mình (single_line không phải là một lựa chọn vì có thể có 2-3 từ mỗi tế bào).Làm thế nào để quấn theo từ trong bảng tôm

Bất kỳ ai cũng biết cách thực hiện điều đó?

Trả lời

3

Có thể bảng của bạn chứa các từ quá dài cho một ô bảng duy nhất? Theo như tôi biết, các ô bảng trong các bảng Prawn sử dụng các hộp giới hạn để tự động quấn văn bản. Ví dụ sau hoạt động tốt đối với tôi:

Prawn::Document.generate 'example.pdf' do 
    data = [['Pig','Oink '*10], 
      ['Cow','Moo '*10], 
      ['Duck','Quack '*10]] 
    table data do |table| 
    table.column_widths = [50,150] 
    end 
end 

Nếu không có gì hoạt động, bạn có thể thử xây dựng bảng của riêng bạn với nhiều text_box cuộc gọi thay vì sử dụng được xây dựng trong Prawn table method, đây là tất nhiên một chút rườm rà. text_box vẽ văn bản được yêu cầu vào một hộp. Thông số :overflow kiểm soát hành vi khi lượng văn bản vượt quá dung lượng còn trống, các tùy chọn có sẵn là :truncate, :shrink_to_fit hoặc :expand.

text_box(txt, :at => [x,y], :width => width, :height => height, :size => size, 
       :overflow => :shrink_to_fit,..) 
+0

Xin chào, cảm ơn bạn đã trả lời :) Nếu bạn thay đổi thành 'data = [[' Pig ',' Hello There '* 10]', trong dòng đầu tiên của dữ liệu, bạn sẽ thấy bạn sẽ nhận được cùng một vấn đề mà tôi đang nhận được. Từ 'có' được bọc không chính xác. Tôi cũng sẽ xem xét kỹ hơn về text_box ngay bây giờ, cảm ơn bạn đã trả lời, +1. – Spyros

+1

Như tôi cũng nêu trong câu hỏi, tôi đã sử dụng shrink_to_fit, nhưng điều này không cho mỗi nhân vật và không phải mỗi gói từ, đó là khá nhiều những gì toàn bộ vấn đề là về. – Spyros