C# 怎样将 TXT 文本转换为 PDF [复制链接]
发表于 2026-2-9 19:11:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
在一样平常开发和办公场景中,将纯文本(TXT)文件转换为 PDF 格式是一项常见需求。PDF 格式具备跨平台、样式固定、不易被篡改等特点,而 TXT 格式则更侧重于内容的轻量存储。二者之间的转换可以分身内容的可读性与文档的规范性与便携性。本文将先容怎样通过 C# 和免费的 .NET 类库实现 TXT 到 PDF 的高效转换。
一、情况准备

1. 焦点库简介

Free Spire.PDF for .NET 是一个功能丰富的免费 PDF 利用库,支持 PDF 文档的创建、编辑、归并、转换等底子功能。免费版本对部门高级功能或处置惩罚规模有肯定限定(比方单次转换的页数上限),但对于通例的 TXT 转 PDF 任务完全够用。
2. 情况设置


  • 开发情况:Visual Studio 2022 或更高版本,或其他支持 .NET 的 IDE。
  • 库安装:通过 NuGet 包管理器安装 FreeSpire.PDF。可在步调包管理器控制台中实验以下下令:
    1. Install-Package FreeSpire.PDF
    复制代码
二、TXT 转 PDF 实现步调

转换过程可归纳为以下焦点步调:

  • 读取 TXT 文件内容
  • 创建 PDF 文档与页面
  • 设置文本字体与样式
  • 界说文本布局与格式
  • 将文本绘制到 PDF 并生存
完备实当代码
  1. using Spire.Pdf;
  2. using Spire.Pdf.Graphics;
  3. using System.Drawing;
  4. using System.IO;
  5. namespace ConvertTextToPdf
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             try
  12.             {
  13.                 // 1. 读取 TXT 文件内容(建议指定编码,避免乱码)
  14.                 string txtFilePath = @"Input.txt";
  15.                 string textContent = File.ReadAllText(txtFilePath, System.Text.Encoding.UTF8);
  16.                 // 2. 创建 PDF 文档并添加 A4 页面
  17.                 PdfDocument pdfDocument = new PdfDocument();
  18.                 PdfPageBase pdfPage = pdfDocument.Pages.Add();
  19.                 // 3. 设置字体(字体名称、大小、样式)
  20.                 PdfTrueTypeFont pdfFont = new PdfTrueTypeFont("宋体", 18f, PdfFontStyle.Bold, true);
  21.                 // 4. 设置文本布局
  22.                 PdfTextLayout textLayout = new PdfTextLayout();
  23.                 textLayout.Break = PdfLayoutBreakType.FitPage; // 内容适配页面
  24.                 textLayout.Layout = PdfLayoutType.Paginate;    // 超出自动分页
  25.                 // 5. 设置文本格式
  26.                 PdfStringFormat textFormat = new PdfStringFormat();
  27.                 textFormat.Alignment = PdfTextAlignment.Justify; // 两端对齐
  28.                 textFormat.LineSpacing = 20f;                    // 行间距
  29.                 // 6. 创建文本绘制组件
  30.                 PdfTextWidget textWidget = new PdfTextWidget(textContent, pdfFont, PdfBrushes.Black);
  31.                 textWidget.StringFormat = textFormat;
  32.                 // 7. 定义绘制区域(预留页边距)
  33.                 RectangleF renderBounds = new RectangleF(
  34.                     new PointF(10, 25),
  35.                     new SizeF(pdfPage.Canvas.ClientSize.Width - 20, pdfPage.Canvas.ClientSize.Height - 30)
  36.                 );
  37.                 // 8. 将文本绘制到 PDF 页面
  38.                 textWidget.Draw(pdfPage, renderBounds, textLayout);
  39.                 // 9. 保存为 PDF 文件
  40.                 pdfDocument.SaveToFile("TextToPdf.pdf", FileFormat.PDF);
  41.                 // 释放资源
  42.                 pdfDocument.Close();
  43.                 Console.WriteLine("转换完成,PDF 已保存。");
  44.             }
  45.             catch (IOException ex)
  46.             {
  47.                 Console.WriteLine("文件读写异常:" + ex.Message);
  48.             }
  49.             catch (Exception ex)
  50.             {
  51.                 Console.WriteLine("转换过程中出现错误:" + ex.Message);
  52.             }
  53.         }
  54.     }
  55. }
复制代码
关键代码阐明


  • 读取 TXT 内容
    使用 File.ReadAllText 并明白指定编码(如 UTF-8),可克制因体系默认编码差别而导致的中文乱码题目。
  • 创建 PDF 页面
    PdfDocument.Pages.Add() 默认添加 A4 尺寸的页面。可通过重载方法自界说页面尺寸,比方 PdfPageSize.A3。
  • 文本样式与布局设置

    • 字体:PdfTrueTypeFont 支持体系中已安装的 TrueType 字体。
    • 布局:PdfTextLayout 的 Paginate 属性确保文本超出当前页面时主动分页。
    • 格式:PdfStringFormat 可设置对齐方式、行间距等,提拔排版效果。
    • 绘制地区:通过 RectangleF 设置文本绘制范围,并预留边距使文档更雅观。

  • 绘制与生存
    PdfTextWidget 负责将文本内容与样式绑定,并通过 Draw 方法渲染到 PDF 页面。末了调用 SaveToFile 生存文件。
本文演示的 C# 实现方案,通过 Free Spire.PDF for .NET 库,以少量代码完成了 TXT 到 PDF 的转换。该方法无需依赖 Office 或第三方下令行工具,得当集成到中小型 .NET 项目中,满意一样平常文档格式转换的根本需求。

免责声明:如果侵犯了您的权益,请联系站长及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金.
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表