C#实现在PDF文档中应用多种不同字体

作者:E-iceblue 时间:2022-01-18 02:13:28 

引入dll

 本次程序中引入的是Spire.Pdf.dll,引入方法如下:

【方法1】通过NuGet安装。

可以在Visual Studio中打开“解决方案资源管理器”,鼠标右键点击“引用”,“管理NuGet包”,然后搜索“Free Spire.PDF”,点击“安装”。

也可以将以下内容复制到PM控制台安装:

Install-Package FreeSpire.PDF -Version 7.8.9

【方法2】手动安装。

可通过手动下载Free Spire.PDF for .NET包,然后解压,找到BIN文件夹下的Spire.Pdf.dll。在Visual Studio中打开“解决方案资源管理器”,鼠标右键点击“引用”,“添加引用”,将本地路径BIN文件夹下的dll文件添加引用至程序。

应用字体

C#

using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;

namespace ApplyFonts
{
   class Program
   {
       static void Main(string[] args)
       {
           //创建PdfDocument对象
           PdfDocument pdf = new PdfDocument();

//添加一页
           PdfPageBase page = pdf.Pages.Add();

//初始化y坐标
           float y = 30;

//使用standard字体绘制文字
           PdfFont standardFont = new PdfFont(PdfFontFamily.Helvetica, 14f);
           page.Canvas.DrawString("Standard Font - Helvetica", standardFont, PdfBrushes.Black, 0, y);
           standardFont = new PdfFont(PdfFontFamily.TimesRoman, 14f);
           page.Canvas.DrawString("Standard Font - Times_Roman", standardFont, PdfBrushes.Black, 0, (y = y + 16));
           standardFont = new PdfFont(PdfFontFamily.Courier, 14f);
           page.Canvas.DrawString("Standard Font - Courier", standardFont, PdfBrushes.Black, 0, (y = y + 16));

//使用true type字体绘制文字          
           PdfTrueTypeFont trueTypeFont = new PdfTrueTypeFont(new Font("Arial", 12f), true);
           page.Canvas.DrawString("TrueType Font - Arial", trueTypeFont, PdfBrushes.Blue, 0, (y = y + 30f));

/*//使用私有字体绘制文字
           string fontFileName = "C:\\Users\\Administrator\\Desktop\\fontfile.ttf";
           trueTypeFont = new PdfTrueTypeFont(fontFileName, 14f);
           page.Canvas.DrawString("Private Font: 私有字体", trueTypeFont, PdfBrushes.DarkGreen, 0, (y = y + 30f));
           */

//使用cjk字体绘制文字
           PdfCjkStandardFont cjkFont = new PdfCjkStandardFont(PdfCjkFontFamily.MonotypeHeiMedium, 14f);
           page.Canvas.DrawString("你 好", cjkFont, PdfBrushes.DeepPink, 0, (y = y + 30f));
           cjkFont = new PdfCjkStandardFont(PdfCjkFontFamily.HanyangSystemsGothicMedium, 14f);
           page.Canvas.DrawString("こんにちは", cjkFont, PdfBrushes.OrangeRed, 0, (y = y + 16f));
           cjkFont = new PdfCjkStandardFont(PdfCjkFontFamily.HanyangSystemsShinMyeongJoMedium, 14f);
           page.Canvas.DrawString("안녕하세요", cjkFont, PdfBrushes.Purple, 0, (y = y + 16f));

//保存文档
           pdf.SaveToFile("ApplyFonts.pdf",FileFormat.PDF);
           System.Diagnostics.Process.Start("ApplyFonts.pdf");
       }
   }
}

VB.NET

Imports Spire.Pdf
Imports Spire.Pdf.Graphics
Imports System.Drawing

Namespace ApplyFonts
   Class Program
       Private Shared Sub Main(args As String())
           '创建PdfDocument对象
           Dim pdf As New PdfDocument()

'添加一页
           Dim page As PdfPageBase = pdf.Pages.Add()

'初始化y坐标
           Dim y As Single = 30

