2
我使用iTextSharp以HTML頁面爲例創建PDF。我正在嘗試在文字周圍添加邊框以突出顯示某些項目。使用這些帖子中的方法(Draw Rect at curr position和Add Text over image)我已經使用OnGenericTag事件爲每個匹配特定條件的塊創建矩形。事件正確觸發,矩形繪製在正確的元素上。但是,當我爲表格單元添加背景時出現問題,它出現在塊矩形的頂部。有沒有辦法使從表格單元格背景上繪製的OnGenericTag
事件繪製矩形?iTextSharp - 無法在表格背景色上繪製矩形
OnGenericTags方法:
public class GenericTags : PdfPageEventHelper
{
public override void OnGenericTag(PdfWriter writer, Document pdfDocument, iTextSharp.text.Rectangle rect, String text)
{
if ("ellipse".Equals(text)) //I know it's not needed.
ellipse(writer.DirectContent, rect);
}
public void ellipse(PdfContentByte content, iTextSharp.text.Rectangle rect)
{
content.SaveState();
content.SetRGBColorStroke(0x00, 0x00, 0xFF);
content.SetLineWidth(2);
content.Rectangle(rect.Left - 2f, rect.Bottom - 3f, rect.Width, rect.Height + 3f);
content.Stroke();
content.RestoreState();
}
}
每個PdfPCell
定義爲:
PdfPCell med = new PdfPCell(ph[4])
{
HorizontalAlignment = Element.ALIGN_CENTER,
VerticalAlignment = Element.ALIGN_CENTER,
BackgroundColor = hm_yellow //this draws above rect from onGenericTag()
};
的Chunks
被創建並經由分配loop:
ph[j] = new Phrase();
foreach (var x in p.Risks)
{
c[i] = new Chunk("R" + x.APP_RISK_ID.ToString() + ", ");
if (x.RISK_STATUS_CD == "57")
{
//c[i].SetBackground(hm_top_tier); // still shows behind table cell background
c[i].SetGenericTag("ellipse");
}
ph[j].Add(c[i]);
}
這是我試圖變成PDF的HTML頁面。它顯示錶格單元格的背景顏色和需要圍繞它們突出顯示矩形的值。
這是渲染PDF時的結果。高亮R·的比賽,但是,當我申請一個背景顏色到PdfPCell
其上繪製矩形從Chunk
如何將表添加到DirectContentUnder圖層? – Auzi
使用'PdfPTable.WriteSelectedRows()'。 –