Skip to main content

Search OfficeIMO

Enter a topic, API type, or PowerShell command.

Workshop agenda in ODT and flat XML

Offer both packaged and flat XML representations of the same agenda for teams with different editing or exchange workflows.

Start with
Workshop timings, activities, outputs and preparation notes
Generate
ODT + PDF
Generated OpenDocument example: Workshop agenda in ODT and flat XML
Page 1 · Generated by the example below

How it works

  1. Build the agenda

    Use headings, styled time labels and preparation notes around a concrete workshop outcome.

  2. Save the packaged document

    Write example.odt for normal OpenDocument editing and sharing.

  3. Export flat XML

    Call SaveFlatXml to write example.fodt from the same document model.

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.OpenDocument;

namespace OfficeIMO.Examples.Showcase.Workflows;

/// <summary>Saves the same workshop agenda as packaged ODT and flat XML FODT for inspection and exchange.</summary>
internal static class OpenWorkshopAgenda {
    internal static void Create(string folder) {
        OdtDocument document = OdtDocument.Create();
        var title = document.AddHeading("Service design workshop", 1);
        title.FontFamily = "Carlito"; title.FontSize = OdfLength.Parse("26pt"); title.Color = OdfColor.Parse("#17365d");
        document.AddParagraph("90 minutes / six participants / facilitator: Jordan Lee");
        document.AddHeading("Outcome", 2);
        document.AddParagraph("Agree one request journey, identify the unresolved decisions and leave with named owners for the next actions.");
        document.AddHeading("Agenda", 2);
        Activity("00–10", "Frame the problem", "Agree the outcome and boundaries.");
        Activity("10–30", "Map the current journey", "Make handoffs and waiting points visible.");
        Activity("30–55", "Design the next journey", "Name roles and decision points.");
        Activity("55–75", "Test two scenarios", "Record exceptions and open questions.");
        Activity("75–90", "Commit next actions", "Agree owners, dates and a review point.");
        document.AddHeading("Preparation", 2);
        document.AddParagraph("Bring two anonymized requests: one routine case and one that needed several handoffs. Read the current service description before the session.");
        document.AddHeading("Capture before closing", 2);
        var close = document.AddParagraph();
        close.AddSpan("Decision / owner / due date").Bold = true;
        close.AddSpan(" — record all three for every action. Share the agenda and the resulting notes with participants.");
        foreach (var paragraph in document.Paragraphs) {
            paragraph.FontFamily = "Carlito";
            paragraph.FontSize = OdfLength.Parse(paragraph.HeadingLevel == 1 ? "26pt" : paragraph.IsHeading ? "15pt" : "11pt");
            paragraph.SpaceAbove = OdfLength.Parse(paragraph.IsHeading ? "12pt" : "0pt");
            paragraph.SpaceBelow = OdfLength.Parse("8pt");
            if (paragraph.IsHeading) paragraph.Color = OdfColor.Parse("#17365d");
        }
        document.Save(Path.Combine(folder, "example.odt"));
        document.SaveFlatXml(Path.Combine(folder, "example.fodt"));

        void Activity(string time, string title, string outcome) {
            var paragraph = document.AddParagraph();
            var label = paragraph.AddSpan(time + "  " + title + ". ");
            label.Bold = true;
            label.Color = OdfColor.Parse("#2563eb");
            paragraph.AddSpan(outcome);
        }
    }
}
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 opendocument-workshop-agenda

The files are written to OfficeIMO.Examples/bin/Debug/net10.0/Documents/Workflows/opendocument-workshop-agenda/. To use the example in your application, start with the OpenDocument guide and its package setup.

Downloads and scope

What the preview shows

The linked C# example generates this file. The runner reopens the ODT and exports a PDF review copy. Each PDF page is rendered for review.

What to keep in mind

The sample demonstrates both serializations. It does not claim that text diffs are free of generated style changes or that all editors render them identically.

OpenDocument API reference · Artifact hashes and provenance

Continue with another example

Example source

Download source