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");
 }
 }
}

【示例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;

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

page.Canvas.TranslateTransform(x, y);

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

//指定文本绘制数量
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);
}

步骤7:再次保存画布

page.Canvas.Restore(state);

步骤8:保存文档

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");
 }
 }
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

(0)

相关推荐

  • C#实现pdf导出 .Net导出pdf文件

    最近碰见个需求需要实现导出pdf文件,上网查了下代码资料总结了以下代码.可以成功的实现导出pdf文件. 在编码前需要在网上下载个itextsharp.dll,此程序集是必备的.楼主下载的是5.0版本,之前下了个5.4的似乎不好用. 下载之后直接添加引用. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Webpdf.aspx.cs" Inherits="Web导出

  • C# 生转换网页为pdf

    从htm生成pdf大概可以分两步实现,第一步,解析htm,就是将htm源文件中那一对文本转换为浏览器最终呈现给我们那种图文并茂的结果.这是一个不可完成的任务,因为目前为止业界的软件巨头也没有谁把htm解析做得很好的.对比ie.firefox等浏览器的显示结果便可想而知.既然业界难题,我也就不去钻牛角尖做技术攻关了,先跳过这步,考虑下一步的事情. 第二步,绘制pdf,这个简单,网上有很多资料,有兴趣的朋友可以研究 pdf的文件格式,安装二进制组装pdf.我有兴趣,然而没有时间,我觉得软件从业者时刻

  • c#开发word批量转pdf源码分享

    微软Office Word本身已经提供了另存为PDF文档功能,对于少量文档,手工使用该方式进行Word转换为PDF尚可,一旦需要处理大量的文档,可能就显得有些捉襟见肘了.不过对于已经安装有Office环境,借助一些简单的代码即可实现批量Word转PDF了. 源码: 复制代码 代码如下: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.D

  • C# 中使用iTextSharp组件创建PDF的简单方法

    将iTextSharp.dll文件拷贝到项目的bin目录,然后在项目中添加引用: 然后在后台代码添加引用: 复制代码 代码如下: using iTextSharp.text;using iTextSharp.text.pdf;using System.IO;using System.Diagnostics; //创建PDF private void CreatePdf() {     //定义一个Document,并设置页面大小为A4,竖向      iTextSharp.text.Docume

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

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

  • C#将jpg转换为pdf的方法

    本文实例讲述了C#将jpg转换为pdf的方法.分享给大家供大家参考.具体实现方法如下: C#生成pdf文件需要使用到一个itextsharp.dll文件,itextsharp.dll是一个开源的在C#中用来生成PDF文档的库文件,下面我们来给大家介绍利用itextsharp来生成库文件. 介绍 PDF生成所需类库itextsharp.dll,是一个开源的在C#中用来生成PDF文档的库文件,不少C#爱好者用它制作出了PDF文档生成器 具体代码如下: 复制代码 代码如下: void ConvertJ

  • c#实现pdf的另存为功能

    今天跟大家分享一个实现PDF另存为的效果,是调用Acrobat SDK的JavaScript实现的. 复制代码 代码如下: /// <summary>        /// PDF另存为效果        /// </summary>        /// <param name="fileName">PDF文件名</param>        /// <param name="saveFileName">

  • C#使用iTextSharp将PDF转成文本的方法

    本文实例讲述了C#使用iTextSharp将PDF转成文本的方法.分享给大家供大家参考.具体实现方法如下: using System; using System.IO; using iTextSharp.text; using iTextSharp.text.pdf; using iTextSharp.text.pdf.parser; public class ParsingPDF { static string PDF; static string TEXT2; /** * Parses th

  • 用C#来解析PDF文件

    1. 介绍 这个项目让你可以去读取并解析一个PDF文件,并将其内部结构展示出来. PDF文件的格式标准文档可以从Adobe那儿获取到. 这个项目基于"PDF指南,第六版,Adobe便携文档格式1.7 2006年11月". 它是一个恐怕有1310页的大部头. 本文提供了对这份文档的简洁概述. 与此相关的项目定义了用来读取和解析PDF文件的C#类. 为了测试这些类,附带的测试程序PdfFileAnalyzer让你可以去读取一个PDF文件,分析它并展示和保存结果. 程序将PDF文件分割成单独

  • c#实现将pdf转文本的示例分享

    如何解析PDF文件 在.NET中从PDF文件里提取文本的几种主要方法有: 1.Microsoft 的 IFilter 接口 和 Adobe 的 IFilter 实现: 2.iTextSharp: 3.PDFBox. 不幸的是这些 PDF 解析方案都不完美.我们将在下面讨论这些方法. Adobe PDF IFilter 为了使用 IFilter 接口来解析 PDF 文件,你需要: Windows 2000 或者后续版本 Adobe Acrobat 或 Reader 7.0.5+ (或单独的 Ado

随机推荐