You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#中借助PdfPig批量移除字符串中的格式字符?

一次性移除HTML转义字符与标签的解决方案

核心思路

先对转义文本做HTML实体解码,再批量清理HTML标签,就能一次性处理完所有格式字符,无需逐个移除。

具体实现步骤

  • 用System.Net.WebUtility.HtmlDecode解码所有HTML实体(比如把&amp;lt;p&amp;gt;转成<p>,&amp;nbsp;转成空格)
  • 借助正则表达式移除所有HTML标签(如<p>、</p>这类)
  • 最后清理文本中的多余空格,整理成可用格式

C#代码示例(结合PdfPig)

using System;
using System.Text.RegularExpressions;
using System.Net;
using UglyToad.PdfPig;
using UglyToad.PdfPig.Core;
using UglyToad.PdfPig.Content;

public class HtmlToPdfProcessor
{
    public static void ConvertCleanTextToPdf(string rawEscapedHtml)
    {
        // 1. 解码HTML实体
        string decodedText = WebUtility.HtmlDecode(rawEscapedHtml);
        
        // 2. 移除所有HTML标签
        string tagFreeText = Regex.Replace(decodedText, @"<[^>]+>", string.Empty);
        
        // 3. 清理多余空格和无效字符
        string cleanedText = Regex.Replace(tagFreeText, @"\s+", " ").Trim();
        
        // 4. 按列表符号拆分内容
        string[] listItems = cleanedText.Split(new[] { "·" }, StringSplitOptions.RemoveEmptyEntries);
        
        // 用PdfPig生成PDF文档
        using (var document = PdfDocument.Create())
        {
            var page = document.AddPage();
            var contentStream = page.ContentStream;
            
            float yPos = page.Height - 50;
            float xPos = 50;
            
            // 添加标题
            contentStream.ShowText("Examples of vulnerability triggers:", new PdfPoint(xPos, yPos));
            yPos -= 20;
            
            // 添加列表项
            foreach (var item in listItems)
            {
                contentStream.ShowText($"- {item.Trim()}", new PdfPoint(xPos + 10, yPos));
                yPos -= 15;
            }
            
            document.Save(@"vulnerability_triggers.pdf");
        }
    }
}

补充说明

  • WebUtility.HtmlDecode是.NET核心库自带方法,无需额外引用System.Web,适配.NET Core/.NET 5+所有项目
  • 正则表达式<[^>]+>可匹配任意HTML标签,若需保留特定标签,可修改表达式规则(比如保留<b>标签就调整为@"<(?!b|/b)[^>]+>")

内容的提问来源于stack exchange,提问作者Matt Farrell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 07:15:49