53: def add(p)
54: if p.kind_of?(PDF::Writer::Object::Page)
55: @pages << p
56: elsif p.kind_of?(PDF::Writer::FontMetrics)
57: @fonts << p
58: elsif p.kind_of?(PDF::Writer::External)
59: @xObjects << p
60: elsif p.kind_of?(Hash)
61:
62: i = @pages.index(p[:rpage])
63: unless i.nil?
64:
65: case p[:pos]
66: when :before
67: @pages[i, 0] = p[:page]
68: when :after
69: @pages[i + 1, 0] = p[:page]
70: else
71: raise ArgumentError, PDF::Message[:invalid_pos]
72: end
73: end
74: else
75: raise ArgumentError, PDF::Message[:req_FPXOH]
76: end
77: end