0

私はレール上のルビーのエビを使用してPDF名簿を作成しています。テーブルには約100行ありますが、垂直方向の場合は1ページに収まりません。私がやりたいのは、テーブルがページの下部に到達したらラップアラウンドし、前の行の右側に新しい行を開始することです。私はこれまでに次のコードを持っています。これは(名簿pdfに選択されたオプションに応じて)、6ページに収まる1つの長いテーブルを生成します。

user_list.in_groups_of(26,false) do |ul| #26 reaches the bottom of the page 
    ul.each do |u|
    row = Array(u.first_name + " " + u.last_name ) #Individual Row
      columns.to_i.times do |c|
        row << "     " #Optional columns being added
      end
    data << row #Individual row being added to the table data
    end
  table(data,:row_colors => ["E0E0E0", "FFFFFF"])
  data = Array.new
end

バウンディングボックスを試してみましたが、機能しませんでした。追加して、次の26人のグループを取得するたびにインクリメントできるポジショニングコマンドはありますか?

前もって感謝します

4

1 に答える 1

0

この目的のレイアウトを取得するために column_box を使用することになりました。私の終了コードは次のようになります

    column_box([0, cursor], :columns => 5, :width => bounds.width) do
     user_list.each do |u|
      row = Array(u.first_name + " " + u.last_name ) 
        columns.to_i.times do |c|
         row << "     "
        end #END OF COLUMN LOOP
      data << row 
     end #END OF USERLIST LOOP
     table(data,:row_colors => ["E0E0E0", "FFFFFF"],:width => 160 + (columns.to_i-1) * 30)
    end #END OF COLUMN_BOX

column_box の詳細については、こちらを参照してください

于 2013-02-19T15:24:06.000 に答える