使用 iTextSharp 更改 PDF 的字体

2023-11-29

如何在 C# 中使用 iTextSharp 更改现有 PDF 文件的字体?

我想将整个文档的字体更改为一种,例如宋体


最后我解决了这个问题。 下面的代码将打开一个现有的 Pdf 文件,并按照我的预期将其所有字体更改为“盲文”。

 private static void ChangeFont()
        {


            string strFile = @"E:\\xyz.pdf";
            string OutputFile = @"E:\\xyz1.pdf";
            PdfReader pdfReader = new PdfReader(strFile);

            //Get first page,Generally we get font information on first page,however we can loop throw pages e.g for(int i=0;i<=pdfReader.NumberOfPages;i++)
                PdfDictionary cpage = pdfReader.GetPageN(1);
                if (cpage == null)
                    return;
                PdfDictionary dictFonts = cpage.GetAsDict(PdfName.RESOURCES).GetAsDict(PdfName.FONT);
                if (dictFonts != null)
                {
                    foreach (var font in dictFonts)
                    {
                        var dictFontInfo = dictFonts.GetAsDict(font.Key);

                        if (dictFontInfo != null)
                        {
                            foreach (var f in dictFontInfo)
                            {
                                //Get the font name-optional code
                                var baseFont = dictFontInfo.Get(PdfName.BASEFONT);
                                string strFontName = System.Text.Encoding.ASCII.GetString(baseFont.GetBytes(), 0,
                                                                                          baseFont.Length);
                                //


                                //Remove the current font
                                dictFontInfo.Remove(PdfName.BASEFONT);
                                //Set new font eg. Braille, Areal etc
                                dictFontInfo.Put(PdfName.BASEFONT, new PdfString("Braille"));
                                break;

                            }
                        }


                    }

            }

            //Now create a new document with updated font
            using (FileStream FS = new FileStream(OutputFile, FileMode.Create, FileAccess.Write, FileShare.None))
            {
                using (Document Doc = new Document())
                {
                    using (PdfCopy writer = new PdfCopy(Doc, FS))
                    {
                        Doc.Open();
                        for (int j = 1; j <= pdfReader.NumberOfPages; j++)
                        {
                            writer.AddPage(writer.GetImportedPage(pdfReader, j));
                        }
                        Doc.Close();
                    }
                }
            }
            pdfReader.Close();

        } 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 iTextSharp 更改 PDF 的字体 的相关文章

