返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C#实现在PDF文档中应用多种不同字体
  • 345
分享到

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

2024-04-02 19:04:59 345人浏览 安东尼
摘要

目录引入dll应用字体C#VB.NET绘制效果引入dll  本次程序中引入的是Spire.pdf.dll,引入方法如下: 【方法1】通过NuGet安装。 可以在Visual

引入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));

            

            //使用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应用不同字体的资料请关注编程网其它相关文章!

--结束END--

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

本文链接: https://lsjlt.com/news/163247.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C#实现在PDF文档中应用多种不同字体
    目录引入dll应用字体C#VB.NET绘制效果引入dll  本次程序中引入的是Spire.Pdf.dll,引入方法如下: 【方法1】通过NuGet安装。 可以在Visual...
    99+
    2024-04-02
  • C#怎么在PDF文档中应用多种不同字体
    今天小编给大家分享一下C#怎么在PDF文档中应用多种不同字体的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。引入dll&nbs...
    99+
    2023-06-28
  • 详解C#实现在Excel单元格中应用多种字体格式
    目录引用dll方法1方法2在同一单元格应用多种字体样式C#vb.net在Excel中,可对单元格中的字符串设置多种不同样式,通常只需要获取到单元格直接设置样式即可,该方法设置的样式会...
    99+
    2024-04-02
  • Java在Excel单元格中如何应用一种/多种字体样式
    这篇文章主要介绍Java在Excel单元格中如何应用一种/多种字体样式,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在Excel表格中,设置单元格字体样式时,可以对单元格内的所有字符应用同一样式,即获取指定单元,应用...
    99+
    2023-06-02
  • 在Android中icon+控件实现文字的多种效果
    这篇文章给大家介绍在Android中icon+控件实现文字的多种效果,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。第一步 自定义属性  在res/values/目录下新建attrs.xml文件, 添...
    99+
    2023-05-31
    android icon+ roi
  • C#中VB.NET如何实现在Word中嵌入多媒体文件
    小编给大家分享一下C#中VB.NET如何实现在Word中嵌入多媒体文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!引入dll通过NuGet安装dll(2种方法)...
    99+
    2023-06-21
  • Android中的字体大小怎么实现自适应不同分辨率
    Android中的字体大小怎么实现自适应不同分辨率?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、原理如下:假设需要适应320x240,480...
    99+
    2023-05-31
    android roi %d
  • C# VB.NET 实现在Word中嵌入多媒体(视频、音频)文件
    目录引入dll嵌入多媒体文件主要代码步骤解析嵌入效果后的文档效果注意事项引入dll 1.通过NuGet安装dll(2种方法) 1.1可以在Visual Studio中打开“解决方案资...
    99+
    2024-04-02
  • C++中怎么利用LeetCode实现最多有两个不同字符的最长子串
    本篇文章给大家分享的是有关C++中怎么利用LeetCode实现最多有两个不同字符的最长子串,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。[LeetCode] 159. Long...
    99+
    2023-06-20
  • UNIX同步API在Go语言中的应用:如何实现多线程数据同步?
    Go语言是一种高效、简洁、并发的编程语言,它的并发性质使得它在处理多线程数据同步方面非常出色。而UNIX同步API则是一种用于实现多线程数据同步的标准API,其被广泛应用于UNIX和类UNIX操作系统中。在本文中,我们将探讨如何在Go语言...
    99+
    2023-09-30
    unix 同步 api
  • 怎么用纯css多种方法实现div中单行文字、多行文字及嵌套div垂直水平居中
    本篇内容主要讲解“怎么用纯css多种方法实现div中单行文字、多行文字及嵌套div垂直水平居中”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用纯css多种方...
    99+
    2024-04-02
  • CSS3中怎么利用text-shadow属性实现多种效果的文字样式
    这篇文章给大家介绍CSS3中怎么利用text-shadow属性实现多种效果的文字样式,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 text-shadow属性text-sha...
    99+
    2024-04-02
  • java不同版本在多线程中使用随机数生成器的实现
    目录如何在多线程中使用随机数生成器(Random)Random 是通过 seed 进行同步的吗ThreadLocalRandom 生成随机数的示例如何在多线程中使用随机数生成器(Ra...
    99+
    2023-05-15
    java 随机数生成器 java多线程随机数生成
  • 如何在ASP中使用API关键字响应来实现更好的用户体验?
    ASP.NET是一个强大的Web开发框架,它提供了丰富的功能,可以帮助我们开发出高效、可靠的Web应用程序。其中,API关键字响应功能是ASP.NET中的一个重要特性,它可以帮助我们实现更好的用户体验。本文将介绍如何在ASP.NET中使用A...
    99+
    2023-10-15
    api 关键字 响应
  • 怎么在c#中利用WebRequest实现一个多文件上传功能
    本篇文章为大家展示了怎么在c#中利用WebRequest实现一个多文件上传功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。添加引用使用WebRequest需要添加引用System.Web,否则引入...
    99+
    2023-06-14
  • NumPy 数组索引在 Go 语言中的实现和应用:有何不同之处?
    NumPy 是一个广泛使用的 Python 数学库,它提供了一个高性能的多维数组对象,以及用于处理这些数组的工具。其中,NumPy 数组的索引是其非常重要的特性之一,它使得用户可以非常方便地获取和操作数组中的元素。那么,在 Go 语言中,...
    99+
    2023-06-27
    文件 numpy 索引
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作