Syncfusion - цвет фона для номера страницы - PullRequest
0 голосов
/ 29 января 2019

Я использую Syncfusion (версия = 16.4200.0.46) для преобразования html в pdf.В нижнем колонтитуле я использую класс PdfPageNumberField для рисования номера страницы.

Как установить цвет фона для этого элемента?

1 Ответ

0 голосов
/ 30 января 2019

Syncfusion не имеет опции по умолчанию для выполнения ваших требований, но это возможно сделать, используя приведенный ниже обходной путь.

void CreatePDF()
{
    PdfDocument document = new PdfDocument();
    document.Pages.Add();
    document.Pages.Add();

    AddFooter(document);
    document.Save("Sample.pdf");
    document.Close(true);
}


void AddFooter(PdfDocument doc)
{
    RectangleF rect = new RectangleF(0, 0, doc.Pages[0].GetClientSize().Width, 50);
    PdfPageTemplateElement footer = new PdfPageTemplateElement(rect);
    PdfFont font = new PdfStandardFont(PdfFontFamily.Helvetica, 8);
    PdfSolidBrush brush = new PdfSolidBrush(Color.Gray);

    PdfPageNumberField pageNumber = new PdfPageNumberField(font, brush);

    PdfPageCountField count = new PdfPageCountField(font, brush);

    string pageNumberFormat = "Page {0} of {1}";
    PointF pageNumberLocation = new PointF(100, 20);
    SizeF dimensionOfPageNumber = font.MeasureString(pageNumberFormat);

    footer.Graphics.DrawRectangle(PdfBrushes.Aquamarine, 
        new RectangleF(new PointF(pageNumberLocation.X - 5F, pageNumberLocation.Y), dimensionOfPageNumber));

    PdfCompositeField compositeField = new PdfCompositeField(font, PdfBrushes.Black, pageNumberFormat, pageNumber, count);
    compositeField.Draw(footer.Graphics, pageNumberLocation);

    doc.Template.Bottom = footer;
}

Примечание: Я работаю в Syncfusion.

...