添加徽标背景颜色

时间:2018-04-25 08:54:38

标签: c# itext

我在页面顶部添加了一个徽标:

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

如何添加徽标背景颜色?

(宽度:整页,高度:1.5x徽标高度)

2 个答案:

答案 0 :(得分:0)

我希望这可以帮助你...

用于背景图片

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

答案 1 :(得分:0)

最佳选择:

您可以提供可以占据页面宽度的背景图像。即使在paint app中,我们也可以使用第三方工具(合并两个图像)。

第二个选项:

我相信,最好有一个表格布局。您可以在没有边框的单元格中划分页面,并将徽标保留在其中一个中,其余部分将填充背景颜色。确保您的背景与徽标背景相符。

代码段:

       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);

         }