# File lib/fusioncharts/exporter/generator.rb, line 41
    def get_pdf_objects(compress=true)
      @compress = compress
       pdf_bytes =""
       #Store all PDF objects in this temporary string to be written to ByteArray
       str_tmp_obj=""
       xref_list=[]
       xref_index =0
       #start xref array
                   xref_list[xref_index]="xref\n0 "
       xref_index+=xref_index
       
                   xref_list[xref_index]="0000000000 65535 f \n" #Address Refenrece to obj 0
                   xref_index+=xref_index
       
      #Build PDF objects sequentially
      #version and header
      str_tmp_obj="%PDF-1.3\n%{FC}\n"
      pdf_bytes+=str_tmp_obj
      
      #OBJECT 1 : info (optional)
      str_tmp_obj="1 0 obj<<\n/Author (FusionCharts)\n/Title (FusionCharts)\n/Creator (FusionCharts)\n>>\nendobj\n"
      xref_list[xref_index]=calculate_xpos(pdf_bytes.length) #refenrece to obj 1
      xref_index+=xref_index
      pdf_bytes+=str_tmp_obj
      
      #OBJECT 2 : Starts with Pages Catalogue
      str_tmp_obj="2 0 obj\n<< /Type /Catalog /Pages 3 0 R >>\nendobj\n"
      xref_list[xref_index]=calculate_xpos(pdf_bytes.length) #refenrece to obj 2
      xref_index+=xref_index
      pdf_bytes+=str_tmp_obj

      #OBJECT 3 : Page Tree (reference to pages of the catalogue)
      str_tmp_obj="3 0 obj\n<<  /Type /Pages /Kids ["
      0.upto(@pageIndex-1)  do|i|
        str_tmp_obj+=(((i+1)*3)+1).to_s+" 0 R\n"
      end
      str_tmp_obj+="] /Count "+@pageIndex.to_s+" >>\nendobj\n"
      
      xref_list[xref_index]=calculate_xpos(pdf_bytes.length) #refenrece to obj 3
      xref_index+=xref_index
      pdf_bytes+=str_tmp_obj
      
      0.upto(@pageIndex-1) do|itr|
        width=@pages_data[itr][:width].to_s
        height=@pages_data[itr][:height].to_s
        
        #OBJECT 4..7..10..n : Page config
        str_tmp_obj=(((itr+2)*3)-2).to_s+" 0 obj\n<<\n/Type /Page /Parent 3 0 R \n/MediaBox [ 0 0 "+width+" "+height+" ]\n/Resources <<\n/ProcSet [ /PDF ]\n/XObject <</R"+(itr+1).to_s+" "+((itr+2)*3).to_s+" 0 R>>\n>>\n/Contents [ "+(((itr+2)*3)-1).to_s+" 0 R ]\n>>\nendobj\n"
        xref_list[xref_index]=calculate_xpos(pdf_bytes.length) #refenrece to obj 4,7,10,13,16...
        xref_index+=xref_index
        pdf_bytes+=str_tmp_obj


        #OBJECT 5...8...11...n : Page resource object (xobject resource that transforms the image)
        xref_list[xref_index]=calculate_xpos(pdf_bytes.length)  #refenrece to obj 5,8,11,14,17...
        xref_index+=xref_index
        pdf_bytes+=get_xobj_resource(itr);

        #OBJECT 6...9...12...n : Binary xobject of the page (image)
        img_BA=add_image_to_pdf(itr,@compress)
        xref_list[xref_index]=calculate_xpos(pdf_bytes.length)  #refenrece to obj 6,9,12,15,18...
        xref_index+=xref_index
        pdf_bytes+=img_BA
    end
  
    #xrefs      compilation
                xref_list[0]+=(xref_list.length-1).to_s+"\n"
                
                #get trailer
                trailer=get_trailer(pdf_bytes.length ,xref_list.length-1)
                
                #write xref and trailer to PDF
                pdf_bytes+=xref_list.to_s
                pdf_bytes+=trailer
                
                #write EOF
                pdf_bytes+="%%EOF\n"
                
                return pdf_bytes
  end