PdfiumViewer组件扩展(Pdfium.Net.Free)--加载字体
1.PdfiumViewer组件扩展(Pdfium.Net.Free)--概述2.PdfiumViewer组件扩展(Pdfium.Net.Free)--快速入门3.PdfiumViewer组件扩展(Pdfium.Net.Free)--PDF预览器框选4.PdfiumViewer组件扩展(Pdfium.Net.Free)--打开大文件处理
5.PdfiumViewer组件扩展(Pdfium.Net.Free)--加载字体
6.PdfiumViewer组件扩展(Pdfium.Net.Free)--创建字符子集7.PdfiumViewer组件扩展(Pdfium.Net.Free)--添加文本8.PdfiumViewer组件扩展(Pdfium.Net.Free)--添加图片9.PdfiumViewer组件扩展(Pdfium.Net.Free)--添加水印10.PdfiumViewer组件扩展(Pdfium.Net.Free)--删除或编辑pdf内容11.PdfiumViewer组件扩展(Pdfium.Net.Free)--PDF操作12.PdfiumViewer组件扩展(Pdfium.Net.Free)--签名13.PdfiumViewer组件扩展(Pdfium.Net.Free)--注解14.PdfiumViewer组件扩展(Pdfium.Net.Free)--可视化编辑pdf15.什么是转换矩阵以及如何使用它16.Pdfium.Net.Free 添加 bblanchon.PDFium nuget方式项目地址:
Pdfium.Net:https://github.com/1000374/Pdfium.Net.Free
PdfiumViewer:https://github.com/1000374/PdfiumViewer
Pdfium.Net.Free 支持
-
.NETFramework 4.0
-
.NETFramework 4.5
-
.NETStandard 2.0
- .Net8.0
可以和PdfiumViewer.Free共同使用预览、编辑pdf,也可以直接引用Pdfium.Net.Free 操作pdf,Pdfium.Net.Free封装了现有Pdfium的函数,实现了部分操作pdf的功能,部分功能等待后续~~
Pdfium.Net加载字体:
1.加载ttf字体文件
1 2 3 4 5 6 | using ( var doc = PdfDocument.CreateNew()) { var fontPath = @"c:\Windows\fonts\simhei.ttf" ; byte [] fontData = File.ReadAllBytes(fontPath); var font = doc.TextLoadFont(fontData, ( uint )fontData.Length, FpdfFontTypes.TrueType, true ); } |
上述方法是通过字符集获取字体对象的方式。
对于一个对象流,可直接通过 LoadFont函数加载字符集文件(注意:只能调用一次)。
由于Pdfium不支持加载字符子集,这样会把整个字体库加载到pdf内,生成的pdf会变大,考虑到此种场景,考虑对已知内容生成pdf,可先拆分字符子集,然后加载到pdf流中,这样能保证中文正常展示,切pdf大小固定,不足的是对于添加不在字符集内的字体将展示乱码。对写入内容不能确定的只能全部加载字符集。
1 2 3 4 5 6 7 8 9 10 11 12 13 | using ( var doc = PdfDocument.CreateNew()) { var fontPath = @"c:\Windows\fonts\simhei.ttf" ; var cSharpString = "!you ok 这是第一句。" ; var cSharpString2 = " 这是第二行。a you ok 你好 abcdefghijklmnopqrstuvwxyz1234567890-*/+~`@#$%^&*(){}[];:'|?,,。.!!" ; doc.LoadFont(fontPath, true , cSharpString + cSharpString2); var page = doc.Pages.Add(612, 792); page.AddString(cSharpString, 10, 50, 12, Color.Black); page.AddString(cSharpString2, 10, 80, 12, Color.Black); doc.Save( "./Pdfium.NetTests/AddString3.pdf" ); } |
2.加载pdf标准字体
pdf内置标准字体,标准字体查看 StandardPDFFonts类,pdf标准字体只能加载英文、阿拉伯数字,中文乱码
1 2 3 4 | using ( var doc = PdfDocument.CreateNew()) { var font = doc.TextLoadStandardFont(StandardPDFFonts.Arial); } |
3.从pdf内获取字体
对于某些pdf已经内置了部分字体,当重新加载新字体时会造成生成的pdf变大,针对这种场景,可尝试从pdf内获取字体使用。
1 2 3 4 5 | var pathPdf = "./Pdfium.NetTests/resources/fontText.pdf" ; using ( var doc = PdfDocument.Load( new MemoryStream(File.ReadAllBytes(pathPdf)))) { var font = doc.Pages[0].GetTextObjFont( "你" , out float size); } |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战