Skip to main content

Search OfficeIMO

Enter a topic, API type, or PowerShell command.

Portable RTF support bulletin

Give a support team a compact document that can be edited in software accepting RTF and shared as a PDF review copy.

Start with
A support symptom, diagnostic steps and evidence fields
Generate
RTF + PDF
Generated RTF example: Portable RTF support bulletin
Page 1 · Generated by the example below

How it works

  1. Format the headings

    Apply font size, bold text, color and paragraph spacing through the native RTF paragraph and run APIs.

  2. Write the diagnostic sequence

    Add the symptom, an ordered sequence expressed as bullets and a table describing useful evidence.

  3. Save and reopen the RTF

    Serialize the document, then let the runner load the saved RTF and convert it to PDF.

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

namespace OfficeIMO.Examples.Showcase.Workflows;

/// <summary>Creates a compact RTF support bulletin with formatted headings and structured troubleshooting steps.</summary>
internal static class SupportBulletin {
    internal static void Create(string folder) {
        RtfDocument document = RtfDocument.Create();
        document.Info.Title = "Support bulletin: delayed request notifications";
        document.Info.Author = "OfficeIMO";
        int navy = document.AddColor(23, 54, 93), fill = document.AddColor(232, 238, 248);
        Heading("Delayed request notifications", 22);
        document.AddParagraph("SUPPORT BULLETIN / SB-014 / ILLUSTRATIVE SERVICE SCENARIO");
        Heading("Recognize the symptom");
        document.AddParagraph("A request appears in the portal, but its email acknowledgement arrives later than expected. Check the request record before asking the user to submit it again.");
        Heading("Check in this order");
        foreach (string step in new[] {
            "Confirm the request identifier and submission time.",
            "Check whether the notification is queued, delivered or rejected.",
            "Record the delivery result and route unresolved cases to the messaging owner."
        }) document.AddParagraph(step).SetList(kind: RtfListKind.Bullet).SetIndentation(leftTwips: 720, firstLineTwips: -360);
        Heading("Record enough evidence");
        var table = document.AddTable(4, 2); table.Rows[0].RepeatHeader = true; table.Rows[0].SetBackgroundColor(fill);
        string[,] rows = {
            { "Field", "Why it matters" },
            { "Request ID", "Finds the original service record" },
            { "Submission time", "Matches the notification event" },
            { "Delivery result", "Separates delay from rejection" }
        };
        for (int row = 0; row < 4; row++) for (int column = 0; column < 2; column++) table.Rows[row].Cells[column].AddParagraph(rows[row, column]);
        Heading("Close the loop");
        document.AddParagraph("Tell the user whether the request was received and when to expect the next update. Avoid including personal message content in the support record.");
        File.WriteAllText(Path.Combine(folder, "example.rtf"), document.ToRtf());

        void Heading(string text, double size = 14) {
            var paragraph = document.AddParagraph(text);
            paragraph.SpaceBeforeTwips = 160;
            paragraph.SpaceAfterTwips = 100;
            foreach (var run in paragraph.Runs) {
                run.FontSize = size;
                run.Bold = true;
                run.ForegroundColorIndex = navy;
            }
        }
    }
}
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 rtf-support-bulletin

The files are written to OfficeIMO.Examples/bin/Debug/net10.0/Documents/Workflows/rtf-support-bulletin/. To use the example in your application, start with the RTF guide and its package setup.

Downloads and scope

What the preview shows

The linked C# example generates this file. The runner reloads the saved RTF and exports it to PDF. Each PDF page is rendered for review.

What to keep in mind

The example is an illustrative support procedure. PDF conversion demonstrates the supported RTF content in this file, not every RTF feature.

RTF API reference · Artifact hashes and provenance

Continue with another example

Example source

Download source