/** * LayerRadioGroup demonstrates radio group and zoom. */ void LayerRadioGroup() { wxPdfDocument pdf; pdf.Open(); pdf.AddPage(); // Layers appear in the order in that they were added to the document wxPdfLayer* lrg = pdf.AddLayerTitle(wxT("Layer radio group")); wxPdfLayer* l1 = pdf.AddLayer(wxT("Layer 1")); wxPdfLayer* l2 = pdf.AddLayer(wxT("Layer 2")); wxPdfLayer* l3 = pdf.AddLayer(wxT("Layer 3")); wxPdfLayer* l4 = pdf.AddLayer(wxT("Layer 4")); lrg->AddChild(l1); lrg->AddChild(l2); lrg->AddChild(l3); l4->SetZoom(2, -1); l4->SetOnPanel(false); l4->SetPrint(wxT("Print"), true); l2->SetOn(false); l3->SetOn(false); wxPdfLayerGroup radio; radio.Add(l1); radio.Add(l2); radio.Add(l3); pdf.AddLayerRadioGroup(radio); pdf.SetTextColour(wxPdfColour(wxString(wxT("red")))); pdf.SetFont(wxT("Helvetica"),wxT("B"),20); pdf.Cell(0,6,wxT("Layer radio group and zoom")); pdf.Ln(25); pdf.SetTextColour(wxPdfColour(wxString(wxT("black")))); pdf.SetFont(wxT("Helvetica"),wxT(""),12); pdf.EnterLayer(l1); pdf.Cell(0,6,wxT("Text in layer 1")); pdf.Ln(15); pdf.LeaveLayer(); pdf.EnterLayer(l2); pdf.Cell(0,6,wxT("Text in layer 2")); pdf.Ln(15); pdf.LeaveLayer(); pdf.EnterLayer(l3); pdf.Cell(0,6,wxT("Text in layer 3")); pdf.Ln(15); pdf.LeaveLayer(); pdf.EnterLayer(l4); pdf.Cell(30,6,wxT("Text in layer 4")); pdf.LeaveLayer(); pdf.SetTextColour(wxPdfColour(wxString(wxT("blue")))); pdf.SetFont(wxT("Courier"),wxT(""),12); pdf.Cell(0, 6, wxT("<< Zoom here (200% or more)!")); pdf.Ln(15); pdf.SaveAsFile(wxT("layersradiogroup.pdf")); }
void transparency() { wxPdfDocument pdf; pdf.AddPage(); pdf.SetFont(wxT("Helvetica"),wxT(""),16); int j; wxString txt; for (j = 0; j < 180; j++) txt += wxT("Hello World! "); pdf.MultiCell(0,8, txt); // A) provide image + separate 8-bit mask (best quality!) // first embed mask image (w, h, x and y will be ignored, the image will be scaled to the target image's size) int maskImg = pdf.ImageMask(wxT("mask.png")); // embed image, masked with previously embedded mask pdf.Image(wxT("image.png"), 55, 10, 100, 0, wxT("png"), wxPdfLink(-1), maskImg); // B) use alpha channel from PNG //pdf->ImagePngWithAlpha('image_with_alpha.png',55,100,100); // C) same as B), but using Image() method that recognizes the alpha channel pdf.Image(wxT("image_with_alpha.png"), 55, 190, 100); pdf.AddPage(); pdf.SetLineWidth(1.5); // draw opaque red square pdf.SetAlpha(); pdf.SetFillColour(wxPdfColour(255,0,0)); pdf.Rect(10, 10, 40, 40, wxPDF_STYLE_FILLDRAW); // set alpha to semi-transparency pdf.SetAlpha(1, 0.5); // draw green square pdf.SetFillColour(wxPdfColour(0,255,0)); pdf.Rect(20, 20, 40, 40, wxPDF_STYLE_FILLDRAW); // draw jpeg image pdf.Image(wxT("lena.jpg"), 30, 30, 40); // restore full opacity pdf.SetAlpha(); // print name pdf.SetFont(wxT("Helvetica"), wxT(""), 12); pdf.Text(46,68,wxT("Lena")); pdf.SaveAsFile(wxT("transparency.pdf")); }
/** * AutomaticLayers demonstrates automatic layer grouping and nesting */ void AutomaticLayers() { wxPdfDocument pdf; pdf.Open(); pdf.AddPage(); // Layers appear in the order in that they were added to the document wxPdfLayer* l12 = pdf.AddLayer(wxT("Layer nesting")); wxPdfLayer* l1 = pdf.AddLayer(wxT("Layer 1")); wxPdfLayer* l2 = pdf.AddLayer(wxT("Layer 2")); wxPdfLayer* l34 = pdf.AddLayerTitle(wxT("Layer grouping")); wxPdfLayer* l3 = pdf.AddLayer(wxT("Layer 3")); wxPdfLayer* l4 = pdf.AddLayer(wxT("Layer 4")); l12->AddChild(l1); l12->AddChild(l2); l34->AddChild(l3); l34->AddChild(l4); pdf.SetTextColour(wxPdfColour(wxString(wxT("red")))); pdf.SetFont(wxT("Helvetica"),wxT("B"),20); pdf.Cell(0,6,wxT("Automatic grouping and nesting of layers")); pdf.Ln(25); pdf.SetTextColour(wxPdfColour(wxString(wxT("black")))); pdf.SetFont(wxT("Helvetica"),wxT(""),12); pdf.EnterLayer(l1); pdf.Cell(0,6,wxT("Text in layer 1")); pdf.Ln(15); pdf.LeaveLayer(); pdf.EnterLayer(l2); pdf.Cell(0,6,wxT("Text in layer 2")); pdf.Ln(15); pdf.LeaveLayer(); pdf.EnterLayer(l3); pdf.Cell(0,6,wxT("Text in layer 3")); pdf.Ln(15); pdf.LeaveLayer(); pdf.EnterLayer(l4); pdf.Cell(0,6,wxT("Text in layer 4")); pdf.Ln(15); pdf.LeaveLayer(); pdf.SaveAsFile(wxT("layersautomatic.pdf")); }
/** * GroupedLayers demonstrates how to group optional content. */ void GroupedLayers() { wxPdfDocument pdf; pdf.Open(); pdf.AddPage(); // Layers appear in the order in that they were added to the document wxPdfLayer* l1 = pdf.AddLayer(wxT("Layer 1")); wxPdfLayer* l2 = pdf.AddLayer(wxT("Layer 2")); wxPdfLayer* l3 = pdf.AddLayer(wxT("Layer 3")); wxPdfLayer* l0 = pdf.AddLayerTitle(wxT("A group of two")); l0->AddChild(l2); l0->AddChild(l3); wxPdfLayerMembership* m1 = pdf.AddLayerMembership(); m1->AddMember(l2); m1->AddMember(l3); pdf.SetTextColour(wxPdfColour(wxString(wxT("red")))); pdf.SetFont(wxT("Helvetica"),wxT("B"),20); pdf.Cell(0,6,wxT("Grouping layers")); pdf.Ln(25); pdf.SetTextColour(wxPdfColour(wxString(wxT("black")))); pdf.SetFont(wxT("Helvetica"),wxT(""),12); pdf.EnterLayer(l1); pdf.Cell(0,6,wxT("Text in layer 1")); pdf.Ln(15); pdf.LeaveLayer(); pdf.EnterLayer(m1); pdf.Cell(0,6,wxT("Text in layer 2 or layer 3")); pdf.Ln(15); pdf.LeaveLayer(); pdf.EnterLayer(l3); pdf.Cell(0,6,wxT("Text in layer 3")); pdf.Ln(15); pdf.LeaveLayer(); pdf.SaveAsFile(wxT("layersgrouped.pdf")); }
/** * NestedLayers demonstrates the use of nested layers. */ void NestedLayers() { wxPdfDocument pdf; pdf.Open(); pdf.AddPage(); // Layers appear in the order in that they were added to the document wxPdfLayer* l1 = pdf.AddLayer(wxT("Layer 1")); wxPdfLayer* l23 = pdf.AddLayer(wxT("Top Layer 2 3")); wxPdfLayer* l2 = pdf.AddLayer(wxT("Layer 2")); wxPdfLayer* l3 = pdf.AddLayer(wxT("Layer 3")); l23->AddChild(l2); l23->AddChild(l3); pdf.SetTextColour(wxPdfColour(wxString(wxT("red")))); pdf.SetFont(wxT("Helvetica"),wxT("B"),20); pdf.Cell(0,6,wxT("Nesting layers")); pdf.Ln(25); pdf.SetTextColour(wxPdfColour(wxString(wxT("black")))); pdf.SetFont(wxT("Helvetica"),wxT(""),12); pdf.EnterLayer(l1); pdf.Cell(0,6,wxT("Text in layer 1")); pdf.Ln(15); pdf.LeaveLayer(); pdf.EnterLayer(l23); pdf.EnterLayer(l2); pdf.Cell(0,6,wxT("Text in layer 2")); pdf.Ln(15); pdf.LeaveLayer(); pdf.EnterLayer(l3); pdf.Cell(0,6,wxT("Text in layer 3")); pdf.Ln(15); pdf.LeaveLayer(); pdf.LeaveLayer(); pdf.SaveAsFile(wxT("layersnested.pdf")); }
void form() { wxPdfDocument pdf; // pdf.SetProtection(wxPDF_PERMISSION_PRINT | wxPDF_PERMISSION_MODIFY | wxPDF_PERMISSION_ANNOT); pdf.SetFormColours(wxPdfColour(255,0,0), wxPdfColour(250,235,186), wxPdfColour(0,0,255)); pdf.AddPage(); // Title pdf.SetFont(wxT("Helvetica"), wxT("U"), 16); pdf.Cell(0, 5, wxT("Subscription form"), 0, 1, wxPDF_ALIGN_CENTER); pdf.Ln(10); pdf.SetFont(wxT(""), wxT(""), 12); // First name pdf.Cell(35, 5, wxT("First name:")); pdf.SetFormBorderStyle(wxPDF_BORDER_UNDERLINE); pdf.TextField(wxT("firstname"), pdf.GetX(), pdf.GetY(), 50, 5, wxT("")); pdf.Ln(6); // Last name pdf.Cell(35, 5, wxT("Last name:")); pdf.SetFormBorderStyle(wxPDF_BORDER_UNDERLINE); pdf.TextField(wxT("lastname"), pdf.GetX(), pdf.GetY(), 50, 5, wxT("")); pdf.Ln(6); // Title pdf.Cell(35, 5, wxT("Title:")); wxArrayString options; options.Add(wxT("")); options.Add(wxT("Dr.")); options.Add(wxT("Prof.")); pdf.SetFormBorderStyle(); pdf.ComboBox(wxT("titlecombo"), pdf.GetX(), pdf.GetY(), 20,5, options); pdf.Ln(8); // Gender pdf.Cell(35, 5, wxT("Gender:"), 0, 0); double x = pdf.GetX(); double y = pdf.GetY(); pdf.RadioButton(wxT("gender"), wxT("male"), x, y, 4); pdf.RadioButton(wxT("gender"), wxT("female"), x+25, y, 4); pdf.SetXY(x+6, y); pdf.Cell(20, 5, wxT("male"), 0, 0); pdf.SetXY(x+31, y); pdf.Cell(20, 5, wxT("female"), 0, 0); pdf.Ln(8); // Adress pdf.Cell(35, 5, wxT("Address:")); pdf.SetFormBorderStyle(); pdf.TextField(wxT("address"), pdf.GetX(), pdf.GetY(), 60, 18, wxT(""), true); pdf.Ln(19); // E-mail pdf.Cell(35, 5, wxT("E-mail:")); pdf.SetFormBorderStyle(); pdf.TextField(wxT("email"), pdf.GetX(), pdf.GetY(), 50, 5, wxT("")); pdf.Ln(6); // Newsletter pdf.Cell(35, 5, wxT("Receive our"), 0, 1); pdf.Cell(35, 5, wxT("newsletter:")); pdf.SetFormBorderStyle(wxPDF_BORDER_DASHED); pdf.CheckBox(wxT("newsletter"), pdf.GetX(), pdf.GetY(), 5, false); pdf.Ln(10); // Date of the day pdf.Cell(35, 5, wxT("Date: ")); pdf.SetFormBorderStyle(); pdf.TextField(wxT("date"), pdf.GetX(), pdf.GetY(), 30, 5, wxDateTime::Today().FormatISODate()); pdf.Ln(5); pdf.Cell(35, 5,wxT("Signature:")); pdf.Ln(12); // Button to print pdf.SetX(95); pdf.SetFormBorderStyle(); pdf.PushButton(wxT("print"), pdf.GetX(), pdf.GetY(), 20,8, wxT("Print"), wxT("print(true);")); pdf.SaveAsFile(wxT("form.pdf")); }