Skip to main content

Search OfficeIMO

Enter a topic, API type, or PowerShell command.

A two-page workshop pack

Prepare an agenda and a printable exercise sheet as one document. A shared header and page-numbered footer hold the pack together while an explicit page break separates the two uses.

Start with
Workshop objectives, agenda, and exercise prompts
Generate
PDF
Generated PDF example: A two-page workshop pack
Page 1 · Generated by the example below

How it works

  1. Set document-wide furniture

    Configure the running header and the footer's page and total-page tokens through PdfOptions.

  2. Build the agenda page

    Combine the outcome list with a compact table of sessions and outputs.

  3. Start the exercise sheet

    Insert a page break, then add prompts and writing lines. Inspect both previews to check the complete two-page pack.

The rest of the document

A two-page workshop pack: Page 2: exercise sheet
Page 2: exercise sheet

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 System.IO;
using OfficeIMO.Pdf;

namespace OfficeIMO.Examples.Showcase.Workflows;

/// <summary>Creates a two-page workshop pack with a shared header and numbered footer.</summary>
internal static class WorkshopPack {
    internal static void Create(string folder) {
        PdfColor accent = PdfColor.FromRgb(103, 58, 140);
        var options = new PdfOptions {
            DefaultFontSize = 11, ShowHeader = true, HeaderFormat = "NORTHWIND / SERVICE DESIGN",
            HeaderFontSize = 8, HeaderAlign = PdfAlign.Left,
            ShowPageNumbers = true, FooterFormat = "Workshop pack | {page} / {pages}",
            FooterFontSize = 8, FooterAlign = PdfAlign.Right
        };
        PdfDocument.Create(pdf => pdf.Content(content => content
            .H1("Service design workshop", PdfAlign.Left, accent)
            .Paragraph(p => p.Text("A half-day session to turn service feedback into a delivery plan."))
            .H2("What we will leave with", PdfAlign.Left, accent)
            .Bullets(new[] { "One agreed service journey", "Three prioritized improvements", "An owner and next step for each improvement" })
            .H2("Agenda", PdfAlign.Left, accent)
            .Table(new[] {
                new[] { "Time", "Session", "Output" },
                new[] { "09:00", "Current journey", "Shared map" },
                new[] { "09:45", "Friction and evidence", "Ranked pain points" },
                new[] { "10:45", "Options and trade-offs", "Three candidates" },
                new[] { "11:30", "Commitments", "Action list" }
            }, style: new PdfTableStyle {
                HeaderFill = accent, HeaderTextColor = PdfColor.White, HeaderRowCount = 1,
                CellPaddingX = 8, CellPaddingY = 8, RowStripeFill = PdfColor.FromRgb(247, 242, 251)
            })
            .PageBreak()
            .H1("Exercise sheet", PdfAlign.Left, accent)
            .H2("1. Describe one difficult moment", PdfAlign.Left, accent)
            .Paragraph(p => p.Text("Who is trying to do what, and where do they get stuck? Use an observed example."))
            .HR(0.5, PdfColor.FromRgb(203, 213, 225), 30, 30)
            .H2("2. Propose the smallest useful change", PdfAlign.Left, accent)
            .Paragraph(p => p.Text("Describe what the person will be able to do after the change."))
            .HR(0.5, PdfColor.FromRgb(203, 213, 225), 30, 30)
            .H2("3. Choose the first check", PdfAlign.Left, accent)
            .Paragraph(p => p.Text("What evidence would show that the change helped? Who will collect it?"))
            .HR(0.5, PdfColor.FromRgb(203, 213, 225), 30, 30)), options)
            .Meta(title: "Service design workshop pack", 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-workshop-pack

The files are written to OfficeIMO.Examples/bin/Debug/net10.0/Documents/Workflows/pdf-workshop-pack/. 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.

What to keep in mind

The writing lines are static page content. This example does not create fillable PDF form fields.

PDF API reference · Artifact hashes and provenance

Continue with another example

Example source

Download source