我想在页面中间画一条线,但我的代码在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();
}
如何在页面中间绘制线条?
答案 0 :(得分:2)
这里需要考虑的一些事项:
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);