c# - PDF 的目录打印正确,但 RTF 的目录打印不正确

标签 c# pdfsharp migradoc

我正在做一个项目,我需要创建一个 PDF 文件和一个 RTF 文件,以及一个目录。我正在使用适用于 C# 的 MigraDoc + PdfSharp 库来执行此操作。

两个文件的目录代码是:

public static void DefineTableOfContents(Document document)
    {
        Section section = document.LastSection;

        section.AddPageBreak();
        Paragraph paragraph = section.AddParagraph("Table of Contents");
        paragraph.Format.Font.Size = 14;
        paragraph.Format.Font.Bold = true;
        paragraph.Format.SpaceAfter = 24;
        paragraph.Format.OutlineLevel = OutlineLevel.Level1;

        paragraph = section.AddParagraph(); 
        paragraph.Style = "TOC";
        Hyperlink hyperlink = paragraph.AddHyperlink("ParaBookmark");
        hyperlink.AddText("Paragraphs\t");
        hyperlink.AddPageRefField("ParaBookmark");

        paragraph = section.AddParagraph();
        paragraph.Style = "TOC";
        hyperlink = paragraph.AddHyperlink("AJBookmark");
        hyperlink.AddText("AJ\t");
        hyperlink.AddPageRefField("AJBookmark");

        paragraph = section.AddParagraph();
        paragraph.Style = "TOC";
        hyperlink = paragraph.AddHyperlink("TablesBookmark");
        hyperlink.AddText("Tables\t");
        hyperlink.AddPageRefField("TablesBookmark");

        paragraph = section.AddParagraph();
        paragraph.Style = "TOC";
        hyperlink = paragraph.AddHyperlink("ChartsBookmark"); 
        hyperlink.AddText("Charts\t");
        hyperlink.AddPageRefField("ChartsBookmark"); 
    }

对于 Pdf,代码工作正常,所有页码都正确显示,但对于 RTF 文件,我们得到如下输出:

Table of Contents
Paragraphs............................. < Please update this field. >
AJ..................................... < Please update this field. >
Tables................................. < Please update this field. >
Charts................................. < Please update this field. >

谷歌搜索后我了解到,要使 RTF 的页码出现在目录中,我们必须在 MS Word 中手动更新整个文档,方法是使用 ctrl+A,然后使用 F9。

是否有任何编程方式可以让我获得带有 RTF 页码的正确目录,这样我们就不需要手动更新文档?

最佳答案

可能有几种方法,例如用于 Word 的 VBA 或执行此操作的 Word 加载项。 MigraDoc 无法填写这些字段。

根据 this thread无法在 Word 打开 RTF 时自动更新字段。因此,这将是创建 RTF 文件并将其发送给客户之间的额外步骤。

关于c# - PDF 的目录打印正确,但 RTF 的目录打印不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30847286/

相关文章:

c# - ASP.NET - 将 C# 变量传递给 HTML

c# - 从字体 migradoc/pdsharp 获取表格列的文本宽度

java - iText 和 iTextSharp 端口有何不同?

在同一端口上支持 IPv6 和 IPv4 的 C# 服务器

c# - Visual Studio 集成网络服务器中的 WCF "Method Not Allowed"

c# - 带有 MigraDoc 的 PDFsharp 是否支持 HTML 语法?

.net - 将 PDF 与 PDFSharp 丢失表单字段相结合

c# - 如何使用 PDFSharp 从 PDF 中提取 FlateDecoded 图像

pdfsharp - 使用 XGraphics 在 MigraDoc 文档中绘图