C#轻量级矢量图形库VectSharp 可生成PDF SVG PNG等文件
2024-06-21
52
VectSharp简介
VectSharp 是一个功能强大的 C# 库,专门用于创建矢量图形,包括文本,不依赖任何第三方,支持跨平台运行,包括 Mac、Windows 和 Linux。使得开发者可以更容易地在他们的项目中集成矢量图形的生成和处理。
VectSharp GitHub地址:https://github.com/arklumpus/VectSharp
VectSharp特点
内置字体:包含了 14 种标准字体,这些字体最初是在 ASL-2.0(Apache Software License 2.0)许可下发布的。 多种格式:提供了一个抽象层,允许开发者编写不同的输出层来生成不同类型的图形文件。目前支持的输出层包括 PDF、SVG、PNG 以及使用 Avalonia UI 库的 Canvas 对象。 光栅图像支持:VectSharp.Raster 能够将矢量图形渲染为 PNG 格式的光栅图像,而 VectSharp.Raster.ImageSharp 则支持多种格式的光栅图像生成。 3D 图形:VectSharp.ThreeD 为库增加了三维矢量和光栅图形的支持。 图表绘制:VectSharp.Plots 包提供了一系列工具来绘制不同类型的图表,如散点图、折线图、条形图等。 Markdown 支持:VectSharp.Markdown 允许将 Markdown 文档转换为矢量图形对象,进而可以导出为 PDF、SVG 或在 Avalonia Canvas 中显示。 图像处理工具:VectSharp 提供了 VectSharp.MuPDFUtils 和 VectSharp.ImageSharpUtils 两个工具集,分别使用 MuPDFCore 和 SixLabors.ImageSharp 库来处理图像,以适应不同的需求和许可要求。 动画制作:VectSharp 的基础包中包含了一个动画类,可以创建并保存为动画 GIF、SVG 或 PNG 格式的动画。VectSharp使用方法
下面是一个使用VectSharp的C#示例代码:
using VectSharp;
using VectSharp.PDF;
using VectSharp.SVG;
// 创建一个新的文档对象
Document document = new Document();
// 创建一个新的页面对象,指定页面的宽度和高度为 1000 单位
Page page = new Page(1000, 1000);
// 将创建的页面添加到文档的页面集合中
document.Pages.Add(page);
// 绘制一个填充的矩形,使用灰色,设置一个标签
page.Graphics.FillRectangle(100, 100, 800, 50, Colour.FromRgb(128, 128, 128), tag: "linkToGitHub");
// 绘制第二个填充的矩形,使用红色,并设置一个标签
page.Graphics.FillRectangle(100, 300, 800, 50, Colour.FromRgb(255, 0, 0), tag: "linkToBlueRectangle");
// 绘制第三个填充的矩形,使用蓝色,并设置一个标签
page.Graphics.FillRectangle(100, 850, 800, 50, Colour.FromRgb(0, 0, 255), tag: "blueRectangle");
//绘制文字
page.Graphics.FillText(250, 250, "示例", new Font(VectSharp.FontFamily.ResolveFontFamily(VectSharp.FontFamily.StandardFontFamilies.TimesRoman), 80), Colour.FromRgb(0, 0, 0));
// 创建一个字典,用于存储标签和链接 URL 的映射关系
Dictionary<string, string> links = new Dictionary<string, string>() {
// 添加一个标签到 URL 的映射
{ "linkToGitHub", "https://github.com/"" },
// 添加另一个标签到页面内锚点的映射
{ "linkToBlueRectangle", "#blueRectangle" }
};
// 将页面导出为 SVG 文件
page.SaveAsSVG(@"Links.svg", linkDestinations: links);
// 将整个文档导出为 PDF 文件
document.SaveAsPDF(@"Links.pdf", linkDestinations: links);
更新于:6个月前赞一波!3
相关文章
- .NET C#中的Func、Predicate和Expression用法详解
- C#13新特性 使用System.Threading.Lock简化线程同步
- .NET C# 读取编辑.AVIF图片文件
- .NET C# SkiaSharp读取.AVIF图片文件报错
- .NET C# EntityFramework(EF)连接SQLite代码示例
- .NET9 C# 13 有哪些新特性?
- C#中的String和StringBuilder的区别
- .NET C#中的IEnumerable和IEnumerator的区别
- 轻量级 JavaScript 动画库 mo.js使用教程
- C# Const 和 ReadOnly的区别
- C# 使用Barrier进行多线程同步
- C#发送邮件代码简洁示例(附源码下载)
- C# Word转换成Pdf的方法
- c#使用MongoDB开发LBS应用
- hprose for C#使用教程
- c#实现与Java无差异的GZip压缩和GZip解压缩
- .NET Core c#使用SkiaSharp压缩裁切图片去除水印
- c# decimal保留2位小数 并向下舍入
- .NET Core c#使用SkiaSharp压缩图片
- C#复制文件到指定文件夹
文章评论
评论问答