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

目录
  • 引入dll
  • 应用字体
    • C#
    • VB.NET
  • 绘制效果

引入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文档中应用多种不同字体的详细内容,更多关于C# PDF应用不同字体的资料请关注我们其它相关文章!

(0)

相关推荐

  • C#设置或验证PDF文本域格式的方法详解

    目录 概述 引入dll 代码(C#/VB.NET) 概述 PDF中的文本域可以通过设置不同格式,用于显示数字.货币.日期.时间.邮政编码.电话号码和社保号等等.Adobe Acrobat提供了许多固定的JavaScripts用来设置和验证文本域的格式,如:AFNumber_Format(2, 0, 0, 0, "$", true)和AFNumber_Keystroke(2, 0, 0, 0, "$", true).Format后缀的script是用来设置文本域显示的

  • C#实现给PDF文档设置过期时间

    目录 引入dll程序集 添加过期时间 实现代码 C# VB.NET 效果图 我们可以给一些重要文档或者临时文件设置过期时间和过期信息提示来提醒读者或管理者文档的时效性,并及时对文档进行调整.更新等.下面,分享通过C#程序代码来给PDF文档设置过期时间的方法. 引入dll程序集 [方法1]通过 NuGet 安装. 可以在Visual Studio中打开“解决方案资源管理器”,鼠标右键点击“引用”,“管理NuGet包”,然后搜索“Free Spire.PDF”,点击“安装”. 也可以将以下内容复制到

  • C#实现将PDF转为线性化PDF

    目录 程序环境 方法步骤 步骤1. 安装PDF插件. 步骤2. 编辑如下代码实现转换. 线性化PDF文件是PDF文件的一种特殊格式,可以通过Internet更快地进行查看.线性化的PDF,在页面数量很多的情况下,更能突出表现出快速浏览的优势.下面是通过后端.NET程序实现将PDF文件转为线性化PDF的方法. 程序环境 Visual Studio 2017 .NET Framework 4.6.1 Spire.PDF for .NET 7.12.1 方法步骤 步骤1. 安装PDF插件. 可通过以下

  • C#/VB.NET 实现彩色PDF转为灰度PDF

    目录 配置程序环境 转彩色PDF为灰度 转换结果 补充 本文以C#代码为例介绍如何实现将彩色PDF文件转为灰度(黑白)的PDF文件,即 将PDF文档里面的彩色图片或者文字等通过调用PdfGrayConverter.ToGrayPdf()方法转为文档页面为灰色调.无彩色效果的文档.下面的程序运行环境及代码示例. 配置程序环境 Visual Studio 2017 .Net Framework 4.6.1 Spire.PDF for .NET 关于如何引入dll文件: 1.通过NuGet安装dll(

  • C#使用private font改变PDF文件的字体详解

    前言 前几天做项目,需要使用未安装的字体来改变PDF的文件.以前并没有实现过类似的功能,幸运的是我在网上找到了类似的教程,并成功实现了这个功能. 下面就跟大家分享一下我是如何实现的. 1.首先我先下载了一个系统字体库中没有的字体,独立的DeeDeeFlowers.TTF字体文件,打开预览如下图: 2.我们接下来要做的是就是在一个新建的PDF文件中输入一些内容,然后把字体替换为DeeDeeFlowers.TTF. 我在他们的网站上下载了这个组件的最新Hotfix,解压后添加了.dll 文件到我的工

  • C# 获取PDF中的数字签名证书

    目录 环境准备 代码示例 读取结果 PDF中的加数字签名是对文档权威性的有效证明.我们在向PDF文档添加签名时,需要准备可信任的签名证书.同时,对已有的签名,可验证签名是否有效,也可以获取文档中的签名证书信息.下面,以C#代码示例展示如何来获取PDF中的数字签名证书信息. 环境准备 需要在程序中导入Spire.Pdf.dll.这里以一个控制台应用程序为例,引用dll可选择以下两种方法中的任意一种即可: 方法1:打开"解决方案资源管理器",鼠标右键点击"引用",&qu

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

    目录 引入dll 应用字体 C# VB.NET 绘制效果 引入dll 本次程序中引入的是Spire.Pdf.dll,引入方法如下: [方法1]通过NuGet安装. 可以在Visual Studio中打开“解决方案资源管理器”,鼠标右键点击“引用”,“管理NuGet包”,然后搜索“Free Spire.PDF”,点击“安装”. 也可以将以下内容复制到PM控制台安装: Install-Package FreeSpire.PDF -Version 7.8.9 [方法2]手动安装. 可通过手动下载Fre

  • C# 在PDF文档中创建表格的实现方法

    表格能够直观的传达数据信息,使信息显得条理化,便于阅读同时也利于管理.那在PDF类型的文档中如何来添加表格并且对表格进行格式化操作呢?使用常规方法直接在PDF中添加表格行不通,那我们可以在借助第三方组件的情况下来实现.本篇文章中将介绍如何正确使用组件Free Spire.PDF for .NET添加表格到PDF.该组件提供了两个类PdfTable和PdfGrid用于创建表格,在进行代码编辑前,需先安装,添加Spire.PDF. dll到项目程序集中,同时添加到命名空间.下面是两种方法来添加表格的

  • C#/VB.NET中从 PDF 文档中提取所有表格

    目录 前言 安装 从PDF文档中提取表格 前言 有时,我们可能需要从 PDF 文档中提取表格数据,例如,当PDF发票的表格中存储了一些有用的信息,需要提取数据以进行进一步分析时.在这篇文章中,我将介绍如何使用Spire.PDF for .NET 从 PDF 文档中提取所有表格数据. 安装 首先,我们需要将 Spire.PDF for .NET 包中包含的 DLL 文件添加为 .NET 项目中的引用.可以从此链接下载 DLL 文件,也可以通过 NuGet 安装 DLL 文件. PM> Instal

  • C#/VB.NET实现在Word文档中添加页眉和页脚

    目录 程序环境 在 Word 文档中添加页眉和页脚 完整代码 效果图 页眉位于文档中每个页面的顶部区域,常用于显示文档的附加信息,可以插入时间.图形.公司微标.文档标题.文件名或作者姓名等:页脚位于文档中每个页面的底部的区域,常用于显示文档的附加信息,可以在页脚中插入文本或图形.今天这篇文章就将为大家展示如何以编程的方式在在 Word 文档中添加页眉和页脚.下面是我整理的思路及方法,并附上C#/VB.NET供大家参考. 程序环境 本次测试时,在程序中引入Free Spire.Doc for .N

  • ASP.NET Core中快速构建PDF文档的步骤分享第1/2页

    比如我们需要ASP.NET Core 中需要通过PDF来进行某些简单的报表开发,随着这并不难,但还是会手忙脚乱的去搜索一些资料,那么恭喜您,这篇帖子会帮助到您,我们就不会再去浪费一些宝贵的时间. 在本文中我们将要使用DinkToPDF来处理我们在.NET Core Web 程序中进行构建PDF文档!就现在我们不多说,直接开始有趣的部分. 前言# 您可以通过创建PDF文档在我的仓库中,获取源代码,欢迎给个免费的Star... 现在我们创建一个.NET Core 3.0 项目,至于是mvc.Api.

  • 用PHP编写PDF文档生成器

    PHP一个最大的优点就是它对新技术的支持非常容易,这种语言的可扩展性使得开发人员能够很方便地添加新的模块,而且遍布世界的技术团体的支持和众多扩展模块的支持使得PHP已经成为功能最齐全的Web编程语言之  一.目前可得到的扩展模块已经能够使开发人员执行IMAP和POP3操作,可以动态产生图象和Shockwave Flash动画,进行信用卡验证,敏感数据的加密解密,还能够解析XML格式的数据.但这还不是全部,现在,又有一个新的模块可以与PHP进行绑定了,那就是PDFLib扩展模块,它能够让开发人员动

  • 利用C#如何给PDF文档添加文本与图片页眉

    前言 下面这篇文章向大家分享如何使用了免费组件Free Spire.PDF给PDF文档添加文本和图片页眉.这个组件提供了一些方法,可以帮助我们快速方便地实现此目的. 添加页眉步骤: 首先,创建一个Visual C#控制台项目,添加组件引用并使用以下命名空间. using System; using System.Drawing; using Spire.Pdf; using Spire.Pdf.Graphics; 在下列代码中,我们先定义一个SetDocumentTemplate()方法来创建一

  • 基于PHP与XML的PDF文档生成技术

    摘要 本论文简要介绍了PHP.XML.PDF等技术的原理以及它们的应用情况.力图运用PHP面向对象的特性,构建出一套基于PHP和XML的在线PDF文档生成系统.文中详细探讨了整个系统的组成部分以及各自的实现过程.并在最后给出一个运用这套系统实现的动态创建报表的实例. AbstractThis article introduced the fundamentls of PHP,XML and PDF and their application situation at present,expect

  • C#编程简单实现生成PDF文档的方法示例

    本文实例讲述了C#编程简单实现生成PDF文档的方法.分享给大家供大家参考,具体如下: using System; using System.IO; using System.Text; using System.Collections; namespace PDFGenerator { public class PDFGenerator { static float pageWidth = 594.0f; static float pageDepth = 828.0f; static float

  • 怎样在php中使用PDF文档功能

    写给Hunte: 好久不在网上见你,真有点说不出来的感觉,没有hunte的phpuser.com什么也不是. 转了你站上的两篇文章, 特翻了一篇了以示致歉. ---------------------------------------------------- 原作者:Perugini Luca (www.phpbuilder.com) 译者:znsoft (http://www.phpease.com) --------------------------------------------

随机推荐