使用C#实现TXT文本转换为PDF
作者:咕白m625
在日常开发和办公场景中,将纯文本(TXT)格式转换为 PDF 格式是常见需求。PDF 格式具备跨平台、格式稳定、不易篡改的特性,而 TXT 则更侧重内容存储,二者的格式转换能兼顾内容可读性与传播规范性。本文将介绍如何通过 C# 和 .NET 免费库实现 TXT 到 PDF 的转换。
一、环境准备
1. 核心库介绍
Free Spire.PDF for .NET 是一款免费的 PDF 操作类库,提供了 PDF 文档创建、编辑、格式转换等基础功能。需要注意的是,该免费版存在一定限制(如单文档转换页数上限),但完全满足 TXT 转 PDF 的基础需求。
2. 环境配置
- 开发环境:Visual Studio 或其他 C# IDE;
- 库安装:通过 NuGet 包管理器安装 Free Spire.PDF,执行以下 NuGet 命令:
Install-Package FreeSpire.PDF
二、TXT 转 PDF 核心实现步骤
TXT 纯文本转 PDF 的核心逻辑可拆解为「读取 TXT 内容→创建 PDF 载体→设置文本渲染格式→将文本绘制到 PDF→保存 PDF 文件」五个步骤,以下是完整实现代码及分步解析。
1. 完整实现代码
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;
using System.IO;
namespace ConvertTextToPdf
{
class Program
{
static void Main(string[] args)
{
try
{
// 1. 读取TXT文本文件内容
string txtFilePath = @"Input.txt";
string textContent = File.ReadAllText(txtFilePath, System.Text.Encoding.UTF8);
// 2. 创建PDF文档实例并添加空白页面
PdfDocument pdfDocument = new PdfDocument();
PdfPageBase pdfPage = pdfDocument.Pages.Add(); // 默认A4页面
// 3. 配置PDF文本渲染的字体
PdfTrueTypeFont pdfFont = new PdfTrueTypeFont("宋体", 18f, PdfFontStyle.Bold, true);
// 4. 配置文本布局规则
PdfTextLayout textLayout = new PdfTextLayout();
textLayout.Break = PdfLayoutBreakType.FitPage; // 内容适配页面
textLayout.Layout = PdfLayoutType.Paginate; // 内容超出时自动分页
// 5. 配置文本格式
PdfStringFormat textFormat = new PdfStringFormat();
textFormat.Alignment = PdfTextAlignment.Justify; // 文本两端对齐
textFormat.LineSpacing = 20f; // 设置行间距
// 6. 创建文本渲染组件并绑定格式
PdfTextWidget textWidget = new PdfTextWidget(textContent, pdfFont, PdfBrushes.Black);
textWidget.StringFormat = textFormat;
// 7. 定义文本渲染区域
RectangleF renderBounds = new RectangleF(
new PointF(10, 25),
new SizeF(pdfPage.Canvas.ClientSize.Width - 20, pdfPage.Canvas.ClientSize.Height - 30)
);
// 8. 将文本绘制到PDF页面
textWidget.Draw(pdfPage, renderBounds, textLayout);
// 9. 保存PDF文件
pdfDocument.SaveToFile("TextToPdf.pdf", FileFormat.PDF);
// 释放资源
pdfDocument.Close();
Console.WriteLine("TXT转PDF成功!");
}
catch (IOException ex)
{
Console.WriteLine("文件操作异常:" + ex.Message);
}
catch (Exception ex)
{
Console.WriteLine("转换失败:" + ex.Message);
}
}
}
}
2. 代码关键解析
(1)读取 TXT 内容
使用 File.ReadAllText 读取文本文件,建议显式指定编码(如UTF-8) —TXT 文件的默认编码可能因系统而异,未指定编码易导致中文等字符乱码。
(2)PDF 文档与页面创建PdfDocument 是整个 PDF 文档的核心实例,pdfDocument.Pages.Add() 会创建一个默认 A4 尺寸的空白页面,也可通过重载方法自定义页面大小(如 A3、自定义尺寸)。
(3)文本格式与布局配置
PdfTrueTypeFont:定义字体、字号和样式;PdfTextLayout:设置Paginate可实现「文本超出单页时自动新建页面」,避免内容被截断;PdfStringFormat:配置文本对齐方式(左对齐、居中、两端对齐)和行间距,提升 PDF 可读性;RectangleF:定义文本在页面中的渲染区域,预留边距避免文本紧贴页面边缘。
(4)文本绘制与 PDF 保存PdfTextWidget 是文本渲染的核心组件,通过 Draw 方法将文本绘制到指定页面和区域;最终通过 SaveToFile 保存 PDF 文件,支持指定保存路径。
本文展示的 C# TXT 文本转 PDF 方案,为中小型项目提供了代码量少,且无需依赖第三方工具(如Office、WkHtmlToPdf)的实用解决方案。通过合理的配置和优化,该方案能够满足大部分基础转换需求。
到此这篇关于使用C#将TXT文本转换为PDF的实现代码的文章就介绍到这了,更多相关C# TXT文本转为PDF内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
