如何使 PDF 中换行文本的最后一行完全可见

问题描述 投票:0回答:1

如果将段落添加到文本框架并将段落高度扩展到两行,有时页面中的行仅部分可见。

示例位于 https://github.com/empira/PDFsharp/files/12776630/actual.behaviour.pdf

要在 MigraDoc 模板中重现运行代码:

static Document CreateDocument()
{
    // Create a new MigraDoc document.
    var document = new Document { };
    // Add a section to the document.
    var section = document.AddSection();
    section.PageSetup.BottomMargin = 0;
    section.PageSetup.TopMargin = 0;
    for (int p = 1; p < 100; p++)
    {
        var textFrame = section.AddTextFrame();
        textFrame.RelativeVertical = RelativeVertical.Line;
        textFrame.WrapFormat.DistanceTop = Unit.FromCentimeter(0.11);
        textFrame.Height = Unit.FromCentimeter(0.47);
        var paragraph = textFrame.AddParagraph();
        paragraph.Format.Font.Name = "Times New Roman";
        paragraph.Format.Font.Size = 10;
        paragraph.AddText("Maksekorraldus 123456");
        paragraph.Format.SpaceBefore = 0;
        paragraph.Format.SpaceAfter = 0;
    }
    return document;
}

完整的VS解决方案位于https://github.com/empira/PDFsharp/files/12776629/texttruncatedinendofpage.zip

如何让所有线条完全可见?在实际应用中,段落高度是未知的,Migradoc 不提供获取段落高度的方法。所以文本框高度不能通过代码增加。

使用 PDFsharp-MigraDoc 6.0.0-preview-3

pdf-generation pdfsharp migradoc pdfsharpcore
1个回答
0
投票

文本框架不会中断到下一页,这是设计使然。
调用者必须确保文本框架适合页面。

对于普通文本,建议将文本放在章节正文或表格中。
请注意,表格单元格不会跨页中断。
表格将在单元格边界处破裂。
正文中的段落将在行边界处断开。

© www.soinside.com 2019 - 2024. All rights reserved.