$builder->PathBegin(); $builder->MoveTo(306, 396); $builder->CurveTo(681, 771, 399.75, 864.75, 306, 771); $builder->CurveTo(212.25, 864.75, -69, 771, 306, 396); $builder->ClosePath(); $element = $builder->PathEnd(); // path is now constructed $element->SetPathClip(true); // this path is a clipping path $element->SetPathStroke(true); // this path should be filled and stroked $gstate = $element->GetGState(); $gstate->SetTransform(0.5, 0.0, 0.0, 0.5, -20.0, 0.0); $writer->WriteElement($element); $writer->WriteElement($builder->CreateImage($img, 100.0, 300.0, 400.0, 600.0)); $writer->WriteElement($builder->CreateGroupEnd()); // Restore the graphics state $writer->End(); // save changes to the current page $doc->PagePushBack($page); // Start a new page ------------------------------------ $page = $doc->PageCreate(new Rect(0.0, 0.0, 612.0, 794.0)); $writer->Begin($page); // begin writing to this page $builder->Reset(); // Reset the GState to default // Begin writing a block of text $element = $builder->CreateTextBegin(Font::Create($doc->GetSDFDoc(), Font::e_times_roman), 12.0); $writer->WriteElement($element); $element = $builder->CreateTextRun("Hello World!"); $element->SetTextMatrix(10.0, 0.0, 0.0, 10.0, 0.0, 600.0);