使用C#实现TXT文本转换为PDF

 更新时间:2026年02月10日 08:18:50   作者:咕白m625  
在日常开发和办公场景中,将纯文本(TXT)格式转换为 PDF 格式是常见需求,本文将介绍如何通过 C# 和 .NET 免费库实现 TXT 到 PDF 的转换,需要的朋友可以参考下

在日常开发和办公场景中,将纯文本(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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#实现更改MDI窗体背景颜色的方法

    C#实现更改MDI窗体背景颜色的方法

    这篇文章主要介绍了C#实现更改MDI窗体背景颜色的方法,涉及C#窗体背景色的设置技巧,非常简单实用,需要的朋友可以参考下
    2015-08-08
  • C# 获得本地通用网卡信息的示例代码

    C# 获得本地通用网卡信息的示例代码

    这篇文章主要介绍了C# 获得本地通用网卡信息的示例代码,帮助大家更好的理解和学习c#,感兴趣的朋友可以了解下
    2020-08-08
  • implicit关键字做自定义类型隐式转换的方法

    implicit关键字做自定义类型隐式转换的方法

    implicit 关键字用于声明隐式的用户定义类型转换运算符。如果转换过程可以确保不会造成数据丢失,则可使用该关键字在用户定义类型和其他类型之间进行隐式转换,这篇文章就给大家详细介绍implicit关键字做自定义类型隐式转换的方法,需要的朋友可以参考下
    2015-08-08
  • Unity 实现鼠标滑过UI时触发动画的操作

    Unity 实现鼠标滑过UI时触发动画的操作

    这篇文章主要介绍了Unity 实现鼠标滑过UI时触发动画的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • C#日期转换函数分享

    C#日期转换函数分享

    这篇文章介绍了C#日期转换函数,有需要的朋友可以参考一下
    2013-10-10
  • C#实现UDP打洞的示例代码

    C#实现UDP打洞的示例代码

    这篇文章主要为大家详细介绍了C#中实现UDP打洞的相关知识,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以参考一下
    2024-01-01
  • C#中结构体和字节数组转换实现

    C#中结构体和字节数组转换实现

    这篇文章主要介绍了C#中结构体和字节数组转换实现,本文直接给出了字节数组与结构体的转换代码,代码中包含详细注释,需要的朋友可以参考下
    2015-06-06
  • C#中如何使用Chart图表问题

    C#中如何使用Chart图表问题

    这篇文章主要介绍了C#中如何使用Chart图表问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • C# 图片格式转换的实例代码

    C# 图片格式转换的实例代码

    这篇文章主要介绍了C# 图片格式转换的实例代码,文中讲解非常详细,帮助大家更好的理解和学习c#,感兴趣的朋友可以了解下
    2020-08-08
  • C#简单读取、改变文件的创建、修改及访问时间的方法

    C#简单读取、改变文件的创建、修改及访问时间的方法

    这篇文章主要介绍了C#简单读取、改变文件的创建、修改及访问时间的方法,涉及C#文件类SetCreationTime、SetLastWriteTime及SetLastAccessTime的相关使用技巧,需要的朋友可以参考下
    2015-07-07

最新评论