在 A4 sheet iTextSharp 的中心画一条线
Draw a line in the center of an A4 sheet iTextSharp
我想在页面中间画一条线,但我的代码在 PDF 的页脚中生成了一条线
public void GeneratePdf()
{
Document document = new Document(PageSize.A4, 0, 0, 50, 50);
var output = new FileStream("doctest.pdf", FileMode.Create);
var writer = PdfWriter.GetInstance(document, output);
document.Open();
document.NewPage();
PdfContentByte contentByte = writer.DirectContent;
contentByte.SetLineWidth(1);
contentByte.MoveTo(0, 14);
contentByte.LineTo(document.PageSize.Width, 0);
contentByte.Stroke();
document.Close();
writer.Close();
}
如何在页面中间画线?
这里有几点需要考虑:
- 如果你想画一条横跨页面的线,你需要在开始和结束时设置相同的高度;在这里,您在
14
中开始行并将其绘制到 0
.
iTextSharp
以 用户单位 衡量事物。一个用户单位对应一个点。一英寸有 72 个点,所以如果你想把你的线放在第 14 英寸,你应该指定 14 * 72
- 作者的位置是从下往上;这就是为什么将
14
设置为行首时将其绘制在底部的原因。
考虑到这一点:如果您想在页面中间画线,只需使用页面大小:
contentByte.MoveTo(0, document.PageSize.Height / 2);
contentByte.LineTo(document.PageSize.Width, document.PageSize.Height / 2);
如果你想在另一个位置绘制它,在真实页面中测量你想要绘制线条的位置(以英寸为单位),从页面的总大小中减去它并乘以 72。即如果你想在离顶部 5 英寸的地方画线,考虑到 A4 尺寸是 8.3 * 11.7:
contentByte.MoveTo(0, (11.7f - 5f) * 72f);
contentByte.LineTo(document.PageSize.Width, (11.7f - 5f) * 72f);
我想在页面中间画一条线,但我的代码在 PDF 的页脚中生成了一条线
public void GeneratePdf()
{
Document document = new Document(PageSize.A4, 0, 0, 50, 50);
var output = new FileStream("doctest.pdf", FileMode.Create);
var writer = PdfWriter.GetInstance(document, output);
document.Open();
document.NewPage();
PdfContentByte contentByte = writer.DirectContent;
contentByte.SetLineWidth(1);
contentByte.MoveTo(0, 14);
contentByte.LineTo(document.PageSize.Width, 0);
contentByte.Stroke();
document.Close();
writer.Close();
}
如何在页面中间画线?
这里有几点需要考虑:
- 如果你想画一条横跨页面的线,你需要在开始和结束时设置相同的高度;在这里,您在
14
中开始行并将其绘制到0
. iTextSharp
以 用户单位 衡量事物。一个用户单位对应一个点。一英寸有 72 个点,所以如果你想把你的线放在第 14 英寸,你应该指定14 * 72
- 作者的位置是从下往上;这就是为什么将
14
设置为行首时将其绘制在底部的原因。
考虑到这一点:如果您想在页面中间画线,只需使用页面大小:
contentByte.MoveTo(0, document.PageSize.Height / 2);
contentByte.LineTo(document.PageSize.Width, document.PageSize.Height / 2);
如果你想在另一个位置绘制它,在真实页面中测量你想要绘制线条的位置(以英寸为单位),从页面的总大小中减去它并乘以 72。即如果你想在离顶部 5 英寸的地方画线,考虑到 A4 尺寸是 8.3 * 11.7:
contentByte.MoveTo(0, (11.7f - 5f) * 72f);
contentByte.LineTo(document.PageSize.Width, (11.7f - 5f) * 72f);