ptf转图片
1.spire
官方的有水印,通过
引用
//private readonly static PdfDocument doc = new PdfDocument();
//public static Stream PtfToPng(string FileInfo)
//{
//byte[] by = Convert.FromBase64String(FileInfo);
//doc.LoadFromBytes(by);
//Image bmp = doc.SaveAsImage(0);//默认第一页
//return ImageToStream(bmp);
或者
//遍历PDF每一页
//for (int i = 0; i < doc.Pages.Count; i++)
//{
// //将PDF页转换成Bitmap图形
// Image bmp = doc.SaveAsImage(i);
// //将Bitmap图形保存为Png格式的图片
// string fileName = string.Format("Page-{0}.png", i + 1);
// bmp.Save(fileName, System.Drawing.Imaging.ImageFormat.Png);
//}
//}
2.
Install-Package PdfiumViewer -Version 2.13.0
Install-Package ImageResizer.Plugins.PdfiumRenderer.Pdfium.Dll -Version 1.0.1
/// <summary>
/// ptf转图片流
/// </summary>
/// FileInf base64string
/// <returns></returns>
public static Stream PtfToPng(string FileInfo)
{
byte[] by = Convert.FromBase64String(FileInfo);
Stream sm = new MemoryStream(by);
using (var document = PdfiumViewer.PdfDocument.Load(sm))
{
var size = document.PageSizes[];
Image ig = document.Render(, (int)size.Width, (int)size.Height, , , PdfiumViewer.PdfRenderFlags.Annotations);
return ImageToStream(ig);
}
} /// <summary>
/// 返回图片流
/// </summary>
public static Stream ImageToStream(Image img)
{
MemoryStream ms = new MemoryStream();
img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
return ms;
}
3.aspose.ptf,最下方有方块,
private Stream ConvertToImage(Stream sm)
{
Document doc = new Document(sm);
if (doc == null)
Console.Write(doc);
MemoryStream stream = new MemoryStream();
Resolution reso = new Resolution();
JpegDevice jpegDevice = new JpegDevice(reso, );
jpegDevice.Process(doc.Pages[], stream);
return stream;
// //Image img = Image.FromStream(stream);
}
4.O2S.Components.PDFRender4NET
/// <summary>
/// 将PDF文档转换为图片的方法
/// </summary>
/// <param name="definition">设置图片的清晰度,数字越大越清晰(1-10)</param>
public static Stream ConvertPdfImage(string Base64, int definition)
{
byte[] by = Convert.FromBase64String(Base64);
Stream sm = new MemoryStream(by);
PDFFile pdfFile = PDFFile.Open(sm);
Bitmap pageImage = pdfFile.GetPageImage(, * definition);
pdfFile.Dispose();
return ImageToStream(pageImage);
} /// <summary>
/// 返回图片流
/// </summary>
public static Stream ImageToStream(Image img)
{
MemoryStream ms = new MemoryStream();
img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
return ms;
}
无水印的O2S.Components.PDFRender4NET地址https://pan.baidu.com/s/1h8Zb4j4ofUnS4ZBoHJecHQ 码:cum8
ptf转图片的更多相关文章
- wpf 模拟3D效果(和手机浏览图片效果相似)(附源码)
原文 wpf 模拟3D效果(和手机浏览图片效果相似)(附源码) pf的3D是一个很有意思的东西,类似于ps的效果,类似于电影动画的效果,因为动画的效果,(对于3D基础的摄像机,光源,之类不介绍,对于依 ...
- webp图片实践之路
最近,我们在项目中实践了webp图片,并且抽离出了工具模块,整合到了项目的基础模板中.传闻IOS10也将要支持webp,那么使用webp带来的性能提升将更加明显.估计在不久的将来,webp会成为标配. ...
- CSS3 background-image背景图片相关介绍
这里将会介绍如何通过background-image设置背景图片,以及背景图片的平铺.拉伸.偏移.设置大小等操作. 1. 背景图片样式分类 CSS中设置元素背景图片及其背景图片样式的属性主要以下几个: ...
- Asp.Net Mvc 使用WebUploader 多图片上传
来博客园有一个月了,哈哈.在这里学到了很多东西.今天也来试着分享一下学到的东西.希望能和大家做朋友共同进步. 最近由于项目需要上传多张图片,对于我这只菜鸟来说,以前上传图片都是直接拖得控件啊,而且还是 ...
- Markdown 图片助手-MarkdownPicPicker
title: Markdown 图片助手 v0.1 toc: true comments: true date: 2016-06-04 16:40:06 tags: [Python, Markdown ...
- 图片访问实时处理的实现(nodejs和php)
我在访问时光网.网易云音乐等网站时,发现将它们页面中的一些图片URL修改一下就可以得到不同尺寸的图片,于是思考了其实现方案,我的思路是:URL Rewrite + 实时处理 + 缓存,对用户请求的UR ...
- nodejs进阶(4)—读取图片到页面
我们先实现从指定路径读取图片然后输出到页面的功能. 先准备一张图片imgs/dog.jpg. file.js里面继续添加readImg方法,在这里注意读写的时候都需要声明'binary'.(file. ...
- C#给PDF文档添加文本和图片页眉
页眉常用于显示文档的附加信息,我们可以在页眉中插入文本或者图形,例如,页码.日期.公司徽标.文档标题.文件名或作者名等等.那么我们如何以编程的方式添加页眉呢?今天,这篇文章向大家分享如何使用了免费组件 ...
- 【Machine Learning】KNN算法虹膜图片识别
K-近邻算法虹膜图片识别实战 作者:白宁超 2017年1月3日18:26:33 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...
随机推荐
- Flutter常见数据类型及数据类型转换
简介 既然 Dart 是一门语言,那么就和我们所知道语言一样,有基本的数据类型以及常见的流程处理语法,那么我们就来了解下. Dart 的所有东西都是对象,包括数字,函数等.它们都继承自 Object ...
- JS初探
如何实现点击后,有下拉菜单的效果呢? 写一个JS效果的步骤: 一.先实现布局 二.实现原理 三.了解JS语法 1.JS获取效果元素 2.知道是什么事件(鼠标事件.键盘事件.表单事件.系统事件.自定义事 ...
- vs2017中信号与槽连接
在vs2012里和在Qt Creator里添加信号和槽不一样,这里把两种环境下怎么添加详细说明一下 1.在vs2012里添加信号和槽 新建一个qt的项目QtDemo 在qtdeom.h里添加槽 pri ...
- 在React中修改antd的样式
1.在Component的Radio中加个style={radioStyle}. <RadioGroup> <Radio style={radioStyle} value={}> ...
- 02 MySQL之数据表的基本操作
01-创建数据表 # 切换数据库 use test_db; # 创建数据表 语法规则如下: create table 表名 ( 字段名1, 数据类型 [列级别约束条件] [默认值], 字段名2, 数据 ...
- Java泛型(5):擦除与补偿
先看一个例子: Class<?> c1 = new ArrayList<String>().getClass(); Class<?> c2 = new ArrayL ...
- matlab作业之m文件的建立与使用运行
画曲线y=xsin(ex-x),要求编写m文件,qx1.m,要求有标注 实现方法: 打开matlab,点击左上角新建 然后打开编辑器 在编辑器里输入函数语句 ctrl+s保存,这里的名字要命名成××× ...
- Java入门第二季学习总结
课程总概 该门课程作为java入门学习的第二季,是在有一定的java基础上进行的进一步学习.由于该季涉及到了java的一些核心内容,所以相对第一季来说,课程难度有所提升.大致可将该季的课程分为五部分: ...
- 华为模拟器eNSP基本命令
华为模拟器eNSP常用命令 本文转自:https://blog.csdn.net/Key_book/article/details/80542264 路由器命令行常用命令: 1. system-vie ...
- 部署开源mock平台doclever简单叙述
一.访问官网: http://doclever.cn/controller/index/index.html 二.doclever作用(重点:mock带有转发功能) DOClever是一个可视化接口管 ...