首页 > 其他分享 >Pdfium.Net.Free 一个免费的Pdfium的 .net包装器--添加图片

Pdfium.Net.Free 一个免费的Pdfium的 .net包装器--添加图片

时间:2024-01-30 19:14:18浏览次数:25  
标签:Pdfium -- doc float Free AddImage imagePath var

项目地址:

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

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

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

1.添加图片路径到pdf

   /// <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)

 

代码示例:

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

 /// <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)

  

示例代码:

  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

 /// <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)
      

  

代码示例:

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

  

 

标签:Pdfium,--,doc,float,Free,AddImage,imagePath,var
From: https://www.cnblogs.com/xiaohemiao/p/17997370

相关文章

  • powershell param : 无法将“param”项识别为 cmdlet、函数、脚本文件或可运行程序的
    前言全局说明powershellparam:无法将“param”项识别为cmdlet、函数、脚本文件或可运行程序的名称。一、源码echo"脚本启动"param($age,$address="USA",$name)Write-Host"Name:$name"Write-Output"Address:$address"Write-Output"Age:$age&qu......
  • 2023年度总结:我们都在用力的活着,拼尽了全力,却换回了伤痕累累!!!
    阅前必读:2023你还记得让你听过最扎心的话吗?你印象里记得你做的哪些不如意痛心的事吗?当你的付出得不到回报的时候。你有过绝望吗?闭上眼睛,想起过往时候,你流泪了吗?其实我并不害怕黑夜,我只是怕了孤单。走在那条回忆的路上,想我了血肉模糊的风景。承受过了背叛。其实并不是放不下。......
  • modset.c
    / DRM双缓冲垂直同步模式设置方法 这个例子扩展了modeset-double-buffered.c,并引入了与垂直空格(vsync'ed)同步的页面翻转。垂直空白是显示控制器从扫描帧缓冲区中暂停的时间。垂直空白结束后,将逐行再次扫描framebuffer,并在后面跟着垂直空白。 在更改framebuffer时,垂直空格是......
  • python 一个能统计txt文件的每个单词出现次数的python程序; 统计txt文件里每个汉字出
    输出的时候排列顺序是从多到少,需要去除txt中的特殊符号,注意是英文txt文件用来自制词汇包的hhhimportrefromcollectionsimportCounterdefcount_words(file_path):#读取文本文件内容withopen(file_path,'r',encoding='utf-8')asfile:text=file.read......
  • Qt 解决qtcreator工程文件例程报错error: cannot initialize object parameter of typ
    qt下载好并且环境配置完成,kits和qt都已配置完成在qtcreator中,在终端手动编译qmakemake都完全没问题,但是在qtcreator中却报错。即使是新建工程例程都报错。版本qt5.6.0qtcreator4.11.0报错main.cpp:96:error:cannotinitializeobjectparameteroftype‘QWidget’wi......
  • 《人月神话》读后感
    经过对《人月神话》后面几章的阅读,我感受到在编程实践过程中实验和针对变化及时做出改变,从而更好的达到目的,但是在系统维护过程中,系统软件开发是减少混乱度(减少熵)的过程,所以它本身是处于亚稳态的。软件维护是提高混乱度(增加熵)的过程,即使是最熟练的软件维护工作,也只是放缓了系统退......
  • 何恺明MAE论文简解
    MAE这篇论文在2022年发表,当年比较火。起因是nlp一直有非常棒的预训练模型,比如bert。那么cv能不能仿照一下也得到很棒的模型呢?为此,研究开始了。参考资料:https://zhuanlan.zhihu.com/p/439554945  模型的结构简单易懂,就是mask一些像素块,将没有mask的像素块作为encoder的输入......
  • Visual Studio 配置 MySQL
    1.将MySQL中的include文件和lib文件资源粘贴到VisualStudioinclude文件下和lib文件下找到MySQL的lib和include位置找到VisualStudio的include和bin文件位置将其放进去2.找到两个文件,放在创建的项目目录里在项目里,点击这个,打开文件夹位置......
  • Qt cannot initialize object parameter of type ‘QWidget‘ with an expression of
    报错如图:qtcreator工程文件例程报错error:cannotinitializeobjectparameteroftype‘QWidget’withanexpressionoftype‘tab_workface’问题分析可能因为qtcreator4.11.0basedonqt5.12版本略微冲突导致。。问题解决帮助->关于插件,将ClangCo......
  • 翻牌游戏
    有N张写有数据的牌,从上到下放成一堆,每次从上面取一张输出,再从上面取一张放回这堆牌的下面。重复这个过程,直到取完,发现取出牌上的数字恰巧是1,2,3...,N,问原先N张牌上的数是什么?输入格式第一行1个正整数:N,范围在[1,10000]。输出格式第一行1个正整数:N,范围在[1,10000]。输入/输出......