网站首页 全球最实用的IT互联网站!

人工智能P2P分享Wind搜索发布信息网站地图标签大全

当前位置:诺佳网 > 软件工程 > 后端开发 > .Net >

C# 如何将 TXT 文本转换为 PDF

时间:2026-02-09 16:00

人气:

作者:admin

标签:

导读:在日常开发和办公场景中,将纯文本(TXT)文件转换为 PDF 格式是一项常见需求。PDF 格式具备跨平台、样式固定、不易被篡改等特点,而 TXT 格式则更侧重于内容的轻量存储。二者之间的...

在日常开发和办公场景中,将纯文本(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。可在程序包管理器控制台中执行以下命令:
    Install-Package FreeSpire.PDF
    

二、TXT 转 PDF 实现步骤

转换过程可归纳为以下核心步骤:

  1. 读取 TXT 文件内容
  2. 创建 PDF 文档与页面
  3. 设置文本字体与样式
  4. 定义文本布局与格式
  5. 将文本绘制到 PDF 并保存

完整实现代码

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 文档并添加 A4 页面
                PdfDocument pdfDocument = new PdfDocument();
                PdfPageBase pdfPage = pdfDocument.Pages.Add();

                // 3. 设置字体(字体名称、大小、样式)
                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("转换完成,PDF 已保存。");
            }
            catch (IOException ex)
            {
                Console.WriteLine("文件读写异常:" + ex.Message);
            }
            catch (Exception ex)
            {
                Console.WriteLine("转换过程中出现错误:" + ex.Message);
            }
        }
    }
}

关键代码说明

  1. 读取 TXT 内容
    使用 File.ReadAllText 并明确指定编码(如 UTF-8),可避免因系统默认编码不同而导致的中文乱码问题。

  2. 创建 PDF 页面
    PdfDocument.Pages.Add() 默认添加 A4 尺寸的页面。可通过重载方法自定义页面尺寸,例如 PdfPageSize.A3

  3. 文本样式与布局配置

    • 字体PdfTrueTypeFont 支持系统中已安装的 TrueType 字体。
    • 布局PdfTextLayoutPaginate 属性确保文本超出当前页面时自动分页。
    • 格式PdfStringFormat 可设置对齐方式、行间距等,提升排版效果。
    • 绘制区域:通过 RectangleF 设置文本绘制范围,并预留边距使文档更美观。
  4. 绘制与保存
    PdfTextWidget 负责将文本内容与样式绑定,并通过 Draw 方法渲染到 PDF 页面。最后调用 SaveToFile 保存文件。


本文演示的 C# 实现方案,通过 Free Spire.PDF for .NET 库,以少量代码完成了 TXT 到 PDF 的转换。该方法无需依赖 Office 或第三方命令行工具,适合集成到中小型 .NET 项目中,满足日常文档格式转换的基本需求。

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信