How do I create a Form XObject?

Q: How do I create a Form XObject?
------

A: Creating a Form XObject is almost the same as creating a new page
(as illustrated in ElementBuilder sample).

For example (using C#):

ElementWriter writer = new ElementWriter();
ElementBuilder eb = new ElementBuilder();

writer.Begin(doc);
eb.PathBegin();
eb.MoveTo(0, 0);
eb.CurveTo(500, 500, 125, 625, 0, 500);
eb.CurveTo(-125, 625, -500, 500, 0, 0);
Element heart = eb.PathEnd();
heart.SetPathFill(true);
heart.GetGState().SetFillColorSpace(ColorSpace.CreateDeviceRGB());
heart.GetGState().SetFillColor(new ColorPt(1, 0, 0));
writer.WriteElement(heart); Obj form_xobj_dict = writer.End();

form_xobj_dict.Put("Subtype", Obj.CreateName("Form")); // Set bounding
box/clipping rectangle.
form_xobj_dict.Put("BBox", Rect.CreateSDFRect(0, 0, 400, 600));

For another example, please see CreateTilingPattern() in PatternTest
sample:
  http://www.pdftron.com/net/samplecode.html#Pattern

You can also create a form XObject from PDF page as illustrated in
ImpositionTest (http://www.pdftron.com/net/samplecode.html#Imposition)
sample project.