Добавить цвет фона логотипа - PullRequest
0 голосов
/ 25 апреля 2018

Я добавляю логотип вверху страницы:

iTextSharp.text.Image logo = iTextSharp.text.Image.GetInstance(Server.MapPath("/logos/my_logo.png"));
logo.ScalePercent(60f);
document.Add(logo);

Как добавить цвет фона логотипа?

(ширина: полная страница, высота: 1,5x высота логотипа)

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018

Оптимальный вариант:

Вы можете создать фоновое изображение, которое может занимать всю ширину страницы. мы можем сделать это с помощью сторонних инструментов (объединение двух изображений) даже в приложении рисования.

Второй вариант:

Полагаю, лучше иметь раскладку стола. Вы можете разделить свою страницу на ячейки без рамки и оставить логотип в одной из них, остальные будут заполнены цветом фона. Убедитесь, что ваш фон должен совпадать с фоном логотипа.

Фрагмент кода:

       public void writeDocument()
          {
          Document _document = new Document(new Rectangle(PageSize.A3));
          var table = new PdfPTable(2);
          PdfPCell[] cells = new PdfPCell[2];
          PdfPCell cell = new PdfPCell(); 
          cell.Border = PdfPCell.NO_BORDER;
          cell.BackgroundColor = new iTextSharp.text.Color(51, 102,102);
          cells[0] = new PdfPCell(cell);
          iTextSharp.text.Image logo =         

iTextSharp.text.Image.GetInstance(Server.MapPath("/logos/my_logo.png"));
          PdfPCell cell1 = new PdfPCell(); 
           cell1.Border = PdfPCell.NO_BORDER;
          cell1.Image =logo ;
          cells[1] = new PdfPCell(cell1);

         PdfPRow row = new PdfPRow(cells);
         table.Rows.Add(row);
        _document.Add(table);

         }
0 голосов
/ 25 апреля 2018

Я надеюсь, что это поможет вам ...

Для фонового изображения

string imageFilePath = parent + "/logos/my_logo.png";
iTextSharp.text.Image jpg = iTextSharp.text.Image.GetInstance(imageFilePath);
jpg.ScaleToFit(1700, 1000);
jpg.Alignment = iTextSharp.text.Image.UNDERLYING;
jpg.SetAbsolutePosition(0, 0);
document.Add(jpg);

Редактировать

Для цвета фона, я думаю, вы можетеиспользуйте следующий код:

public void onDocument(PdfWriter writer, Document document)
{
    super.onEndPage(writer, document);
    PdfContentByte content = writer.getDirectContent();
    content.setColorFill(BaseColor.GREEN);
    content.rectangle(writer.getPageSize().getLeft(), writer.getPageSize().getBottom(),
                      writer.getPageSize().getWidth(), writer.getPageSize().getHeight());
    content.Rectangle(35f,55f, 520f, 750f ,20f);
    content.eoFill();        
}

Может быть, вы можете изменить значения ширины и высоты прямоугольника из этого кода для вашего случая

Редактировать

Изменение цвета фона конкретной ячейки.

header = new PdfPCell(new Phrase(market_data_list[i], grid_data_heading));
header.Colspan = 2;
header.HorizontalAlignment = iTextSharp.text.Element.ALIGN_CENTER;
header.BackgroundColor =new BaseColor(238,233,233);
market_table.AddCell(header); //adds cell to the table
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...