如何为Telerik UI中的PDF导出在RadFlowDocument中设置中断

时间:2019-08-24 17:21:51

标签: telerik nativescript-telerik-ui

我正在使用Telerik UI将文档导出为PDF。我可以导出PDF,但是分页符未正确添加。

我首先使用html创建文档,然后使用Telerik的HtmlFormatProvider将它们导出为RadFlowDocument的字符串。然后,我在RadFlowDocument中循环搜索关键字:[PAGEBREAK],该关键字是我在HTML中设置的,用于将分页符手动添加到文档中。然后,使用PDFFormatProvider将其导出为PDF。除了分页符之外,整个过程都运行良好。

使用调试器,我看到它检测到PAGEBREAK关键字并将分页符添加到RadFlowDocument。但是,当我将其导出为PDF时,最终文档没有任何分页符。

我尝试在其他pdf查看器和浏览器插件中查看此内容,但看不到中断。

我还尝试删除了removeAt行,以查看它是否正在添加并删除分页符,但仍返回相同的结果。

<ItemTemplate>
                    <asp:Label ID="lblLetter" runat="server"></asp:Label>
                    <%If recordCount > 1 Then%>
                      <b>[PAGEBREAK]</b>
                    <%End If%>
</ItemTemplate>
Dim document As RadFlowDocument = providerHTML.Import(html)

        For Each fieldCharacter In document.EnumerateChildrenOfType(Of Paragraph)().ToArray()

            For Each inline In fieldCharacter.Inlines.ToList()

                If ((TypeOf inline Is InlineBase)) AndAlso ((TryCast(inline, Run)) IsNot Nothing) AndAlso ((CType(inline, Run)).Text = "[PAGEBREAK]") Then
                    Dim index = fieldCharacter.Inlines.IndexOf(inline)
                    Dim breakPage = New Break(document)
                    breakPage.BreakType = BreakType.PageBreak
                    fieldCharacter.Inlines.Add(breakPage)
                    fieldCharacter.Inlines.RemoveAt(index + 1)
                End If
            Next
        Next

        Using output As Stream = File.Create("Test.pdf")
            providerPDF.Export(document, output)
        End Using

最终结果应具有PDF,该PDF可以在导出的每个新文档之后正确地开始一个新页面。但是,它们正在同一页面上运行而看不到分页符。

运行导出时没有错误消息,因此看起来更像是设置丢失或导出值丢失。

0 个答案:

没有答案