gpt4 book ai didi

c# - 使用 iText7 将文本写入段落中的固定位置

转载 作者:行者123 更新时间:2023-12-04 08:10:17 33 4
gpt4 key购买 nike

我尝试在 c# 中使用 iText7 编写带有标题、 Logo 和表格的 pdf 文件。
我以前从未使用过 iText7,因此我不知道如何将段落中的文本写入固定位置。
现在我只是使用制表位作为我的文本的 anchor 。但是这里的问题是,当字符串太长时,行中的所有内容都将被制表符移动,并且标题中的“列”不再对齐。
下图也是我想要实现的:
header with correct text alignment
这张图片显示了如果字符串太长会发生什么(在这个例子中我使用了一个长的用户名):
header with too long username
这是我用来编写一行标题的代码片段:

// generate 8 tabstops to split pdf in equal sections
List<TabStop> tabStops = new List<TabStop>();
for (uint i = 0; i < 8; i++)
{
float tabSize = pageSize.GetWidth() / 8;
tabStops.Add(new TabStop(tabSize, TabAlignment.LEFT));
}

Paragraph p = new Paragraph();
p.SetFontSize(10);

// add tabstops to paragraph for text alignment
p.AddTabStops(tabStops);

// add title of header
p.Add(title1).Add("\n");

// write line one of header
p.Add("Serie: ").Add(new Tab()).Add(info.serial.ToString())
.Add(new Tab()).Add(new Tab())
.Add("Input CSV: ").Add(new Tab()).Add(info.inputFileName)
.Add(new Tab()).Add(new Tab()).Add("Out-Series: ")
.Add(info.serial.ToString()).Add("\n");
// line 2...
p.Add("User: ").Add(new Tab()).Add(info.username)
.Add(new Tab()).Add(new Tab()).Add(new Tab())
.Add("qPCR-Datei: ").Add(new Tab()).Add(info.qpcr1FileName)
.Add(new Tab()).Add(new Tab()).Add(new Tab())
.Add("STR-Out: ").Add(strFileName).Add("\n");
我希望有人可以帮助我向我展示一种更好的文本对齐方式或有信息可以查看。
另一个不错的提示是如何将换行符保留在同一制表位部分。例如,如果文件名太长(图片中的“STR-Out:”),则将执行换行符,但新行中的文件名部分应保留在“STR-OUT:”后面的制表位

最佳答案

代替 Tab/Tabspace 使用表格和单元格,以便正确对齐。
创建第 8 列大小的表(标签、值、空格、标签、值、空格、标签、值)
使用此示例代码。PdfPTable table = new PdfPTable(8);PdfPCell cell;cell = new PdfPCell();cell.setRowspan(2); //only if spanning neededtable.addCell(cell);for(int aw=0;aw<8;aw++){table.addCell("hi");}

关于c# - 使用 iText7 将文本写入段落中的固定位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66008312/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com