如果这是一个学校项目(我不确定你写的 “我正在从事一个“学习”项目”是什么意思),你可以通过以下方式向你的老师炫耀使用 iText 7 而不是过时的 iTextSharp。
顺便说一句:我们不再称它为 iTextSharp:它现在被称为 iText for .NET,这就解释了为什么 Stack Overflow 上不再有 iTextSharp 标记了。
iText 7 带有一个ColumnDocumentRenderer,允许您定义漂亮的列(参见教程的chapter 2)。大多数教程都是用 Java 编写的,因为一个优秀的 C# 开发人员应该知道如何阅读 Java,但也有一个带有列示例的 .NET 教程。见chapter 3.NET版iText 7快速入门教程:
Document document = new Document(pdf, ps);
//Set column parameters
float offSet = 36;
float columnWidth = (ps.GetWidth() - offSet * 2 + 10) / 3;
float columnHeight = ps.GetHeight() - offSet * 2;
//Define column areas
Rectangle[] columns = new Rectangle[] {
new Rectangle(offSet - 5, offSet, columnWidth, columnHeight),
new Rectangle(offSet + columnWidth, offSet, columnWidth, columnHeight),
new Rectangle(offSet + columnWidth * 2 + 5, offSet, columnWidth, columnHeight)
};
document.SetRenderer(new ColumnDocumentRenderer(document, columns));
如果您想要漂亮的选项卡,可以使用 TabStop 类,如构建块教程的 chapter 3 中所述。
但是,iText 5 代码远不如 iText 7 代码直观。如果您需要 iText 5 解决方案,我可以扩展我的答案,但请注意,如果我是你的老师,我会让你因使用 iText 5 而失败。所以在我给你一个 iText 5 答案之前,我需要一些书面证据证明您的老师坚持使用 iText 5 解决方案。