# Ruby PRAWN PDF generatiog values from controller

**URL:** <https://www.ruby-forum.com/t/ruby-prawn-pdf-generatiog-values-from-controller/193212>\
**Category:** Rails\
**Created:** [August 13, 2010, 9:27am UTC](https://www.ruby-forum.com/t/ruby-prawn-pdf-generatiog-values-from-controller/193212 "2010-08-13T09:27:46Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![rorjeff](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b9e5f3/32.png) [@rorjeff](https://www.ruby-forum.com/u/rorjeff)\
**Post date:** [August 13, 2010, 9:27am UTC](https://www.ruby-forum.com/t/ruby-prawn-pdf-generatiog-values-from-controller/193212/1 "2010-08-13T09:27:46Z")

</div>

I have a file named report.pdf.prawn,  
which is the view part of my PDF file where we can edit the contents of  
the PDF file like \>\>\>  
pdf=Prawn::Document.new(:page\_layout =\>:landscape,:page\_size =\> ‘A4’)  
pdf.text"Hello"

head=@headers  
headers=[""],[""]  
pdf.table headers,  
:width =\> 768,  
:size =\> 11,  
:border\_style =\> :underline\_header,  
:headers =\> [head.titleize],  
:header\_color =\> ‘b7e3fe’,  
:padding=\>5

\<\<\< etc ect…  
The above just prints like

Hello  
Header1header2header3

I have two values from my controller \>\>\> def report \<\<\< as  
@header and @data

@header gives values like\>\> Header1Header2Header3  
@data gives values like\>\> data11data12data13data21data22data23

How do i print the values like the format given below on all PDF pages  
being generated?

Header1 Header2 Header3

data11 data12 data13  
data21 data22 data23  
data31 data32 data33  
data41 data42 data33

Please help.

---

<div class="post-metadata">

**Author:** ![rorjeff](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b9e5f3/32.png) [@rorjeff](https://www.ruby-forum.com/u/rorjeff)\
**Post date:** [August 13, 2010, 10:36am UTC](https://www.ruby-forum.com/t/ruby-prawn-pdf-generatiog-values-from-controller/193212/2 "2010-08-13T10:36:20Z")

</div>

Hi,

Use the :column\_widths=\>{0=\>100,1=\>100, 2=\>100, etc…} property.

Jan

---

<div class="post-metadata">

**Author:** ![rorjeff](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b9e5f3/32.png) [@rorjeff](https://www.ruby-forum.com/u/rorjeff)\
**Post date:** [August 13, 2010, 10:50am UTC](https://www.ruby-forum.com/t/ruby-prawn-pdf-generatiog-values-from-controller/193212/3 "2010-08-13T10:50:55Z")

</div>

I used the " :column\_widths " property before, since the Header field  
comes in as hash values, te :column\_widths of 0=\>100 will be assigned to  
the first header only, the remaining cell widths will not be taken.

What i was asking, is the format to be printed on PDF.  
thanks for replying.

javinto wrote:

> Hi,
> 
> Use the :column\_widths=\>{0=\>100,1=\>100, 2=\>100, etc…} property.
> 
> Jan

---

<div class="post-metadata">

**Author:** ![rorjeff](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b9e5f3/32.png) [@rorjeff](https://www.ruby-forum.com/u/rorjeff)\
**Post date:** [August 14, 2010, 12:26pm UTC](https://www.ruby-forum.com/t/ruby-prawn-pdf-generatiog-values-from-controller/193212/4 "2010-08-14T12:26:21Z")

</div>

headerbar=[]  
@data.each do |column|  
data=[]

```
 if @headers.include?('dataXX')
 column.number
 data << column.number
 end

             if @headers.include?('dataXX')
 column.number
 data << column.number
 end

```

headerbar \<\< data

end  
pdf.table headerbar,  
:width =\> 768,  
:size =\> 11,  
:border\_style =\> :underline\_header,  
:headers =\> @header,  
:header\_color =\> ‘b7e3fe’,  
:column\_widths=\>{0=\>55,1=\>100,2=\>70,3=\>77,4=\>88,5=\>90,6=\>75,7=\>75,8=\>75,9=\>65,10=\>55,11=\>55},  
:padding=\>5

Not fully rectified, but works.