随机推荐

  • 在“订单”页面中显示产品图片 - Woocommerce

    这是我第一次与 WC 合作 我正在用这个来追赶我的尾巴 在 订单 页面中 客户可以看到他们进行的所有购买 该数组显示了有关订单的一些基本信息 我还需要展示客户购买的产品的图片 订单好像是自定义帖子 但是如何获取图片产品呢 我意识到这个问题太
  • 显示列表视图后尝试以编程方式设置 LISTVIEW 内的 SWITCH 状态

    所以我有一个警报列表 并将其绑定到列表视图 lstAlarms 在我的自定义 ListView 布局中 我还有一个开关 我想根据警报的状态以编程方式设置它 我想在 ListView 显示后立即执行此操作 请参阅下面我的代码 显示ListVi
  • 使用 Silverlight 在 WP7 应用程序中显示 GIF

    我想在我的 WP7 应用程序中显示 gif 有什么方法可以实现这一点吗 我试过这个http imagetools codeplex com 但无法使其与 WP7 一起使用 预先感谢您的任何帮助 实际上 它正在工作 但缺少一些文档 经历了一些
  • 如何使用 PHP 和 cURL 提交 POST 数据?

    任何人都可以帮助我如何使用 PHP 和 cURL 将数据从表单 POST 发送到 URL 使用 cURL 我想要完成的就是发送数据 我不想被重定向 也不想获得任何类型的输出 HTML 或文本 只需提交数据即可 很高兴知道数据是否已成功提交
  • 将标题与图像对齐

    JSFiddle 我的图形中有一个图像 该图像具有以下样式 height 300px max width 300px display block margin 0 auto 图像必须居中 图像下方的标题必须与图像的左下角左对齐 并且宽度不得
  • Ionic 2 构建类型错误:无法读取未定义的属性“AssetUrl”

    Ionic 2 CLI 构建失败给我以下错误 TypeError 无法读取未定义的属性 AssetUrl 我的研究引导我这个线程 and this one 两个线程都建议修改 package json 文件并删除 dependencies
  • 如何为Android库项目指定多个源目录

    我正在使用 ant 工具构建 android 库项目 我需要指定多个源目录 我尝试通过在 ant properties 文件中交替添加这些行来指定多个源目录 source dir src src2 source dir src src2 但
  • 从 PyQT5 检索 QtTableWidget 单元格的内容

    我有一些数据想要在QtTableWidget 我希望能够选择表的特定行 并根据所选行执行函数 专栏并不重要 这是我正在使用的数据示例 Id Test name Owner Script source 1 Login 1 test login
  • 安装 Azure U-SQL 扩展以在本地运行 R/Python 脚本?

    我们可以在 Azure Data Lake Analytics 中使用 R Python 代码扩展 U SQL 脚本 但如何在本地进行呢 在您的数据湖分析帐户中安装 U SQL 高级分析扩展1 1 启动 Azure 门户1 2 导航到您的数
  • JavaFX(8)警报:不同的按钮尺寸

    考虑一个带有两个按钮的 JavaFX 8 警报对话框 Alert alert new Alert AlertType CONFIRMATION ButtonType bttYes new ButtonType Yes ButtonType
  • AngularJS 中的 404 错误

    你好 我是 AngularJS 的新手 我开始于本教程 在教程中 http get方法正在调用 JSON 文件 就我而言 我总是收到 404 错误 JSON 文件的位置也与 HTML 文件相关 但总是遇到同样的错误 这是我的代码 索引 ht
  • 在同一页面内将变量从 JS 传递到 PHP [关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我知道这个问题已经被回答过很多次了 但我正在寻找的是同一页面内变量的传递 我知道PHP是服务器端脚本 而JS是客户端 因此当页面加载时 它将在JS之前加载PHP 因此不可能这样做 我正
  • LINQ to XML:查询正文必须以 select 子句或 group 子句结尾

    有人可以指导我修复此查询的错误 var objApps from item in xDoc Descendants VHost where from x in item Descendants Application select new
  • 不变是什么意思?

    如果字符串是不可变的 这是否意味着 我们假设是 JavaScript var str foo alert str substr 1 oo alert str foo 这是否意味着 当对字符串调用方法时 它将返回修改后的字符串 但不会更改初始
  • TensorFlowdynamic_rnn状态

    我的问题是关于 TensorFlow 方法tf nn dynamic rnn 它返回每个时间步的输出和最终状态 我想知道返回的最终状态是否是最大序列长度下的单元状态 或者是否由sequence length争论 为了更好地理解一个例子 我有
  • MongoDB:使用变量进行文本搜索(精确匹配)

    MongoDB 3 4我有一个变量值 val1 小堡垒 我需要在集合存储中搜索 名称字段上有文本索引 文档为 db stores insert id 1 name Java Hut description Coffee and cakes
  • 如何检查 Receiver 是否在 Android 中注册?

    我需要检查我注册的接收者是否仍然注册 如果没有 我该如何检查它 没有 API 函数来检查接收者是否已注册 解决方法是将您的代码放在try catch block as done below try Register or UnRegiste
  • 如何提供 Google 地图实例的屏幕截图?

    我想实现一个与此类似的地图 http gmaps utility library googlecode com svn trunk markerclusterer 1 0 examples advanced example html 所需的
  • 尝试从 PGAdmin 导入 CSV 文件时权限被拒绝

    我正在使用 PGAdmin 1 14 3 当我尝试执行导入命令时 COPY grad country code postal code place name admin name1 admin code1 admin name2 admin
  • 使用 iTextSharp 更改 PDF 的字体

    如何在 C 中使用 iTextSharp 更改现有 PDF 文件的字体 我想将整个文档的字体更改为一种 例如宋体 最后我解决了这个问题 下面的代码将打开一个现有的 Pdf 文件 并按照我的预期将其所有字体更改为 盲文 private sta