This example shows how to take a page, convert it into a
separate drawing object and then draw it, scaled, onto the page it
came from.
using (Doc doc = new Doc()) {
doc.Read(Server.MapPath("../mypics/HyperX.pdf"));
Page page1 = doc.ObjectSoup[doc.Page] as Page;
FormXObject form = page1.MakeFormXObject();
doc.Transform.Magnify(0.5, 0.5, 0, 0);
doc.Page = doc.AddPage();
Page page2 = doc.ObjectSoup[doc.Page] as Page;
string name = page2.AddResource(form, "XObject", "Iabc");
// Here we create our own layer for the purposes of the demonstration.
// However a simpler approach would be to use Doc.AddXObject.
StreamObject layer = new StreamObject(doc.ObjectSoup);
layer.SetText(String.Format("q {0} cm /{1} Do Q ", doc.Transform.ToString(), name));
page2.AddLayer(layer);
doc.Save(Server.MapPath("exampleformxobject.pdf"));
}
Using doc As New Doc()
doc.Read(Server.MapPath("../mypics/HyperX.pdf"))
Dim page1 As Page = TryCast(doc.ObjectSoup(doc.Page), Page)
Dim form As FormXObject = page1.MakeFormXObject()
doc.Transform.Magnify(0.5, 0.5, 0, 0)
doc.Page = doc.AddPage()
Dim page2 As Page = TryCast(doc.ObjectSoup(doc.Page), Page)
Dim name As String = page2.AddResource(form, "XObject", "Iabc")
' Here we create our own layer for the purposes of the demonstration.
' However a simpler approach would be to use Doc.AddXObject.
Dim layer As New StreamObject(doc.ObjectSoup)
layer.SetText([String].Format("q {0} cm /{1} Do Q ", doc.Transform.ToString(), name))
page2.AddLayer(layer)
doc.Save(Server.MapPath("exampleformxobject.pdf"))
End Using