如何为 itextsharp pdf 页面的边框添加背景颜色
how to add background color for border of itextsharp pdf page
如何在 itextsharp pdf 页面的边框 [四边] 外侧添加背景色 [不是边框线颜色] ..
我很喜欢这个..但它不适用于边框外侧的背景颜色..
content.EoFill();
content.EoFillStroke();
content.Fill();
content.FillStroke();
但不工作
public class pageborder : PdfPageEventHelper
{
public override void OnEndPage(PdfWriter writer, Document document)
{
base.OnEndPage(writer, document);
var content = writer.DirectContent;
content.SetColorStroke(BaseColor.BLACK);
content.RoundRectangle(35f,55f, 520f, 750f ,20f);
content.Stroke();
}
}
您有 copy/pasted 绘制页面边框的代码:
public class pageborder : PdfPageEventHelper
{
public override void OnEndPage(PdfWriter writer, Document document)
{
base.OnEndPage(writer, document);
var content = writer.DirectContent;
content.SetColorStroke(BaseColor.BLACK);
content.RoundRectangle(35f,55f, 520f, 750f ,20f);
content.Stroke();
}
}
很遗憾,您不理解所复制的内容。您确实需要将 Stroke()
替换为 Fill()
,但这将使用默认填充颜色填充矩形,而您没有定义任何填充颜色。
您还需要将 SetColorStroke()
替换为 SetColorFill()
。例如:
public class pageborder : PdfPageEventHelper
{
public override void OnEndPage(PdfWriter writer, Document document)
{
var content = writer.DirectContent;
content.SetColorFill(BaseColor.RED);
content.RoundRectangle(35f,55f, 520f, 750f ,20f);
content.Fill();
}
}
现在用红色填充圆角矩形。
How can I add back ground color [not border line color] at out side of border[four sides] of itextsharp pdf page
我认为这意味着您想要这样的东西:
您可以像这样通过覆盖 onEndPage
来创建它(这是 Java 代码,但相应的 C# 代码应该很容易从中导出):
public void onEndPage(PdfWriter writer, Document document)
{
super.onEndPage(writer, document);
PdfContentByte content = writer.getDirectContent();
content.setColorFill(BaseColor.BLACK);
content.rectangle(writer.getPageSize().getLeft(), writer.getPageSize().getBottom(),
writer.getPageSize().getWidth(), writer.getPageSize().getHeight());
content.roundRectangle(35f,55f, 520f, 750f ,20f);
content.eoFill();
}
(完整样本:CreateWithFrame.java方法testCreateFramedDocumentEoFill
)
这通过向路径添加另一个页面大小的矩形并使用奇偶填充来实现。由于内部区域作为原始圆角矩形和新矩形的一部分添加到路径中,即两次,它 不是 由 eoFill
填充。矩形边界之间的区域只添加一次。因此,它 是由 eoFill
.
填充的
如果相应地安排子路径方向,您也可以使用正常的 fill
方法,例如
public void onEndPage(PdfWriter writer, Document document)
{
super.onEndPage(writer, document);
PdfContentByte content = writer.getDirectContent();
content.setColorFill(BaseColor.BLACK);
content.rectangle(writer.getPageSize().getRight(), writer.getPageSize().getBottom(),
-writer.getPageSize().getWidth(), writer.getPageSize().getHeight());
content.roundRectangle(35f,55f, 520f, 750f ,20f);
content.fill();
}
(完整样本:CreateWithFrame.java方法testCreateFramedDocumentFill
)
这里页面大小的矩形是负方向添加的,圆角矩形是正方向添加的。因此,对于圆角矩形的内部区域,子路径抵消并且 fill
调用不会填充。
如何在 itextsharp pdf 页面的边框 [四边] 外侧添加背景色 [不是边框线颜色] ..
我很喜欢这个..但它不适用于边框外侧的背景颜色..
content.EoFill();
content.EoFillStroke();
content.Fill();
content.FillStroke();
但不工作
public class pageborder : PdfPageEventHelper
{
public override void OnEndPage(PdfWriter writer, Document document)
{
base.OnEndPage(writer, document);
var content = writer.DirectContent;
content.SetColorStroke(BaseColor.BLACK);
content.RoundRectangle(35f,55f, 520f, 750f ,20f);
content.Stroke();
}
}
您有 copy/pasted 绘制页面边框的代码:
public class pageborder : PdfPageEventHelper
{
public override void OnEndPage(PdfWriter writer, Document document)
{
base.OnEndPage(writer, document);
var content = writer.DirectContent;
content.SetColorStroke(BaseColor.BLACK);
content.RoundRectangle(35f,55f, 520f, 750f ,20f);
content.Stroke();
}
}
很遗憾,您不理解所复制的内容。您确实需要将 Stroke()
替换为 Fill()
,但这将使用默认填充颜色填充矩形,而您没有定义任何填充颜色。
您还需要将 SetColorStroke()
替换为 SetColorFill()
。例如:
public class pageborder : PdfPageEventHelper
{
public override void OnEndPage(PdfWriter writer, Document document)
{
var content = writer.DirectContent;
content.SetColorFill(BaseColor.RED);
content.RoundRectangle(35f,55f, 520f, 750f ,20f);
content.Fill();
}
}
现在用红色填充圆角矩形。
How can I add back ground color [not border line color] at out side of border[four sides] of itextsharp pdf page
我认为这意味着您想要这样的东西:
您可以像这样通过覆盖 onEndPage
来创建它(这是 Java 代码,但相应的 C# 代码应该很容易从中导出):
public void onEndPage(PdfWriter writer, Document document)
{
super.onEndPage(writer, document);
PdfContentByte content = writer.getDirectContent();
content.setColorFill(BaseColor.BLACK);
content.rectangle(writer.getPageSize().getLeft(), writer.getPageSize().getBottom(),
writer.getPageSize().getWidth(), writer.getPageSize().getHeight());
content.roundRectangle(35f,55f, 520f, 750f ,20f);
content.eoFill();
}
(完整样本:CreateWithFrame.java方法testCreateFramedDocumentEoFill
)
这通过向路径添加另一个页面大小的矩形并使用奇偶填充来实现。由于内部区域作为原始圆角矩形和新矩形的一部分添加到路径中,即两次,它 不是 由 eoFill
填充。矩形边界之间的区域只添加一次。因此,它 是由 eoFill
.
如果相应地安排子路径方向,您也可以使用正常的 fill
方法,例如
public void onEndPage(PdfWriter writer, Document document)
{
super.onEndPage(writer, document);
PdfContentByte content = writer.getDirectContent();
content.setColorFill(BaseColor.BLACK);
content.rectangle(writer.getPageSize().getRight(), writer.getPageSize().getBottom(),
-writer.getPageSize().getWidth(), writer.getPageSize().getHeight());
content.roundRectangle(35f,55f, 520f, 750f ,20f);
content.fill();
}
(完整样本:CreateWithFrame.java方法testCreateFramedDocumentFill
)
这里页面大小的矩形是负方向添加的,圆角矩形是正方向添加的。因此,对于圆角矩形的内部区域,子路径抵消并且 fill
调用不会填充。