C#开发 使用iTextSharp组件在pdf文件中写入表格

目录

准备工作

1.新建Project

2.下载iTextSharp

示例

1.实现效果

2.完整代码


iTextSharp是一个开源组件,可用于生成pdf文档。这里记录一下我用iTextSharp创建pdf文档、写入表格的方法。

目前iTextSharp已被iText7所取代,推荐新项目使用iText7。

NuGet Gallery | iTextSharp 5.5.13.3

准备工作

1.新建Project

选择Console App类型(.NET Framework 4.5.2)。

2.下载iTextSharp

右键Project,选择[Manage Nuget Package]。

搜索iTextSharp并下载最后更新的版本。

示例

1.实现效果

生成pdf文件,并写入表格。最终产物如下。

2.完整代码

实现方法基本可以分成以下几步:

1) 创建FileStream,

2) 创建iTextSharp.text.Document,

3) 创建iTextSharp.text.pdf.PdfWriter,

4) Open document,

5) 写入数据,步骤大致为 Document <- Paragraph <- PdfPTable <- PdfPCell

6) Close document.

运行通过的完整代码如下。

using System;
using System.Collections.Generic;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;


namespace PdfSample
{
    public class Program
    {
		static void Main(string[] args)
        {
			// PDF文件目标生成路径
			string targetFilepath = "D:/output_table.pdf";

			// 创建文件流
			using (FileStream fs = new FileStream(targetFilepath, FileMode.Create, FileAccess.Write, FileShare.None))
			// 创建A4大小的document,设置页边距
			using (Document document = new Document(PageSize.A4,20,20,30,30)) 
			using (PdfWriter writer = PdfWriter.GetInstance(document, fs))
			{
				// 打开document
				document.Open();

				// 创建自定义字体
				Font boldFont = new Font(Font.FontFamily.TIMES_ROMAN, 20, Font.BOLD);
				Font cellFont = new Font(Font.FontFamily.TIMES_ROMAN, 10);

				// 添加文字,设置字体,设置水平居中
				Paragraph para1 = new Paragraph("Document Title", boldFont);
				para1.Alignment = Rectangle.ALIGN_CENTER;
				document.Add(para1);

				// 添加文字,设置段前距离
				Paragraph para2 = new Paragraph("Subtitle");
				para2.FirstLineIndent = 55;
				document.Add(para2);

				// 添加空行
				Paragraph emptyline = new Paragraph(" ");
				document.Add(emptyline);

				// 创建一个4列的表格,并设置列宽
				PdfPTable table = new PdfPTable(4);
				table.SetWidths(new float[] { 1f, 2f, 3f, 1f });

				string[] tableHeader1 = { "col1 ", "col2", "col3", "col4" };
				PdfPCell cell;
				foreach (string th1 in tableHeader1)
				{
					cell = new PdfPCell(new Phrase(th1, cellFont));
					// 设置单元格背景色
					cell.BackgroundColor = new BaseColor(176, 224, 230);

					// 设置文字水平居中、垂直居中
					cell.HorizontalAlignment = Element.ALIGN_CENTER;
					cell.VerticalAlignment = Element.ALIGN_MIDDLE;

					// 把cell添加到table
					table.AddCell(cell);
				}

				// 创建list作为数据源
				List<string> list = new List<string>();
				for (int i = 0; i < 8; i++)
				{
					list.Add("value_"+ i.ToString());
				}

				// 将list中的数据添加到table
				PdfPCell cell1;
				foreach (string data in list)
				{
					cell1 = new PdfPCell(new Phrase(data, cellFont));
					// 设置单元格最小高度
					cell1.MinimumHeight = 20;
					table.AddCell(cell1);
				}

				// 将table添加到document
				document.Add(table);

				// 关闭document
				document.Close();
			}

			Console.WriteLine("done");
			Console.ReadKey();
		}
	}

}

运行以后会在D盘下面生成'output_table.pdf'这个文件。

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很抱歉,我并不是一个可以展示代码的应用程序,也无法进行详细的教学。但我可以给你一些指导: iTextSharp 是一个用于创建和操作 PDF 文件C# 库。它可以用来添加水印、文本、图片和表单域等元素到 PDF 文件。 下面是一个简单的示例,展示如何使用 iTextSharpPDF 文件添加一个文本水印: ```csharp using iTextSharp.text; using iTextSharp.text.pdf; // 打开需要添加水印的 PDF 文件 PdfReader reader = new PdfReader("input.pdf"); // 创建一个输出流,用于将修改后的 PDF 写入文件 PdfStamper stamper = new PdfStamper(reader, new FileStream("output.pdf", FileMode.Create)); // 创建一个字体对象,用于设置水印的字体和大小 BaseFont bf = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); Font font = new Font(bf, 48); // 在 PDF 的每个页面上添加一个文本水印 int pageCount = reader.NumberOfPages; for (int i = 1; i <= pageCount; i++) { // 获取该页面的 PDF 内容 PdfContentByte content = stamper.GetUnderContent(i); // 创建一个列对象,用于设置水印的位置和旋转角度 ColumnText column = new ColumnText(content); // 设置水印的位置和旋转角度 column.SetSimpleColumn(new Phrase("水印文本", font), 0, 0, 0, 0, 0, Element.ALIGN_CENTER); // 设置水印的旋转角度 column.Alignment = Element.ALIGN_CENTER; column.SetTextMatrix(30, 30); column.Angle = 45; // 将水印添加到页面 column.Go(); } // 关闭输出流和输入流 stamper.Close(); reader.Close(); ``` 这是一个简单的示例,仅用于演示如何使用 iTextSharp 添加水印。如果你需要更详细的教程或更复杂的功能,请参考 iTextSharp 的官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值