gpt4 book ai didi

c# - 使用 iTextSharp 将 block 的一部分右对齐

转载 作者:行者123 更新时间:2023-12-02 21:54:03 24 4
gpt4 key购买 nike

我是 iTextSharp 新手,我正在尝试创建 PDF。只是一个简单的例子。如果我做这样的事情:

Paragraph p = new Paragraph();

p.Add(new Chunk("789456|Test", f5));
newDocument.Add(p);
p.Add(new Chunk("456|Test", f5));
newDocument.Add(p);
p.Add(new Chunk("12345|Test", f5));
newDocument.Add(p);

我得到这个结果:

789456|Test
456|Test
12345|Test

我可以做什么来右对齐我的 block 中的部分文本。像这样:

789456|Test
456|Test
12345|Test

提前致谢。

最佳答案

请看一下以下示例:chapter 4。他们引入了 PdfPTable 的概念。而不是创建像这样的 "789456|Test" 这样的 Chunk 对象,然后做不可能的事情来拥有这些 Chunk 内容的单独部分如果正确对齐,您会发现创建一个包含 2 列的简单 PdfPTable 更加容易,添加 "789456|""Test" > 作为无边界单元格的内容。所有其他解决方法都将不可避免地导致代码更加复杂且容易出错。

卡尔·安德森 (Karl Anderson) 提供的答案要复杂得多; Manish Sharma 提供的答案是错误的。虽然我不懂 C#,但我尝试编写一个示例(基于我如何在 Java 中实现此目的):

PdfPTable table = new PdfPTable(2);
table.DefaultCell.Border = PdfPCell.NO_BORDER;
table.DefaultCell.VerticalAlignment = Element.ALIGN_RIGHT;
table.DefaultCell.HorizontalAlignment = Element.ALIGN_RIGHT;
table.addCell(new Phrase("789456|", f5));
table.DefaultCell.HorizontalAlignment = Element.ALIGN_LEFT;
table.addCell(new Phrase("Test", f5));
table.DefaultCell.HorizontalAlignment = Element.ALIGN_RIGHT;
table.addCell(new Phrase("456|", f5));
table.DefaultCell.HorizontalAlignment = Element.ALIGN_LEFT;
table.addCell(new Phrase("Test", f5));
table.DefaultCell.HorizontalAlignment = Element.ALIGN_RIGHT;
table.addCell(new Phrase("12345|", f5));
table.DefaultCell.HorizontalAlignment = Element.ALIGN_LEFT;
table.addCell(new Phrase("Test", f5));
doc.Add(table);

请注意,表格的默认宽度是可用宽度(边距之间的水平空间)的 80%,并且表格默认居中对齐。您可能想使用 WidthPercentageHorizontalAlignment 更改这些默认值

关于c# - 使用 iTextSharp 将 block 的一部分右对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18088097/

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