首页 > 编程语言 >C# Image转PDF(iTextSharp)

C# Image转PDF(iTextSharp)

时间:2022-12-15 15:55:45浏览次数:34  
标签:C# text Image iTextSharp new PDF image pdfDocument

NuGet包下载最新iTextSharp

操作PDF文档时,打印是常见的需求之一。

将传过来的 json 生成 image 后,再把所有图片转成 PDF

要求:

1、PDF 打印出来的图片大小要符合实际要求的大小

2、PDF 文件(test.pdf)的纸张大小就是图片大小

Document pdfDocument = new Document(new iTextSharp.text.Rectangle(0, 0), 0, 0, 0, 0);
string fileName = "C:\\Users\\Admin\\Desktop\\output\\test.pdf";
iTextSharp.text.pdf.PdfWriter.GetInstance(pdfDocument, new FileStream(fileName, FileMode.Create, FileAccess.ReadWrite));

pdfDocument.Open();

//Json生成的System.Drawing.Image image
image = printLayout.Draw();
//转iTextSharp.text.Image
ImageConverter imgconv = new ImageConverter();
byte[] bytes = (byte[])imgconv.ConvertTo(image, typeof(byte[]));
Stream stream = new MemoryStream(bytes);
iTextSharp.text.Image images;
images = iTextSharp.text.Image.GetInstance(stream);

//根据实际需求,换算图片大小,并添加到pdf中
float imageWidth = image.Width / 2.105f;
float imageHeight = image.Height / 2.105f;
images.ScaleToFit(imageWidth, imageHeight);
pdfDocument.SetPageSize(new iTextSharp.text.Rectangle(0, 0, imageWidth, imageHeight));
pdfDocument.NewPage();
pdfDocument.Add(images);

pdfDocument.Close();

 

标签:C#,text,Image,iTextSharp,new,PDF,image,pdfDocument
From: https://www.cnblogs.com/fishanan/p/16985229.html

相关文章

  • BeyondCompare调整显示字体大小,修改字体
    BeyondCompare调整显示字体大小快捷键:Shift+Ctrl,配合鼠标,进行调整   ......
  • .net core 在代码中使用jwt token中的用户信息
    varclaimsIdentity=this.User.IdentityasClaimsIdentity;varuserId=claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;stringuserId=User.FindFirst(ClaimT......
  • git clone 走代理
    我使用的是ss代理,我在网上也看到了很多的关于设置代理的方案,但是都得不到解决。设置全局Config代理。gitconfig--globalhttp.proxyhttp://127.0.0.1:1080gitconfig......
  • C# 批量打印图片,Image转PDF并可多台打印机打印(Spire.PDF、去水印)
    版本:一定要是Spire.PDF5.10.2(包括5.10.2)以前的。如果版本不一样,可以更新。如果版本大于 5.10.2,无论是生成还是打印PDF,水印都是去不掉的。FreeSpire.PDF是只能打印......
  • 仅5天注册用户超百万,爆火ChatGPT究竟是什么?
    作者:qizailiu,腾讯IEG应用研究员,来自腾讯技术工程OpenAI近期发布聊天机器人模型ChatGPT,迅速出圈全网。它以对话方式进行交互。以更贴近人的对话方式与使用者互动,可......
  • 一、 memcache 基本特性
    一、memcache基本特性:自由、源码开放、高性能、分布式二、memcache与redis的区别和联系memcacheredis数据结构只支持String类型支持比较多的数据类型......
  • 常见react面试题
    React组件命名推荐的方式是哪个?通过引用而不是使用来命名组件displayName。使用displayName命名组件:exportdefaultReact.createClass({displayName:'TodoApp',/......
  • el-cascader组件懒加载动态回显问题
    Cascader是elementui的一类级联选择器组件,当一个数据集合有清晰的层级结构时,就可以使用它展示层级结构。尤其,当数据比较多时,全部获取数据速度太慢,体验不太好,可改为懒加......
  • LeetCode HOT 100:旋转图像
    题目:48.旋转图像题目描述:给你一个正方形矩阵数组,将其中的所有元素都顺时针旋转90度,得到旋转之后的矩阵数组。本题要求必须在原地修改,不能使用额外空间。思路:看到这个......
  • 回归预测 | MATLAB实现CNN-BiLSTM(卷积双向长短期记忆神经网络)多输入单输出
    回归预测|MATLAB实现CNN-BiLSTM(卷积双向长短期记忆神经网络)多输入单输出目录​​回归预测|MATLAB实现CNN-BiLSTM(卷积双向长短期记忆神经网络)多输入单输出​​​​效......