コード例 #1
0
ファイル: layers.cpp プロジェクト: DowerChest/codeblocks
/**
 * 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"));
}
コード例 #2
0
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"));
}
コード例 #3
0
ファイル: layers.cpp プロジェクト: DowerChest/codeblocks
/**
 * 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"));
}
コード例 #4
0
ファイル: layers.cpp プロジェクト: DowerChest/codeblocks
/**
 * 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"));
}
コード例 #5
0
ファイル: layers.cpp プロジェクト: DowerChest/codeblocks
/**
 * 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"));
}
コード例 #6
0
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"));
}