Skip to main content

Search OfficeIMO

Enter a topic, API type, or PowerShell command.

PDF reading list with clickable resources

Share a reading list that explains why each destination matters and remains useful when printed.

Opens the generated download in a local browser tool. The C# example below creates the document.

Start with
Resource names, destinations and usage notes
Generate
PDF
Generated PDF example: PDF reading list with clickable resources
Page 1 · Generated by the example below

How it works

  1. Use descriptive link labels

    Add a paragraph link with a name that tells readers what they will open.

  2. Attach links to table cells

    Keep the resource descriptions in a table and map selected cells to their URI targets with TableWithLinks.

  3. Include a reporting checklist

    Explain which input, version and expected result a team should collect when reporting a problem.

The C# source

The example below shows the document API and layout used for this report. Follow the PDF guide for package setup in your own project.

using OfficeIMO.Pdf;

namespace OfficeIMO.Examples.Showcase.Workflows;

/// <summary>Builds a PDF reading list with descriptive paragraph and table hyperlinks.</summary>
internal static class LinkedResourceGuide {
    internal static void Create(string folder) {
        string repository = "https://github.com/EvotecIT/OfficeIMO";
        PdfTableCell[][] rows = {
            new[] { PdfTableCell.TextCell("Resource"), PdfTableCell.TextCell("Use it for") },
            new[] { PdfTableCell.TextCell("Source repository", repository), PdfTableCell.TextCell("Browse code, examples and package READMEs.") },
            new[] { PdfTableCell.TextCell("Published releases", repository + "/releases"), PdfTableCell.TextCell("Read release notes and inspect release assets.") },
            new[] { PdfTableCell.TextCell("Issue tracker", repository + "/issues"), PdfTableCell.TextCell("Search known problems before filing a reproducible report.") }
        };
        PdfDocument.Create(pdf => pdf.Content(content => content
            .Title("Document automation reading list")
            .Subtitle("A compact PDF reference for a team starting a document-generation workflow.")
            .H2("Start with a runnable example")
            .AddParagraph(p => {
                p.AddText("Open the ");
                p.AddLink("OfficeIMO examples directory", repository + "/tree/master/OfficeIMO.Examples");
                p.AddText(" and choose a format close to your intended output. Keep the generated file alongside its input data.");
            })
            .H2("Keep these references close")
            .AddTable(rows)
            .H2("When reporting a problem")
            .AddList(new[] {
                "Include the smallest input that reproduces the issue.",
                "State the package version, target framework and operating system.",
                "Describe the expected result and attach a safe sample of the actual output."
            })
            .AddParagraph(p => p.AddText("The resource names are clickable annotations. A static image shows their labels; open the PDF to follow them."))),
            new PdfCreateOptions { PageSetup = { Footer = { Show = true } } })
            .Meta(title: "Document automation reading list", author: "OfficeIMO")
            .Save(Path.Combine(folder, "example.pdf"));
    }
}
Open the C# source file

API used in this example

Use this in your project

Replace the links with your team's approved resources and verify their destinations when publishing the guide.

The PDF guide explains package setup and related document APIs.

Documents 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

The PDF contains external link annotations. The image shows their labels and layout; it does not demonstrate navigation or guarantee future availability of external pages.

PDF API reference · Artifact hashes and provenance

Continue with another example

Example source