Skip to main content

Search OfficeIMO

Enter a topic, API type, or PowerShell command.

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
PDF
Generated PDF example: Fillable equipment inspection
Page 1 · Generated by the example below

How it works

  1. Lay out the record

    Group asset details, inspection checks and follow-up information under readable headings.

  2. Add named fields

    Use TextField, CheckBox and ChoiceField so applications can identify values by stable field names.

  3. 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 file

Run 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-inspection

The 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.

PDF API reference · Artifact hashes and provenance

Continue with another example

Example source

Download source