首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在ItextSharp(PdfStamper)中增加PDF字段的字体大小?

在ITextSharp中,要增加PDF字段的字体大小,可以通过以下步骤实现:

  1. 首先,确保已安装了iTextSharp库。如果尚未安装,可以使用NuGet包管理器进行安装。
  2. 在C#项目中,导入以下命名空间:
代码语言:csharp
复制
using System;
using System.IO;
using iTextSharp.text.pdf;
using iTextSharp.text.pdf.interfaces;
  1. 创建一个方法,该方法接受一个PDF文件的路径,并返回一个修改后的PDF文件的路径。
代码语言:csharp
复制
public static string IncreaseFontSize(string inputPdf)
{
    string outputPdf = Path.GetTempFileName();
    using (PdfReader pdfReader = new PdfReader(inputPdf))
    {
        using (PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(outputPdf, FileMode.Create)))
        {
            AcroFields acroFields = pdfStamper.AcroFields;
            foreach (string fieldName in acroFields.Fields.Keys)
            {
                AcroFields.Item item = acroFields.GetFieldItem(fieldName);
                foreach (var field in item)
                {
                    PdfDictionary widget = field.GetWidget(0);
                    PdfDictionary ap = widget.GetAsDict(PdfName.AP);
                    if (ap != null)
                    {
                        PdfObject n = ap.Get(PdfName.N);
                        if (n is PdfIndirectReference)
                        {
                            n = ((PdfIndirectReference)n).GetRefersTo(true);
                        }
                        if (n is PdfDictionary)
                        {
                            PdfDictionary nAppearanceDict = (PdfDictionary)n;
                            PdfObject defaultAppearance = nAppearanceDict.Get(PdfName.DA);
                            if (defaultAppearance != null)
                            {
                                string da = defaultAppearance.ToString();
                                float fontSize = GetFontSize(da);
                                da = UpdateFontSize(da, fontSize * 1.5f);
                                nAppearanceDict.Put(PdfName.DA, new PdfString(da));
                            }
                        }
                    }
                }
            }
        }
    }
    return outputPdf;
}
  1. 实现GetFontSizeUpdateFontSize方法,以获取当前字体大小并更新字体大小。
代码语言:csharp
复制
private static float GetFontSize(string defaultAppearance)
{
    string[] parts = defaultAppearance.Split(' ');
    foreach (string part in parts)
    {
        if (part.StartsWith("Tf"))
        {
            string[] fontSizeParts = part.Split(' ');
            return float.Parse(fontSizeParts[1]);
        }
    }
    return 0;
}

private static string UpdateFontSize(string defaultAppearance, float newFontSize)
{
    string[] parts = defaultAppearance.Split(' ');
    for (int i = 0; i< parts.Length; i++)
    {
        if (parts[i].StartsWith("Tf"))
        {
            string[] fontSizeParts = parts[i].Split(' ');
            fontSizeParts[1] = newFontSize.ToString();
            parts[i] = string.Join(" ", fontSizeParts);
        }
    }
    return string.Join(" ", parts);
}

现在,您可以使用IncreaseFontSize方法增加PDF字段的字体大小。例如:

代码语言:csharp
复制
string inputPdf = "path/to/input.pdf";
string outputPdf = IncreaseFontSize(inputPdf);

这样,您就可以在ITextSharp中增加PDF字段的字体大小了。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用iText5来处理PDF

项目要求,通过pdf模板,把用户提交数据保存到一个PDF文件。其中有文字内容,也有图片。...之前选了aspose.pdf,因为抠门,不能花钱买,就从网上找开心版,好不容易出来点模板,结果插入图片时候,同一页只能插入一张图片,而官方试用版是可以正常两张,另外字段比较多,速度比较慢,几百个字段需要一分多钟...之后尝试iText,发现要比aspose.pdf好用多,下面就说下用法。 需要通过nuget安装iTextSharp,选第一个,版本号是5.5.12,也就是iText5版本,该版本是AGPL许可。...完整代码如下: using iTextSharp.text; using iTextSharp.text.pdf; using System.IO; namespace Tools { public...outputPdfStream = new FileStream(savefile, FileMode.Create, FileAccess.Write, FileShare.None)) //创建新pdf

2.4K10

CSharp每日代码示例:使用iTextSharp创建PDF文件

本文演示如何使用iTextSharp PDF库将文本文件转换为PDF文件。 iTextSharp是一个从JAVA项目iText衍生.Net版本开源项目,采用GPL许可证发布。...,1英寸=72磅,如果你想在A4页面的PDF创建一个矩形,你需要计算以下数据: 21 厘米 / 2.54 = 8.2677 英寸 8.2677英寸* 72 = 595 磅 29.7 厘米 / 2.54...,块可以用于构建其他基础元素短句、段落、锚点等,块是一个有确定字体字符串,要添加块到文档时,其他所有布局变量均要被定义。...引用命名空间 System.IO, iTextSharp, iTextSharp.text, iTextSharp.text.pdf, iTextSharp.text.pdf.draw 有到控件:...和使用iTextSharp工具转换为单个PDF代码 The Code 1.

