PDF · C# walkthrough
Fillable equipment inspection
Collect a consistent inspection record in a PDF viewer while leaving the decision to the person performing the checks.
- Start with
- Inspection labels, a sample asset identifier and allowed dispositions
- Generate

How it works
Lay out the record
Group asset details, inspection checks and follow-up information under readable headings.
Add named fields
Use TextField, CheckBox and ChoiceField so applications can identify values by stable field names.
Set a conservative initial state
Leave checkboxes unchecked and the disposition at Awaiting inspection until a person records the result.
The C# source
This is the complete example file used to generate the download. The walkthrough runner creates the output directory and produces the additional previews.
using OfficeIMO.Pdf;
namespace OfficeIMO.Examples.Showcase.Workflows;
/// <summary>Creates a fillable equipment inspection form with named text, choice and checkbox fields.</summary>
internal static class EquipmentInspection {
internal static void Create(string folder) {
PdfColor navy = PdfColor.FromRgb(23, 54, 93);
PdfDocument.Create(pdf => pdf.Content(content => content
.H1("Equipment inspection", PdfAlign.Left, navy)
.Paragraph(p => p.Text("NORTHWIND / WORKPLACE OPERATIONS / FILLABLE CHECKLIST"))
.Paragraph(p => p.Text("Record the inspection before returning equipment to the shared pool. This sample is not a safety certification."))
.H2("Asset and inspector", PdfAlign.Left, navy)
.Paragraph(p => p.Bold("Asset identifier"))
.TextField("asset-id", width: 280, value: "NW-LT-042")
.Paragraph(p => p.Bold("Inspector"))
.TextField("inspector", width: 280)
.Paragraph(p => p.Bold("Inspection date (YYYY-MM-DD)"))
.TextField("inspection-date", width: 180)
.H2("Record the checks", PdfAlign.Left, navy)
.Paragraph(p => p.Text("Casing and connectors checked"))
.CheckBox("casing-checked")
.Paragraph(p => p.Text("Power-on and basic operation checked"))
.CheckBox("operation-checked")
.Paragraph(p => p.Text("Accessories returned and recorded"))
.CheckBox("accessories-checked")
.Paragraph(p => p.Bold("Disposition"))
.ChoiceField("disposition", new[] { "Awaiting inspection", "Return to pool", "Repair required", "Retire from use" },
value: "Awaiting inspection", width: 280)
.Paragraph(p => p.Bold("Follow-up note"))
.TextField("follow-up", width: 450, height: 38)),
new PdfOptions { DefaultFontSize = 10 })
.Meta(title: "Equipment inspection", author: "OfficeIMO")
.Save(Path.Combine(folder, "example.pdf"));
}
}
Open the C# source fileRun it from the source checkout
Clone the OfficeIMO repository and run this command from its root with the .NET 10 SDK. The first run restores the example project's dependencies.
dotnet run --project OfficeIMO.Examples -f net10.0 -- --showcase-workflows --showcase-example pdf-equipment-inspectionThe files are written to OfficeIMO.Examples/bin/Debug/net10.0/Documents/Workflows/pdf-equipment-inspection/. To use the example in your application, start with the PDF guide and its package setup.
Downloads and scope
What the preview shows
The linked C# example generates this file. The page images are rendered from the downloadable PDF with Poppler. Interactive structures are inspected separately from the static preview.
What to keep in mind
This sample is not a safety certification. The PNG is a static preview; use a PDF viewer that supports AcroForm fields to complete the form.