itext7 如何删除段落文本和段落顶部之间的 space?

How can itext7 remove the space between paragraph text and paragraph top?

使用 itext7,我创建了一个包含两段的 pdf。

string cardPdf = "card.pdf"; float cardWidth = 266.5f; float cardHeight = 164.4f;
using (PdfDocument cardDoc = new PdfDocument(new PdfWriter(cardPdf)))
using (Document doc = new Document(cardDoc))
{
    PdfPage page = cardDoc.AddNewPage(new iText.Kernel.Geom.PageSize(cardWidth, cardHeight));
    Paragraph pg1 = new Paragraph("WriteParagraph 1").SetFontSize(10f);
    pg1.SetBackgroundColor(iText.Kernel.Colors.ColorConstants.YELLOW);
    doc.Add(pg1);
    Paragraph pg2 = new Paragraph("WriteParagraph 2").SetFontSize(20f);
    pg2.SetBackgroundColor(iText.Kernel.Colors.ColorConstants.YELLOW);
    doc.Add(pg2);
}

我发现段落文字顶部和背景矩形之间有空隙,不同的字体大小造成不同的空隙。我怎样才能去掉间距。

您可以使用其中任何一种方法来减少 space 文档。

文档级别

SetMargins(float topMargin, float rightMargin, float bottomMargin, float leftMargin);

SetTopMargin(float topMargin);
SetRightMargin(float rightMargin);
SetBottomMargin(float bottomMargin);
SetLeftMargin(float leftMargin);

段落级别

SetMargins(float topMargin, float rightMargin, float bottomMargin, float leftMargin);

SetMarginTop(float topMargin);
SetMarginRight(float rightMargin);
SetMarginBottom(float bottomMargin);
SetMarginLeft(float leftMargin);

为段落控制行 spacing/leading。

SetMultipliedLeading(float leadingValue);

如果需要在整体文档层面控制行距。

SetProperty(int property, object value);

SetProperty(Property.LEADING, new Leading(Leading.MULTIPLIED, float leading Value);

试试这个:

string cardPdf = "card.pdf"; float cardWidth = 266.5f; float cardHeight = 164.4f;
using (PdfDocument cardDoc = new PdfDocument(new PdfWriter(cardPdf)))
using (Document doc = new Document(cardDoc))
{
    doc.SetMargins(15f, 20f, 15f, 20f);
    PdfPage page = cardDoc.AddNewPage(new iText.Kernel.Geom.PageSize(cardWidth, cardHeight));
    Paragraph pg1 = new Paragraph("WriteParagraph 1").SetFontSize(10f);
    pg1.SetBackgroundColor(iText.Kernel.Colors.ColorConstants.YELLOW);
    pg1.SetMultipliedLeading(0.8f);
    doc.Add(pg1);
    Paragraph pg2 = new Paragraph("WriteParagraph 2").SetFontSize(20f);
    pg2.SetMultipliedLeading(0.8f);
    pg2.SetMarginTop(0f);
    pg2.SetBackgroundColor(iText.Kernel.Colors.ColorConstants.YELLOW);
    doc.Add(pg2);
}