2.8K10
  • 文档在线预览实现

    如果是文本需要转换为PDF,我们可以使用iTextSharp这个组件,对于纯文本,注意是源文件没有设置字体之类,需要在转换成PDF时指定字体,否则对于中文可能由于没有设置字体而转换不出来。...HTML包含元素较多,比较复杂,主要有两种方法,一种是调用浏览器接口,让浏览器把HTML打印为PDF,另外就是ITextSharp提供了专门XML/HTML转换组件:XML Worker,这个已经独立出来...,不包含在ITextSharp,需要单独下载。...功能,在转换后,我们可以进一步使用ITextSharppdf进行加工,比较常见添加水印功能。...其实就是做一个淡淡背景透明图片,然后打开pdf文件,在每一页画上水印图片即可。

    3.6K10

    开源免费且稳定实用.NET PDF打印组件itextSharp(.NET组件介绍之八)

    在这个.NET组件介绍系列,受到了很多园友支持,一些园友(:数据之巅、 [秦时明月]等等这些大神 )也给我提出了对应建议,我正在努力去改正,有不足之处还望大家多多包涵。...在.NET实现PDF打印组件比较多,例如PDFsharp、Report.NET、sharpPDF、itextSharp等等,今天主要简单介绍itextSharp组件。...一.itextSharp组件概述:          1.iTextPDF库,它允许你创建,调整,检查和维护可移植文档格式文件(PDF):         (1).基于从XML文件或数据库数据生成文件和报告...2.itextSharp一些特征:        (1).PDF生成。        (2).PDF操作(冲压水印,合并/拆分PDF文件,...)。        ...四.总结:     上面介绍了itextSharp组件相关信息,在这个系列组件介绍,对于组件介绍都是比较简单,旨在向大家介绍这个组件,在实际开发,我们可以根据实际情况自行选择相应组件,组件没有绝对好坏

    7.5K50

    基于iTextSharpPDF文档操作

    ,DHL公司将物流面单以pdf文件流形式返回,就是我们可以保存成Pdf文件,这样就容易处理多,我们自己拣货面单,如果也可以保存至Pdf文件,这样就可以将这2个Pdf文件一块打印出来,这算是一个折中解决方案...技术点如下     1, 将DataTable导出至Pdf     2, DataTable包含图片,也要能导出     3, Pdf类库,字体引入(居然需要引用字体绝对路径,想不通)   下面分别讲解...    1, 这点就是直接创建iTextSharpPdfDataTable对象,直接映射即可。...,将Image对象插入单元格(注意:图片尺寸需要定义好)。...前2联是DHL返回Pdf文件,第3联是我本地生成Pdf文件,合并成一个完整发货面单 ?

    1.7K100

    iText使用

    可以通过图片文件BASE64字符串来生成Image对象实例,然后添加到pdf文档或者文档子要素: String imageBase64Data = Base64DataUtils.getData(...document.add(image); 使用PdfStamper对象操作pdf文件模板来生成文档时,还以从PdfStamper对象获取到代表某一页上覆盖内容PdfContentByte对象,之后就可以在这个对象上调用...每个表单元素都会添加名称,这样在代码中就可以通过这个名称来向生成PDF文件插值,实现通过模板来生成文档。...有了模板之后,就可以生成利用PdfReader来生成PdfStamper对象,对模板进行各种操作(插值还有添加额外一些内容),最后导出新PDF文件。...七、拼接pdf文档 有时也会有这样需求,就是将两个或者多个pdf文件合并到一起生成一个新pdf文件,这里有一个从网上copy代码可以直接拿来用,经测试有效。

    2.3K10

    使用 iTextSharp VS ComPDFKit 在 C# PDF 中提取文本

    对于开发人员来说,从 PDF 中提取文本是有效数据提取第一步。你们一些人可能会担心如何使用 C# 从 PDF 中提取文本。iTextSharp 一直是 PDF 文本提取有效解决方案。...中提取文本要使用 ComPDFKit 从 C# PDF 文档中提取文本,只需按照这些代码示例操作即可。...您可能最终会将其部分检索为单独内容流,“这”和“是一个示例句子。”。发生这种情况原因是 PDF 文本对象并不总是整齐地组织成单词、句子或段落。...当未启用 OCR 时, CPDFConverterJsonText 类将返回 与 PDF 页面内容流定义完全相同文本对象。2. 如何使用 iTextSharpPDF 中提取文本?...作为一个开源库,它始终是开发人员将常见 PDF 功能集成到其应用程序首选解决方案。

    8210

    iText 制作PDF

    在此您可以下载你想使用版本http://sourceforge.net/projects/itextsharp/files/itextsharp/。于是我就下载了现在最新版本5.4.0。   ?...,1英寸=72磅,如果你想在A4页面的PDF创建一个矩形,你需要计算以下数据:   21 厘米 / 2.54 = 8.2677 英寸   8.2677英寸* 72 = 595 磅   29.7 厘米...同时还有另外一种情况,你可以用iTextSharp.text.pdf.PdfWriter产生文档PDF文件。   ..."));   但是你几乎永远不会用到Writer实例(除非你想创建高级PDF或者希望用一些非常特殊函数,ViewerPreferences 或 Encryption)。...、主题、关键字、作者、创建程序,但以下产品信息将始终被添加:   iTextSharp (或者iTextSharp引用)和创建时间(实际上这两种方法是自动调用)。

    2.3K20

    Java 渲染 docx 文件,并生成 pdf 加水印

    文档在上传后需要解析,生成 html 供前端拖拽标签,同时渲染最终文档是 pdf 。由于生成 pdf 是正式文件,必须要求格式严格保证。...关键技术实现技术实现: jodconverter + libreoffice 使用 jodconverter 已经提供了一套完整spring-boot解决方案,只需要在 pom.xml增加如下配置...目前我也没有找到规律,很有可能我们占位符被划分到了多个run,如果我们简单针对 run 做正则表达替换,而要先把所有的 runs 组合起来再进行正则替换。...在调用para.insertNewRun()时候 run 并不会保持字体样式和字体大小需要手动获取并设置。 由于以上两个蜜汁实现,所以就写了一坨蜜汁代码才能保证正则替换和格式正确。...after 增加水印: pom.xml需要增加: <!

    2.9K10

    强大 .NET PDF处理神器:PDFSharp

    前言 PDFSharp是一款开源.NET库,专为处理PDF文档而设计。它以其丰富功能和易用性赢得了广大开发者青睐。无论是创建、编辑、合并、拆分还是转换PDF文件,PDFSharp都能轻松应对。...://www.e-iceblue.cn/Introduce/Spire-Office-NET.html iTextSharp:https://github.com/itext/itextsharp 有一说一都挺好用...要么是有条件限制开源Spire开源版本有各种限制。iTextSharp虽然没有限制,但是开源协议不友好(AGPL),用于闭源商业软件属于要挂耻辱柱行为了。...主要功能 1、创建PDF:无需预先存在模板,PDFSharp允许您直接从头开始构建PDF文档。 2、内容插入:支持在PDF页面添加文本、图像、表格、图形等丰富元素。...全面功能:支持各种PDF操作,包括创建、编辑、合并、拆分、转换和加密等,满足不同需求。 PDFSharp广泛应用于各种场景,生成报告、创建电子书、生成发票和合同等。

    1K10

    Adobe Acrobat pro生成PDF模版

    最近做了一个关于动态生成PDF合同需求  java生成PDF 网络上随便一搜遍有了 不要用手动在代码里面输入合同文字这种方式 这样方式 http://blog.csdn.net/justinytsoft.../article/details/53320225 需求多变,那天需要修改一下字体颜色,或者字体, 增加一行字,等等其他奇葩要求,上面这个博客方式都得修改代码 使用itext使用pdf模版方式,...word模版转PDF后 导入Adobe Acrobat pro 如果pdf 甲方:_______ 姓名:_____ 之类下划线,,他会自动生成表单 导入之后 ?...上图中黑框  就是表单了  双击 ? 重点关注表单名称  这个就是以后再代码分钟动态填充 坑来了 ?...out; ByteArrayOutputStream bos; PdfStamper stamper; try { out =

    2.7K30

    java PDF开源库选择与iText发展历史

    PDF Box 1958 PDFBox是一个Apache开源x项目。可以操作PDF文档Java PDF类库。它可以创建一个新PDF文档,操作现有PDF文档并提取文档内容。...-1b标准 使用标准Java打印API打印PDF文档 另存为图片文件,PNG、JPEG 使用内嵌字体和图片从头创建PDF 电子签名PDF文件 iText: PDFBox里面的特性iText都有 iText...iText GitHub 能方便地加入你数据处理,详情参阅参考资料7 2.2.3 文档例子比拼 最后看一下两者提供文档: iText: 官网提供资料很多 出版了几本电子书,最新iText7...有问题大家也可以一起讨论,最近也是加入了iText中文官方社区,以后会有专门网页给大家 提供帮助!自己个人网站也会部署一些关于iText应用,感谢大家一既往支持! 5....发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    6.4K30

    【iText5 生成PDF】纯Java代码实现生成PDF(自定义表格、文本水印、单元格样式)

    ​ 工作遇到需要生成PDF。最终选择了iText。其他也有通过html再生成。感觉不太适合就用了代码实现。 使用iText 5.5.13.1版本。...纯Java代码实现 1.自定义表格合并指定行列完成数据填充 2.自定义单元格显示 3.文本内容水平垂直居中显示 4.中文显示 5.图片增加(三角雷达图,基于JFreeChart 可参考另一篇博文...* * @param input 需要加水印PDF读取输入流 * @param output 输出生成PDF输出流...Watermark error"+e.getMessage()); } } /** * 图片水印,整张页面平铺 * @param input 需要加水印PDF...读取输入流 * @param output 输出生成PDF输出流 * @param imageFile 水印图片路径 */ public static void

    8.6K31

    itext实现pdf自动定位合同签订

    需求 需要实现如下效果(最终效果) 思考 需求方要求就是实现签订合同,实现方法不限,但过程又提出需要在签章过程把签订日期文字也打上去,这就有点坑了~ 一开始想法是想办法定位需要签名位置...字体类型是我现在也没解决,我没找到获取pdf文档字体类型和大小api,请指教 因为没找到api所以我用最笨方法,通过获取字体高度来确定字体大小,这样文字写出来差别不会太大。...过程还遇到问题就是字体左边距对齐问题,很明显甲乙方在一行上,中间用空格来分割的话会很不标准。所以我最终决定用table,且左右边签名和文字分开进行写入。...; import com.itextpdf.text.pdf.PdfStamper; import com.itextpdf.text.pdf.security.*; import com.itextpdf.text.pdf.security.MakeSignature.CryptoStandard...如果想要测试效果可以把签章部分先去掉也可以运行 我觉得这篇博客是我最有含金量一篇了~我找了很多博客定位pdf签章没有靠谱,很多技术实现都很复杂,我最初版本,也就是前面有一篇博客实现就是改编自网上一篇博客

    2.3K20

    .NET Core.NET5.NET6 开源项目汇总1:常用必备组件

    使用 itextsharp.lgplv2.core 把Html转PDF https://www.cnblogs.com/ping9719/p/12759848.html....Net Core 使用 itextsharp.lgplv2.core 生成PDF https://blog.csdn.net/weixin_30737363/article/details/96669770...添加包含文本文本框或形状。 从段落获取形状。 从段落获取图表,并可以修改其类别/值。 图表配置更多属性,轴标签位置和系列宽度。 至少比DocX版本提前了两个版本。...订阅包含专业技术支持。 在.NET Standard 2.0上可用于.NET Core 2.0应用程序。 可以自动更新文档字段。...CacheManager不仅仅是一个接口,它统一了各种缓存提供程序编程模型,这将使以后在项目中更改缓存策略变得非常容易。它还提供其他功能,缓存同步、并发更新、序列化、事件、性能计数器。

    4.1K10

    Java实现pdf和Excel生成及数据动态插入、导出

    公司有这么两个需求: 需求一、给了一个表单,让把查出来数据组装到表单并且提供以PDF格式下载功能。 需求二、将数据查出来以Excel表格形式下载下来。...二、Java实现PDF生成和数据动态插入、导出功能 1、第一步:PDF制作模板 因为PDF常用软件不让支持编辑,我们就先使用WPS以Word形式进行编辑制作出与客户需求一样样式,然后直接另存为...d.接下来就需要详细配置你数据源了 ? 数据源即:你代码实体类对应数据(注意字段一定要一一对应),配置完毕就可以保存进行下面的代码编写工作了。...reader = new PdfReader(path+ "/"+filename); // 3 根据表单生成一个新pdf ps = new PdfStamper(...二、Java实现Excel生成和数据插入、导出 这个比较简单,直接上代码(假定你实体类、查询什么都已经写好)注意:实体类一个是你自己数据实体类还有一个是你导出时表格对应实体类。

    1.2K40

    Java实现pdf和Excel生成及数据动态插入、导出

    公司有这么两个需求: 需求一、给了一个表单,让把查出来数据组装到表单并且提供以PDF格式下载功能。 需求二、将数据查出来以Excel表格形式下载下来。...一、Java实现PDF生成和数据动态插入、导出功能 1、第一步:PDF制作模板 因为PDF常用软件不让支持编辑,我们就先使用WPS以Word形式进行编辑制作出与客户需求一样样式,然后直接另存为...DC打开我们刚才改过名字PDF文件,点击右下角“更多工具”按钮 到下面这个页面再点击“准备表单”按钮 d.接下来就需要详细配置你数据源了 数据源即:你代码实体类对应数据(注意字段一定要一一对应...reader = new PdfReader(path+ "/"+filename); // 3 根据表单生成一个新pdf ps = new PdfStamper(...、查询什么都已经写好)注意:实体类一个是你自己数据实体类还有一个是你导出时表格对应实体类。

    1.4K21
    领券