通过对控件Spire.PDF的测试,我们可以创建PDF文件并向文档中绘制文本、图片、表格、图形等内容,其中,对于绘制文本这一部分,Spire.PDF提供了三种字体类型来绘制文本,即:

  • Standard fonts
  • TrueType fonts
  • Chinese, Japanese and Korean (CJK) fonts

从以上类中我们可以发现,是可以支持中、日、韩、英等字体类的,这为我们在操作PDF文件上提供了更多可能。在这篇文章中,“利用private font改变PDF文件的字体”中讲述了如何应用字体,在接下来的文章中,将介绍如何运用Spire.PDF提供的字体类来绘制不同风格类型的文本。

使用工具:Spire.PDF for .NET 4.0

PS: 安装该类库后,注意在程序中引用Spire.PDF.dll后在进行代码编辑,dll文件可在安装路径下的Bin文件夹中获取。

【示例1】绘制倾斜样式的文本

步骤1:创建实例

PdfDocument doc = new PdfDocument();
PdfPageBase page = doc.Pages.Add();    

步骤2:保存画布状态

PdfGraphicsState state = page.Canvas.Save();

步骤3:实例化字体,创建格式刷

PdfFont font = new PdfFont(PdfFontFamily.Helvetica, 18f);
PdfSolidBrush brush1 = new PdfSolidBrush(Color.DeepSkyBlue);
PdfSolidBrush brush2 = new PdfSolidBrush(Color.CadetBlue);
PdfSolidBrush brush3 = new PdfSolidBrush(Color.LightPink);

步骤4:指定文本在画布上的坐标,并指定文本的横向、纵向的拉伸度

page.Canvas.TranslateTransform(10, 100);
page.Canvas.ScaleTransform(1f, 0.6f);

步骤5:绘制文本

 //绘制倾斜样式的文本page.Canvas.SkewTransform(-10, 0);page.Canvas.DrawString("THERE IS NO ROYAL ROAD TO LEARNING. ", font, brush1, 0, 0);page.Canvas.SkewTransform(10, 10);page.Canvas.DrawString("Books, like friends, should be few and well chosen. ", font, brush2, 10, 50);//绘制缩放类型的文本page.Canvas.ScaleTransform(1f, -1f);page.Canvas.DrawString("Books, like friends, should be few and well chosen.", font, brush3, 10, -2 * 50);

步骤6:再次保存画布

page.Canvas.Restore(state);

步骤7:保存文件

doc.SaveToFile("DrawText.pdf");
System.Diagnostics.Process.Start("DrawText.pdf");

测试效果:

全部代码:

