C# 如何在PDF中绘制不同风格类型的文本
通过对控件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中绘制不同风格类型的文本相关推荐
- C# 在PDF中绘制动态图章
我们知道,动态图章,因图章中的时间.日期可以动态的生成,因而具有较强的时效性.在本篇文章中将介绍通过C#编程在PDF中绘制动态图章的方法,该方法可自动获取当前系统登录用户名.日期及时间信息并生成图章. ...
- ai中如何插入签名_如何在PDF中插入一个或多个空白页?
在编辑或修改PDF文档时,一般都需要新增空白页后再添加文本或图片等内容,那么如何在PDF中插入一个或多个空白页呢? 首先打开极速PDF编辑器,或打开需要编辑的PDF文档后,点击右上角"文档& ...
- PDF编辑器哪个好,如何在PDF中插入图片背景
由于PDF文档不像Word那么容易编辑,并且具有较强的保密性,所以PDF文档的编辑需要借助其他第三方的PDF编辑器才能对PDF文件进行编辑,下面,我就教大家如何利用PDF编辑器在PDF中插入图片背景, ...
- 如何在ChemDraw中绘制分子立体结构
ChemDraw是当前最常用的的化学结构绘图软件,软件功能包括化学作图.分子模型生成.化学数据库信息管理等,可以说是化学家和生物学家所需要最终极的化学结构绘图工具.本教程主要介绍ChemDraw绘制分 ...
- matlab 三维y轴平面图,#如何在excel中绘制三维坐标系?#excel怎么画图平面坐标图...
用excel绘制曲线图时如何进行坐标轴转换 点"插入"->"图表"->"XY图","子图表类型"选择&quo ...
- 绘制pdf表格 (二) 通过itext实现在pdf中绘制excel表格样式设置中文字体、水印、logo、页眉、页码
前言 在<通过itext实现在pdf中绘制excel表格样式并且实现下载>实现了表格的基本渲染,本文将继续进行水印.logo.页眉.页码的设置,本文的部分代码包含<通过itext实现 ...
- Acrobat Pro DC 教程:如何在 PDF 中插入其他 PDF 文件?
欢迎观看 Acrobat Pro DC 教程,小编带大家学习 Acrobat Pro DC 的基本工具和使用技巧,了解如何在 PDF 中插入其他 PDF文件. 在 Acrobat Pro DC 中选择 ...
- 如何在 PDF 中搜索并准确找到您要查找的文本内容
您是否需要在冗长的 PDF 文档中快速查找单词或短语? 没有什么比打开一个只有文本墙的大型 PDF 文档更令人沮丧的了.或者必须在很长的文本中找到特定的单词或短语.或者很长的 PDF. 它不方便.耗时 ...
- 如何在PDF中添加水印,PDF添加水印技巧
PDF文件现在的使用很是普遍,不管是工作中还是学习中都会使用到PDF文件,制作一个PDF文件就很辛苦的,我们要是想把PDF文件中添加水印防止抄袭的时候应该要怎么做呢,其实吧PDF文件添加水印还挺简单的 ...
- matlab怎么画三维坐标的二维图,excel怎么画二维坐标表格图(如何在excel中绘制三维坐标系?)...
在excle中怎么把二维图形变成三维图形 你说的是图表吗,如果是的话就这样操作 excel2007以上版本:选中图表-点击设计选项卡-最左面有更改图表类型-选择合适的类型-确定 excel2003也是 ...
最新文章
- 使用beanutil简化request值的接收
- [POJ](3268)Silver Cow Party ---最短路径(图)
- python之异常处理
- Eclipse插件工具
- CUDA编程-gt;CUDA入门了解(一)
- android getview方法,android 获取view的getLeft(), getRight(), getTop(),... - 简书
- 王爽《汇编语言》第三版 第三章 内存访问
- jdk1.8新特性(四)——Optional
- HTML5 Canvas 图形组合
- Google通过提交表单抓取新页面
- java排除文件夹某文件,.gitignore排除文件夹,但包括特定的子文件夹
- uni-app的生命周期
- 虚拟机安装MAC-OS系统开发非常卡。使用beamoff.zip优化教程
- 黑苹果EFI引导启动文件,技嘉Z77P-D3+E3-1230 V2+蓝宝石RX560D+Macos10.15.x(5)
- Nodejs 中的非阻塞I/O、异步和事件驱动
- 2018个人面试记录
- 利用PHP编程生成蜘蛛访问记录txt文档
- 技术盛典,2016AppCan移动开发者大会即将开启
- 编译原理第一个项目——个人所得税PersonalTax
- windows中cmd和powershell设置代理