PdfiumViewer组件扩展(Pdfium.Net.Free)--添加图片

项目地址:

Pdfium.Net:https://github.com/1000374/Pdfium.Net.Free

PdfiumViewer:https://github.com/1000374/PdfiumViewer

Pdfium.Net.Free 支持

  • .NETFramework 4.0

  • .NETFramework 4.5

  • .NETStandard 2.0

  • .Net8.0

可以和PdfiumViewer.Free共同使用预览、编辑pdf,也可以直接引用Pdfium.Net.Free 操作pdf,Pdfium.Net.Free封装了现有Pdfium的函数,实现了部分操作pdf的功能,部分功能等待后续~~

Pdfium添加图片有三个重载,根据入参可对添加的图片进行缩放、旋转、裁切

1.添加图片路径到pdf

1
2
3
4
5
6
7
8
9
10
11
12
/// <summary>
/// add Image 
/// </summary>
/// <param name="imagePath">image file</param>
/// <param name="posX">x</param>
/// <param name="posY">y</param>
/// <param name="scalex">scale x</param>
/// <param name="scaley">scale y</param>
/// <param name="rotate">rotate</param>
/// <param name="shear">shear</param>
/// <returns></returns>
public bool AddImage(string imagePath, float posX, float posY, float scalex = 1f, float scaley = 1, float rotate = 0, float shear = 0)

 

代码示例:

1
2
3
4
5
6
7
using (var doc = PdfDocument.CreateNew())
{
    var imagePath = "./Pdfium.NetTests/resources/mona_lisa.jpg";
    var page = doc.Pages.Add(612, 792);
    page.AddImage(imagePath, 50, 100);
    doc.Save("./Pdfium.NetTests/AddImage.pdf");
}

  

2.添加流到pdf

1
2
3
4
5
6
7
8
9
10
11
12
/// <summary>
/// add Image 
/// </summary>
/// <param name="stream">new MemoryStream(File.ReadAllBytes(imagePath));</param>
/// <param name="posX">x</param>
/// <param name="posY">y</param>
/// <param name="scalex">scale x</param>
/// <param name="scaley">scale y</param>
/// <param name="rotate">rotate</param>
/// <param name="shear">shear</param>
/// <returns></returns>
public bool AddImage(Stream stream, float posX, float posY, float scalex = 1f, float scaley = 1, float rotate = 0, float shear = 0)

  

示例代码:

1
2
3
4
5
6
7
8
using (var doc = PdfDocument.CreateNew())
{
    var imagePath = "./Pdfium.NetTests/resources/mona_lisa.jpg";
    var page = doc.Pages.Add(612, 792);
    var stream = new MemoryStream(File.ReadAllBytes(imagePath));
    page.AddImage(stream, 50, 100);
    doc.Save("./Pdfium.NetTests/AddImage.pdf");
}

  

3.添加image 到pdf

1
2
3
4
5
6
7
8
9
10
11
12
13
/// <summary>
/// add Image 
/// </summary>
/// <param name="image">Image</param>
/// <param name="posX">x</param>
/// <param name="posY">y</param>
/// <param name="scalex">scale x</param>
/// <param name="scaley">scale y</param>
/// <param name="rotate">rotate</param>
/// <param name="shear">shear</param>
/// <returns></returns>
public bool AddImage(Image image, float posX, float posY, float scalex = 1f, float scaley = 1, float rotate = 0, float shear = 0)
     

  

代码示例:

1
2
3
4
5
6
7
8
using (var doc = PdfDocument.CreateNew())
{
    var imagePath = "./Pdfium.NetTests/resources/mona_lisa.jpg";
    var image = Image.FromFile(imagePath, true);
    var page = doc.Pages.Add(612, 792);
    page.AddImage(image, 50, 100);
    doc.Save("./Pdfium.NetTests/AddImage1.pdf");
}

  

 

posted @   小树禾小央  阅读(157)  评论(3编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示