• 2019年12月3日

C#使用PdfSharp生成Pdf文件

项目需要将jpg格式图片转换成pdf文件,最终选定PdfSharp进行操作。

流程:

1、安装pdfsharp

install-package pdfsharp

2、引入命名空间

 using PdfSharp;
using PdfSharp.Pdf;
using PdfSharp.Drawing;

3、通过SaveFileDialog获取保存路径(filename),进行pdf转换操作

SaveFileDialog sdf = new SaveFileDialog();
if(sdf.ShowDialog()==DialogResult.OK)
{
PdfDocument pdf = new PdfDocument(); //实例化pdf文档对象
PdfPage page=pdf.AddPage();//添加1个页面并获得该页面实例
page.Width = 图片对象.Width; //注意pdf页面的单位是pt点,图片对象一般是px像素,所以要进行转换,大约1px=0.75pt
page.Height = 图片对象.Height;
//page.Size=PageSize.A4; //也可以直接设置为A4页面规格
MemoryStream s = new MemoryStream(); //实例化内存Stream流,用于临时保存图片对象
图片对象.Save(s,ImageFormat.Jpeg); //将图片对象保存到内存流中
XImage img = XImage.FromStream(s);//从内存流中获取到图片对象,因为Image跟XImage不能直接变换,所以只能通过内存流做中转
XGraphics g = XGraphics.FromPdfPage(page);//实例化XGraphics对象,并以刚才的pdf页面作为画布将后续的DrawImage、DrawString作用到画布上(画到画布上)
g.DrawImage(img,0,0);//将图片画到画布上
pdf.Save(sfd.FileName);//将pdf文件保存到保存对话框获取到的路径上
}

相信本文可以帮助大部分的码友了解到PdfSharp的使用了,更多的方法和属性自行测试下就能知道作用了。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注