簡體   English   中英

iText7 和 C#,在表格單元格中放置一個填充形狀

[英]iText7 and C#, put a filled shape in a table cell

我正在嘗試在使用 iText7 和 C# 創建的表格單元格中添加一個帶有圓角邊框的矩形。

我嘗試使用

table.AddCell(new Cell().Add(rect)

我在哪里創建了rect

Rectangle boundingBox = new Rectangle(20, 470, 30, 30);
PdfFormXObject xObject = new PdfFormXObject(boundingBox);
xObject.MakeIndirect(pdfDoc); //Make sure the XObject gets added to the document
PdfCanvas canvas = new PdfCanvas(pdfDoc.AddNewPage());
Color greenColor = new DeviceCmyk(100, 30, 100, 0);
canvas.SetFillColor(greenColor);
canvas.Rectangle(294, 780, 50, 35);
canvas.FillStroke();

Image rect = new Image(xObject);

我的一個朋友建議,但我認為這是錯誤的方法,我什至不太確定這段代碼的作用。 另外,矩形是透明的,有很大的邊距,並且單元格中的字體現在也是綠色的(在插入矩形之前是黑色的)。

這是它的樣子(我故意將正方形放高一點以顯示透明度):

在此處輸入圖片說明

我想要做的是創建一個綠色形狀的矩形,環繞邊框,然后將其放入單元格中。

它應該是這樣的:

在此處輸入圖片說明

有沒有好的方法可以做到這一點?

您可以創建一個塊級布局對象 ( Div ) 並為其設置所有必要的視覺屬性。 沒有必要執行自定義繪圖操作。 這是代碼示例(在 Java 中,但轉換為 C# 歸結為將方法名稱大寫):

Div rectangle = new Div()
        .setHeight(30)
        .setWidth(30)
        .setBackgroundColor(ColorConstants.GREEN)
        .setBorderRadius(new BorderRadius(5))
        .setBorder(new SolidBorder(ColorConstants.GREEN, 1));

table.addCell(new Cell().add(rectangle));

視覺上的結果是這樣的: 結果

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM