<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -118,9 +118,7 @@ module Prawn
        @current_page = ref(:Type      =&gt; :Page, 
                            :Parent    =&gt; @pages, 
                            :MediaBox  =&gt; page_dimensions, 
-                           :Contents  =&gt; @page_content,
-                           :ProcSet   =&gt; font_proc,
-                           :Resources =&gt; { :Font =&gt; {} } ) 
+                           :Contents  =&gt; @page_content)
        set_current_font    
        update_colors
        @pages.data[:Kids] &lt;&lt; @current_page
@@ -250,6 +248,26 @@ module Prawn
     def add_content(str)
      @page_content &lt;&lt; str &lt;&lt; &quot;\n&quot;
     end  
+
+    # Add a new type to the current pages ProcSet
+    def register_proc(type)
+      @current_page.data[:ProcSet] ||= ref([])
+      unless @current_page.data[:ProcSet].data.include?(type)
+        @current_page.data[:ProcSet].data &lt;&lt; type
+      end
+    end
+
+    def page_resources
+      @current_page.data[:Resources] ||= {}
+    end
+
+    def page_fonts
+      page_resources[:Font] ||= {}
+    end
+
+    def page_xobjects
+      page_resources[:XObject] ||= {}
+    end
     
     def finish_page_content     
       @page_stop_proc[self] if @page_stop_proc</diff>
      <filename>lib/prawn/document.rb</filename>
    </modified>
    <modified>
      <diff>@@ -96,6 +96,8 @@ module Prawn
       # more portable.
       #
       def font(name)
+        register_proc :PDF
+        register_proc :Text
         @font_metrics = Prawn::Font::Metrics[name]
         case(name)
         when /\.ttf$/
@@ -297,7 +299,7 @@ module Prawn
         return if @font.nil?
         font_registry[fonts[@font]] ||= :&quot;F#{font_registry.size + 1}&quot;
 
-        @current_page.data[:Resources][:Font].merge!(
+        page_fonts.merge!(
           font_registry[fonts[@font]] =&gt; fonts[@font]
         )
       end
@@ -310,10 +312,6 @@ module Prawn
         @font_registry ||= {}
       end
 
-      def font_proc #:nodoc:
-        @font_proc ||= ref [:PDF, :Text]
-      end
-
       def fonts #:nodoc:
         @fonts ||= {}
       end</diff>
      <filename>lib/prawn/document/text.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>5af67a2ddeff41a17a695e5718ec82054e06e06c</id>
    </parent>
  </parents>
  <author>
    <name>James Healy</name>
    <email>jimmy@deefa.com</email>
  </author>
  <url>http://github.com/sandal/prawn/commit/8ea4927409c573f37f29a05d5e21100b4ad37a31</url>
  <id>8ea4927409c573f37f29a05d5e21100b4ad37a31</id>
  <committed-date>2008-07-24T09:11:21-07:00</committed-date>
  <authored-date>2008-07-17T05:21:44-07:00</authored-date>
  <message>build page resources on the fly</message>
  <tree>d1ee62500354a86e514ea4aae2bcb9871138bf98</tree>
  <committer>
    <name>Gregory Brown</name>
    <email>gregory.t.brown@gmail.com</email>
  </committer>
</commit>
