iText 7 - 居中对齐文字和段落

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iText 7 - 居中对齐文字和段落相关的知识,希望对你有一定的参考价值。

我试图对齐一个文本块,但结果不一致。这是我的代码的粗略概念:

baseCanvas.ShowTextAligned("Header 1", 555, 839, TextAlignment.CENTER, 0);
baseCanvas.ShowTextAligned("Test test test ...", 240, 809, TextAlignment.CENTER, 0);

这是PDF输出:

Output

但是我正在努力实现以下目标:Design

我已经检查了iText文档,但有没有办法在不创建表格和单元格的情况下执行此操作?

答案

当你这样做时:

baseCanvas.ShowTextAligned("Some text", x, y, TextAlignment.CENTER, 0);

然后你希望坐标(x, y)与文本"some text"的中间重合。

在您的代码片段中,您将围绕坐标(555, 839)的一些文本和围绕坐标(40, 809)的一些文本居中,这解释了差异。

由于您使用的是iText 7,为什么不利用现在可以轻松将Paragraph物体放置在绝对位置的事实? iText 7 jump-start tutorial for .NET已经介绍了一些基本构建模块,但Building blocks tutorial更深入。

看一下chapter 2的第一个例子并按照这样的方式进行调整:

PdfPage page = pdf.AddNewPage();
PdfCanvas pdfCanvas = new PdfCanvas(page);
Rectangle rectangle = new Rectangle(36, 650, 100, 100);
Canvas canvas = new Canvas(pdfCanvas, pdf, rectangle);
PdfFont font = PdfFontFactory.createFont(FontConstants.TIMES_ROMAN);
PdfFont bold = PdfFontFactory.createFont(FontConstants.TIMES_BOLD);
Text title =
    new Text("The Strange Case of Dr. Jekyll and Mr. Hyde").SetFont(bold);
Text author = new Text("Robert Louis Stevenson").SetFont(font);
Paragraph p = new Paragraph().Add(title).Add(" by ").Add(author);
p.SetTextAlignment(iText.Layout.Properties.TextAlignment.CENTER);
canvas.Add(p);
canvas.Close();

这应该在矩形(36, 650, 100, 100)中添加文本并将所有内容居中。

以上是关于iText 7 - 居中对齐文字和段落的主要内容,如果未能解决你的问题,请参考以下文章

word文字怎么垂直居中?

如何在Latex中插入伪代码

word2010插入公式以后无法调整公式左对齐、居中、右对齐等等,如何解决?

敲敲黑板 | 文字垂直方向对齐这样设置!

怎样设置文字右对齐 css

word文档里面的文字垂直方向上如何居中?