using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;namespace DrawTextOfDifferentStyles_PDF
{class Program{static void Main(string[] args){PdfDocument doc = new PdfDocument(); //创建一个PDF文档PdfPageBase page = doc.Pages.Add(); //添加页
     PdfGraphicsState state = page.Canvas.Save();//实例化字体,创建格式刷           PdfFont font = new PdfFont(PdfFontFamily.Helvetica, 18f);PdfSolidBrush brush1 = new PdfSolidBrush(Color.DeepSkyBlue);PdfSolidBrush brush2 = new PdfSolidBrush(Color.CadetBlue);PdfSolidBrush brush3 = new PdfSolidBrush(Color.LightPink);page.Canvas.TranslateTransform(10, 100);//指定文本在画布上的坐标位置page.Canvas.ScaleTransform(1f, 0.6f);//指定文本的横向、纵向的拉伸度//绘制倾斜样式的文本page.Canvas.SkewTransform(-10, 0);page.Canvas.DrawString("THERE IS NO ROYAL ROAD TO LEARNING. ", font, brush1, 0, 0);page.Canvas.SkewTransform(10, 10);page.Canvas.DrawString("Books, like friends, should be few and well chosen. ", font, brush2, 10, 50);//绘制缩放类型的文本page.Canvas.ScaleTransform(1f, -1f);page.Canvas.DrawString("Books, like friends, should be few and well chosen.", font, brush3, 10, -2 * 50);//再次保存画布
            page.Canvas.Restore(state);//保存并打开文档doc.SaveToFile("DrawText.pdf");System.Diagnostics.Process.Start("DrawText.pdf");}}
}

View Code

【示例2】绘制中心旋转图形

步骤1:创建实例

PdfDocument doc = new PdfDocument();
PdfPageBase page = doc.Pages.Add(); 

步骤2:保存画布

 PdfGraphicsState state = page.Canvas.Save();

步骤3:实例化字体类,创建格式刷

PdfFont font = new PdfFont(PdfFontFamily.Helvetica, 10f);
PdfSolidBrush brush = new PdfSolidBrush(Color.BlueViolet);

步骤4:设定字符串布局格式,并指定文本在画布中的位置

PdfStringFormat centerAlignment = new PdfStringFormat(PdfTextAlignment.Left, PdfVerticalAlignment.Middle);
float x = 400;
float y = 600;page.Canvas.TranslateTransform(x, y);

步骤5:绘制文本,应用格式

//指定文本绘制数量
for (int i = 0; i < 12; i++)
{//设置文本按顺时针方向旋转排列(文本偏移间隔30度)page.Canvas.RotateTransform(30);//绘制文本并应用格式                page.Canvas.DrawString("Every tide has its ebb.", font, brush, 10, 0, centerAlignment);
}

步骤6:再次保存画布

page.Canvas.Restore(state);

步骤7:保存文档

doc.SaveToFile("DrawText.pdf");
System.Diagnostics.Process.Start("DrawText.pdf");

测试结果:

(这里做了几个不同样式的demo,可以对比看下效果)

全部代码:

using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;namespace _3
{class Program{static void Main(string[] args){PdfDocument doc = new PdfDocument(); //创建一个PDF文档PdfPageBase page = doc.Pages.Add(); //添加页
PdfGraphicsState state = page.Canvas.Save();//实例化字体,创建格式刷            PdfFont font = new PdfFont(PdfFontFamily.Helvetica, 10f);PdfSolidBrush brush = new PdfSolidBrush(Color.BlueViolet);//设定字符串布局格式,并指定文本在画布中的位置PdfStringFormat centerAlignment = new PdfStringFormat(PdfTextAlignment.Left, PdfVerticalAlignment.Middle);float x = 400;float y = 600;//绘制文本并应用格式
            page.Canvas.TranslateTransform(x, y);//指定文本绘制数量for (int i = 0; i < 12; i++){//设置文本按顺时针方向旋转排列(文本偏移间隔30度)page.Canvas.RotateTransform(30);//绘制文本并应用格式                page.Canvas.DrawString("Every tide has its ebb.", font, brush, 10, 0, centerAlignment);}//再次保存画布
            page.Canvas.Restore(state);//保存并打开文档doc.SaveToFile("DrawText.pdf");System.Diagnostics.Process.Start("DrawText.pdf");}}
}

View Code

以上是本次关于绘制不同风格类型文本的全部内容,如需转载,请注明出处。

(本文完)

C# 如何在PDF中绘制不同风格类型的文本相关推荐

  1. C# 在PDF中绘制动态图章

    我们知道,动态图章,因图章中的时间.日期可以动态的生成,因而具有较强的时效性.在本篇文章中将介绍通过C#编程在PDF中绘制动态图章的方法,该方法可自动获取当前系统登录用户名.日期及时间信息并生成图章. ...

  2. ai中如何插入签名_如何在PDF中插入一个或多个空白页?

    在编辑或修改PDF文档时,一般都需要新增空白页后再添加文本或图片等内容,那么如何在PDF中插入一个或多个空白页呢? 首先打开极速PDF编辑器,或打开需要编辑的PDF文档后,点击右上角"文档& ...

  3. PDF编辑器哪个好,如何在PDF中插入图片背景

    由于PDF文档不像Word那么容易编辑,并且具有较强的保密性,所以PDF文档的编辑需要借助其他第三方的PDF编辑器才能对PDF文件进行编辑,下面,我就教大家如何利用PDF编辑器在PDF中插入图片背景, ...

  4. 如何在ChemDraw中绘制分子立体结构

    ChemDraw是当前最常用的的化学结构绘图软件,软件功能包括化学作图.分子模型生成.化学数据库信息管理等,可以说是化学家和生物学家所需要最终极的化学结构绘图工具.本教程主要介绍ChemDraw绘制分 ...

  5. matlab 三维y轴平面图,#如何在excel中绘制三维坐标系?#excel怎么画图平面坐标图...

    用excel绘制曲线图时如何进行坐标轴转换 点"插入"->"图表"->"XY图","子图表类型"选择&quo ...

  6. 绘制pdf表格 (二) 通过itext实现在pdf中绘制excel表格样式设置中文字体、水印、logo、页眉、页码

    前言 在<通过itext实现在pdf中绘制excel表格样式并且实现下载>实现了表格的基本渲染,本文将继续进行水印.logo.页眉.页码的设置,本文的部分代码包含<通过itext实现 ...

  7. Acrobat Pro DC 教程:如何在 PDF 中插入其他 PDF 文件?

    欢迎观看 Acrobat Pro DC 教程,小编带大家学习 Acrobat Pro DC 的基本工具和使用技巧,了解如何在 PDF 中插入其他 PDF文件. 在 Acrobat Pro DC 中选择 ...

  8. 如何在 PDF 中搜索并准确找到您要查找的文本内容

    您是否需要在冗长的 PDF 文档中快速查找单词或短语? 没有什么比打开一个只有文本墙的大型 PDF 文档更令人沮丧的了.或者必须在很长的文本中找到特定的单词或短语.或者很长的 PDF. 它不方便.耗时 ...

  9. 如何在PDF中添加水印,PDF添加水印技巧

    PDF文件现在的使用很是普遍,不管是工作中还是学习中都会使用到PDF文件,制作一个PDF文件就很辛苦的,我们要是想把PDF文件中添加水印防止抄袭的时候应该要怎么做呢,其实吧PDF文件添加水印还挺简单的 ...

  10. matlab怎么画三维坐标的二维图,excel怎么画二维坐标表格图(如何在excel中绘制三维坐标系?)...

    在excle中怎么把二维图形变成三维图形 你说的是图表吗,如果是的话就这样操作 excel2007以上版本:选中图表-点击设计选项卡-最左面有更改图表类型-选择合适的类型-确定 excel2003也是 ...

最新文章

  1. 使用beanutil简化request值的接收
  2. [POJ](3268)Silver Cow Party ---最短路径(图)
  3. python之异常处理
  4. Eclipse插件工具
  5. CUDA编程-gt;CUDA入门了解(一)
  6. android getview方法,android 获取view的getLeft(), getRight(), getTop(),... - 简书
  7. 王爽《汇编语言》第三版 第三章 内存访问
  8. jdk1.8新特性(四)——Optional
  9. HTML5 Canvas 图形组合
  10. Google通过提交表单抓取新页面
  11. java排除文件夹某文件,.gitignore排除文件夹,但包括特定的子文件夹
  12. uni-app的生命周期
  13. 虚拟机安装MAC-OS系统开发非常卡。使用beamoff.zip优化教程
  14. 黑苹果EFI引导启动文件,技嘉Z77P-D3+E3-1230 V2+蓝宝石RX560D+Macos10.15.x(5)
  15. Nodejs 中的非阻塞I/O、异步和事件驱动
  16. 2018个人面试记录
  17. 利用PHP编程生成蜘蛛访问记录txt文档
  18. 技术盛典,2016AppCan移动开发者大会即将开启
  19. 编译原理第一个项目——个人所得税PersonalTax
  20. windows中cmd和powershell设置代理

热门文章

  1. 进化计算-遗传算法-入门级最好教程
  2. 二叉树遍历的转换C++实现
  3. GIS案例练习-----------第八天
  4. HTML学习总结(3)——Audio/Video
  5. 利用MapShaper将.shp文件转换成JSON文件
  6. python+HEG对mod021km数据进行几何校正、辐射定标
  7. ServletContextListener的用法
  8. 循环队列的创建Java_Java版-数据结构-队列(循环队列)
  9. 就问你慌不慌:每天都有 一百万 程序员在投简历
  10. path和classpath的区别