服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - C#生成PDF的方法

C#生成PDF的方法

2022-10-21 13:18天方 C#

这篇文章主要介绍了C#生成PDF的方法,帮助大家更好的理解和使用c#编程语言,感兴趣的朋友可以了解下

之前项目中是通过wkhtmltopdf渲染web页面生成的pdf文件,这个方案一直不是很稳定,并且在不同的场景样式也常不一样,老需要调整。 今天研究了一下C#直接生成PDF的方案,还是比较简单的,整体方案如下:

  1. 通过WPF库生成XPS文件
  2. 通过PdfSharp将XPS文件转成PDF文件

首先看一下生成xps文件的代码。,代码如下: 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
var fixedDoc = new FixedDocument();
var pageContent = new PageContent();
var fixedPage = new FixedPage();
 
fixedPage.Children.Add(canvas);
((IAddChild)pageContent).AddChild(fixedPage);
fixedDoc.Pages.Add(pageContent);
 
using var xpsd = new XpsDocument(@"r:\3.xps", FileAccess.ReadWrite);
var xw = XpsDocument.CreateXpsDocumentWriter(xpsd);
 
xw.Write(fixedDoc);
xpsd.Close();

由于可以将WPF中的Visual转换成Xps文件。得益WPF强大的展示能力,即使渲染复杂的XPS文件也是非常容易的。

有了XPS文件后,下一步就是将其转换为pdf了,这里用的是免费的PdfSharp包,由于我用的是.net 5,引入的是PdfSharp.Xps.dotNet.Core,代码比较简单,一行代码可以搞定。

?
1
PdfSharp.Xps.XpsConverter.Convert(@"r:\3.xps", @"r:\3.pdf", 0);

这个生成PDF的方案借助了WPF平台的类库,简单好用,并且可以实现可视化。缺点是不能再Linux上跑。如果要在Linux平台上实现PDF生成的话,直接使用PdfSharp也是可以的,具体可以参考这篇文章:PDF Generation and Printing in .NET

以上就是C#生成PDF的方法的详细内容,更多关于C#生成PDF的资料请关注服务器之家其它相关文章!

原文链接:https://www.cnblogs.com/TianFang/p/14099913.html

延伸 · 阅读

精彩推荐
  • C#C#中list用法实例

    C#中list用法实例

    这篇文章主要介绍了C#中list用法,结合实例形式分析了C#中list排序、运算、转换等常见操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    smartsmile201210912021-11-26
  • C#C#实现动态生成静态页面的类详解

    C#实现动态生成静态页面的类详解

    这篇文章主要介绍了C#实现动态生成静态页面的类,结合实例形式详细分析了C#动态生成静态页面的原理与相关使用技巧,需要的朋友可以参考下...

    且行且思10332021-11-18
  • C#DirectoryEntry配置IIS7出现ADSI Error:未知错误(0x80005000)

    DirectoryEntry配置IIS7出现ADSI Error:未知错误(0x80005000)

    这篇文章主要介绍了DirectoryEntry配置IIS7出现ADSI Error:未知错误(0x80005000)的解决办法...

    C#教程网12372021-10-28
  • C#C#调用7z实现文件的压缩与解压

    C#调用7z实现文件的压缩与解压

    这篇文章主要介绍了C#调用7z实现文件的压缩与解压,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...

    農碼一生5862022-10-20
  • C#C#实现两个richtextbox控件滚动条同步滚动的简单方法

    C#实现两个richtextbox控件滚动条同步滚动的简单方法

    这篇文章主要给大家介绍了C#实现两个richtextbox控件滚动条同步滚动的简单方法,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面...

    鲁广广11752022-01-06
  • C#C#简单判断字符编码的方法

    C#简单判断字符编码的方法

    这篇文章主要介绍了C#简单判断字符编码的方法,可实现判断utf-8,unicode,ansi等编码的功能,简单实用,需要的朋友可以参考下...

    吕秀才10002021-11-25
  • C#WPF调用Matlab函数的方法

    WPF调用Matlab函数的方法

    这篇文章主要为大家详细介绍了WPF调用Matlab函数的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    眾尋7852021-12-09
  • C#C#学习笔记整理_深入剖析构造函数、析构函数

    C#学习笔记整理_深入剖析构造函数、析构函数

    下面小编就为大家带来一篇C#学习笔记整理_深入剖析构造函数、析构函数。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来...

    C#教程网7462021-12-07