'使用standard字体绘制文字
           Dim standardFont As New PdfFont(PdfFontFamily.Helvetica, 14F)
           page.Canvas.DrawString("Standard Font - Helvetica", standardFont, PdfBrushes.Black, 0, y)
           standardFont = New PdfFont(PdfFontFamily.TimesRoman, 14F)
           page.Canvas.DrawString("Standard Font - Times_Roman", standardFont, PdfBrushes.Black, 0, (InlineAssignHelper(y, y + 16)))
           standardFont = New PdfFont(PdfFontFamily.Courier, 14F)
           page.Canvas.DrawString("Standard Font - Courier", standardFont, PdfBrushes.Black, 0, (InlineAssignHelper(y, y + 16)))

'使用true type字体绘制文字          
           Dim trueTypeFont As New PdfTrueTypeFont(New Font("Arial", 12F), True)
           page.Canvas.DrawString("TrueType Font - Arial", trueTypeFont, PdfBrushes.Blue, 0, (InlineAssignHelper(y, y + 30F)))

'//使用私有字体绘制文字
'            string fontFileName = "C:\\Users\\Administrator\\Desktop\\fontfile.ttf";
'            trueTypeFont = new PdfTrueTypeFont(fontFileName, 14f);
'            page.Canvas.DrawString("Private Font: 私有字体", trueTypeFont, PdfBrushes.DarkGreen, 0, (y = y + 30f));
'            

'使用cjk字体绘制文字
           Dim cjkFont As New PdfCjkStandardFont(PdfCjkFontFamily.MonotypeHeiMedium, 14F)
           page.Canvas.DrawString("你 好", cjkFont, PdfBrushes.DeepPink, 0, (InlineAssignHelper(y, y + 30F)))
           cjkFont = New PdfCjkStandardFont(PdfCjkFontFamily.HanyangSystemsGothicMedium, 14F)
           page.Canvas.DrawString("こんにちは", cjkFont, PdfBrushes.OrangeRed, 0, (InlineAssignHelper(y, y + 16F)))
           cjkFont = New PdfCjkStandardFont(PdfCjkFontFamily.HanyangSystemsShinMyeongJoMedium, 14F)
           page.Canvas.DrawString("안녕하세요", cjkFont, PdfBrushes.Purple, 0, (InlineAssignHelper(y, y + 16F)))

'保存文档
           pdf.SaveToFile("ApplyFonts.pdf", FileFormat.PDF)
           System.Diagnostics.Process.Start("ApplyFonts.pdf")
       End Sub
       Private Shared Function InlineAssignHelper(Of T)(ByRef target As T, value As T) As T
           target = value
           Return value
       End Function
   End Class
End Namespace

绘制效果

C#实现在PDF文档中应用多种不同字体

来源:https://www.cnblogs.com/Yesi/p/15829200.html

标签:C#,PDF,字体
0
投稿

猜你喜欢

  • jdk动态代理源码分析过程

    2023-03-01 05:05:59
  • Java Web实现文件下载和乱码处理方法

    2022-03-14 20:28:38
  • 如何利用JAVA实现走迷宫程序

    2022-06-23 10:52:06
  • Springboot添加支付接口

    2023-06-21 00:10:20
  • 深入理解Java设计模式之享元模式

    2023-11-10 17:20:51
  • java文件操作之java写文件简单示例

    2023-10-21 14:37:13
  • springboot动态调用实现类方式

    2021-07-05 21:33:17
  • java读取word-excel-ppt文件代码

    2022-07-06 14:20:46
  • Java实现批量向mysql写入数据的方法

    2023-11-05 20:51:21
  • 详解commons-pool2池化技术

    2021-09-10 10:56:29
  • 了解Java线程池执行原理

    2022-10-12 13:00:23
  • Java中Steam流的用法详解

    2021-12-16 14:18:50
  • java实现上传文件类型检测过程解析

    2023-11-09 12:04:21
  • JAVA JNI函数的注册过程详细介绍

    2023-02-07 18:41:17
  • mybatis和mybatis-plus同时使用的坑

    2021-07-22 14:03:13
  • 完美实现ExpandableListView二级分栏效果

    2021-07-18 20:04:13
  • java设计模式之工厂模式实例详解

    2023-11-24 23:35:12
  • Java多线程事务管理的实现

    2023-07-26 22:58:20
  • kafka并发写大消息异常TimeoutException排查记录

    2023-11-27 23:07:11
  • Spring MVC 简单的hello world的实现

    2023-06-18 02:56:41
  • asp之家 软件编程 m.aspxhome.com