Create PDFs from Scratch in C#

The code below shows how to create a PDF document from scratch. Specifically, it shows how to add text, rectangles, and form fields to a document and how to save the result:

// We assume GdPicture has been correctly installed and unlocked.
// First, create a new PDF document.
GdPicturePDF oGdPicturePDF = new GdPicturePDF();
GdPictureStatus status = oGdPicturePDF.NewPDF();
if (status != GdPictureStatus.OK)
{
    MessageBox.Show("Error occurred when creating a new PDF document. Error: " + status.ToString(), "Creating PDF Example", MessageBoxButtons.OK, MessageBoxIcon.Error);
    goto end;
}
// For convenience reasons, set the measurement units and the origin.
oGdPicturePDF.SetMeasurementUnit(PdfMeasurementUnit.PdfMeasurementUnitMillimeter);
oGdPicturePDF.SetOrigin(PdfOrigin.PdfOriginTopLeft);
// Create and insert a new A4-sized page into the document.
status = oGdPicturePDF.NewPage(210, 297);
if (status != GdPictureStatus.OK)
{
    MessageBox.Show("Error occurred when creating a new page. Error: " + status.ToString(), "Creating PDF Example", MessageBoxButtons.OK, MessageBoxIcon.Error);
    goto end;
}
// Add fonts that will be used in this PDF document.
string fontHelv = oGdPicturePDF.AddStandardFont(PdfStandardFont.PdfStandardFontHelvetica);
if (oGdPicturePDF.GetStat() != GdPictureStatus.OK)
{
    MessageBox.Show("Error occurred when adding fonts. Error: " + oGdPicturePDF.GetStat().ToString(), "Creating PDF Example", MessageBoxButtons.OK, MessageBoxIcon.Error);
    goto end;
}
string fontHelvBold = oGdPicturePDF.AddStandardFont(PdfStandardFont.PdfStandardFontHelveticaBold);
if (oGdPicturePDF.GetStat() != GdPictureStatus.OK)
{
    MessageBox.Show("Error occurred when adding fonts. Error: " + oGdPicturePDF.GetStat().ToString(), "Creating PDF Example", MessageBoxButtons.OK, MessageBoxIcon.Error);
    goto end;
}
// Draw the title in a blue rectangle.
if ((oGdPicturePDF.SetLineColor(Color.Blue) == GdPictureStatus.OK) &&
    (oGdPicturePDF.SetLineWidth(2) == GdPictureStatus.OK) &&
    (oGdPicturePDF.DrawRoundedRectangle(10, 5, 190, 20, 3, false, true) == GdPictureStatus.OK) &&
    (oGdPicturePDF.SetTextSize(30) == GdPictureStatus.OK) &&
    (oGdPicturePDF.DrawTextBox(fontHelvBold, 10, 5, 200, 25, TextAlignment.TextAlignmentCenter, TextAlignment.TextAlignmentCenter, "Form Filling") == GdPictureStatus.OK) &&
// Now add the page body.
    (oGdPicturePDF.SetLineColor(Color.Black) == GdPictureStatus.OK) &&
    (oGdPicturePDF.SetLineWidth(0.1F) == GdPictureStatus.OK) &&
    (oGdPicturePDF.SetTextSize(10) == GdPictureStatus.OK) &&
    (oGdPicturePDF.DrawText(fontHelv, 10, 40, "Name") == GdPictureStatus.OK) &&
    (oGdPicturePDF.DrawText(fontHelv, 10, 50, "Nick Name") == GdPictureStatus.OK) &&
    (oGdPicturePDF.DrawText(fontHelv, 10, 70, "Centre of interest") == GdPictureStatus.OK) &&
    (oGdPicturePDF.DrawRectangle(5, 30, 200, 80, false, true) == GdPictureStatus.OK))
{
    // Add some form fields.
    int FieldNameId = oGdPicturePDF.AddTextFormField(40, 35, 90, 8, "Name", "Enter your name", false, fontHelv, 8, Color.Black);
    if (oGdPicturePDF.GetStat() != GdPictureStatus.OK)
        oGdPicturePDF.SetFormFieldMaxLen(FieldNameId, 50);
    else
        MessageBox.Show("Error occurred when adding form Name. Error: " + oGdPicturePDF.GetStat().ToString(), "Creating PDF Example", MessageBoxButtons.OK, MessageBoxIcon.Error);
    int FieldNickNameId = oGdPicturePDF.AddTextFormField(40, 45, 90, 8, "Nickname", "Enter your nickname", false, fontHelv, 8, Color.Black);
    if (oGdPicturePDF.GetStat() != GdPictureStatus.OK)
        oGdPicturePDF.SetFormFieldMaxLen(FieldNickNameId, 50);
    else
        MessageBox.Show("Error occurred when adding form Nickname. Error: " + oGdPicturePDF.GetStat().ToString(), "Creating PDF Example", MessageBoxButtons.OK, MessageBoxIcon.Error);
    int FieldCOIId = oGdPicturePDF.AddTextFormField(40, 55, 90, 30, "COI", "Enter your centre of interest", true, fontHelv, 8, Color.Black);
    if (oGdPicturePDF.GetStat() != GdPictureStatus.OK)
        oGdPicturePDF.SetFormFieldMaxLen(FieldCOIId, 500);
    else
        MessageBox.Show("Error occurred when adding form COI. Error: " + oGdPicturePDF.GetStat().ToString(), "Creating PDF Example", MessageBoxButtons.OK, MessageBoxIcon.Error);
    // And finally, save the PDF document.
    status = oGdPicturePDF.SaveToFile(@"form.pdf");
    MessageBox.Show("Finished! Status: " + status.ToString(), "Creating PDF Example", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
    MessageBox.Show("Error occurred when drawing. Error: " + oGdPicturePDF.GetStat().ToString(), "Creating PDF Example", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
end:
oGdPicturePDF.Dispose();
'We assume GdPicture has been correctly installed and unlocked.
'First, create a new PDF document.
Dim oGdPicturePDF As New GdPicturePDF()
Dim status As GdPictureStatus = oGdPicturePDF.NewPDF()
If status <> GdPictureStatus.OK Then
    MessageBox.Show("Error occurred when creating a new PDF document. Error: " + status.ToString(), "Creating PDF Example", MessageBoxButtons.OK, MessageBoxIcon.Error)
    GoTo [end]
End If
'For convenience reasons, set the measurement units and the origin.
oGdPicturePDF.SetMeasurementUnit(PdfMeasurementUnit.PdfMeasurementUnitMillimeter)
oGdPicturePDF.SetOrigin(PdfOrigin.PdfOriginTopLeft)
'Create and insert a new A4-sized page into the document.
status = oGdPicturePDF.NewPage(210, 297)
If status <> GdPictureStatus.OK Then
    MessageBox.Show("Error occurred when creating a new page. Error: " + status.ToString(), "Creating PDF Example", MessageBoxButtons.OK, MessageBoxIcon.Error)
    GoTo [end]
End If
'Add fonts that will be used in this PDF document.
Dim fontHelv As String = oGdPicturePDF.AddStandardFont(PdfStandardFont.PdfStandardFontHelvetica)
If oGdPicturePDF.GetStat() <> GdPictureStatus.OK Then
    MessageBox.Show("Error occurred when adding fonts. Error: " + oGdPicturePDF.GetStat().ToString(), "Creating PDF Example", MessageBoxButtons.OK, MessageBoxIcon.Error)
    GoTo [end]
End If
Dim fontHelvBold As String = oGdPicturePDF.AddStandardFont(PdfStandardFont.PdfStandardFontHelveticaBold)
If oGdPicturePDF.GetStat() <> GdPictureStatus.OK Then
    MessageBox.Show("Error occurred when adding fonts. Error: " + oGdPicturePDF.GetStat().ToString(), "Creating PDF Example", MessageBoxButtons.OK, MessageBoxIcon.Error)
    GoTo [end]
End If
'Draw the title in a blue rectangle and then draw the page body.
If (oGdPicturePDF.SetLineColor(Color.Blue) = GdPictureStatus.OK) AndAlso
   (oGdPicturePDF.SetLineWidth(2) = GdPictureStatus.OK) AndAlso
   (oGdPicturePDF.DrawRoundedRectangle(10, 5, 190, 20, 3, False, True) = GdPictureStatus.OK) AndAlso
   (oGdPicturePDF.SetTextSize(30) = GdPictureStatus.OK) AndAlso
   (oGdPicturePDF.DrawTextBox(fontHelvBold, 10, 5, 200, 25, TextAlignment.TextAlignmentCenter, TextAlignment.TextAlignmentCenter, "Form Filling") = GdPictureStatus.OK) AndAlso
   (oGdPicturePDF.SetLineColor(Color.Black) = GdPictureStatus.OK) AndAlso
   (oGdPicturePDF.SetLineWidth(0.1F) = GdPictureStatus.OK) AndAlso
   (oGdPicturePDF.SetTextSize(10) = GdPictureStatus.OK) AndAlso
   (oGdPicturePDF.DrawText(fontHelv, 10, 40, "Name") = GdPictureStatus.OK) AndAlso
   (oGdPicturePDF.DrawText(fontHelv, 10, 50, "Nick Name") = GdPictureStatus.OK) AndAlso
   (oGdPicturePDF.DrawText(fontHelv, 10, 70, "Centre of interest") = GdPictureStatus.OK) AndAlso
   (oGdPicturePDF.DrawRectangle(5, 30, 200, 80, False, True) = GdPictureStatus.OK) Then
    'Add some form fields.
    Dim FieldNameId As Integer = oGdPicturePDF.AddTextFormField(40, 35, 90, 8, "Name", "Enter your name", False, fontHelv, 8, Color.Black)
    If oGdPicturePDF.GetStat() <> GdPictureStatus.OK Then
        oGdPicturePDF.SetFormFieldMaxLen(FieldNameId, 50)
    Else
        MessageBox.Show("Error occurred when adding form Name. Error: " + oGdPicturePDF.GetStat().ToString(), "Creating PDF Example", MessageBoxButtons.OK, MessageBoxIcon.Error)
    End If
    Dim FieldNickNameId As Integer = oGdPicturePDF.AddTextFormField(40, 45, 90, 8, "Nickname", "Enter your nickname", False, fontHelv, 8, Color.Black)
    If oGdPicturePDF.GetStat() <> GdPictureStatus.OK Then
        oGdPicturePDF.SetFormFieldMaxLen(FieldNickNameId, 50)
    Else
        MessageBox.Show("Error occurred when adding form Nickname. Error: " + oGdPicturePDF.GetStat().ToString(), "Creating PDF Example", MessageBoxButtons.OK, MessageBoxIcon.Error)
    End If
    Dim FieldCOIId As Integer = oGdPicturePDF.AddTextFormField(40, 55, 90, 30, "COI", "Enter your centre of interest", True, fontHelv, 8, Color.Black)
    If oGdPicturePDF.GetStat() <> GdPictureStatus.OK Then
        oGdPicturePDF.SetFormFieldMaxLen(FieldCOIId, 500)
    Else
        MessageBox.Show("Error occurred when adding form COI. Error: " + oGdPicturePDF.GetStat().ToString(), "Creating PDF Example", MessageBoxButtons.OK, MessageBoxIcon.Error)
    End If
    'And finally, save the PDF document.
    status = oGdPicturePDF.SaveToFile("form.pdf")
    MessageBox.Show("Finished! Status: " + status.ToString(), "Creating PDF Example", MessageBoxButtons.OK, MessageBoxIcon.Information)
Else
    MessageBox.Show("Error occurred when drawing. Error: " + oGdPicturePDF.GetStat().ToString(), "Creating PDF Example", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
[end]:
oGdPicturePDF.Dispose()