在用网上的2.0.1.0破解版的时候,会出现莫名的错误,大多数pdf转成图片都是Ok的,但是有部分转出来是空白,因为我这里要涉及大量的pdf转图片,不允许出现错误。

后来经过实验发现是这个版本存在bug。所以只有升级到更高的版本。我现在用的是4.0.2.0

这个版本会有水印存在,  转成il,修改了之后,dll不能使用了,dll签名过,所以没办法。

只有在转出来的图片上进行处理,bitmap处理一下就行了,因为水印是固定的地方,所以用GDI重新画图,去掉水印的那一部分就可以了

 /// <summary>
/// 将PDF文档转换为图片的方法
/// </summary>
/// <param name="pdfInputPath">PDF文件路径</param>
/// <param name="imageOutputPath">图片输出完整路径(包括文件名)</param>
/// <param name="startPageNum">从PDF文档的第几页开始转换</param>
/// <param name="endPageNum">从PDF文档的第几页开始停止转换</param>
/// <param name="imageFormat">设置所需图片格式</param>
/// <param name="definition">设置图片的清晰度,数字越大越清晰</param>
private static void ConvertPdf2Image(string pdfInputPath, string imageOutputPath,
int startPageNum, int endPageNum, ImageFormat imageFormat, int definition)
{ PDFFile pdfFile = PDFFile.Open(pdfInputPath); if (startPageNum <= )
{
startPageNum = ;
} if (endPageNum > pdfFile.PageCount)
{
endPageNum = pdfFile.PageCount;
} if (startPageNum > endPageNum)
{
int tempPageNum = startPageNum;
startPageNum = endPageNum;
endPageNum = startPageNum;
} var bitMap = new Bitmap[endPageNum]; for (int i = startPageNum; i <= endPageNum; i++)
{
Bitmap pageImage = pdfFile.GetPageImage(i - , * definition);
Bitmap newPageImage = new Bitmap(pageImage.Width/ , pageImage.Height/); Graphics g = Graphics.FromImage(newPageImage);
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
           //重新画图的时候Y轴减去130,高度也减去130 这样水印就看不到了
g.DrawImage(pageImage, new Rectangle(, , pageImage.Width/ , pageImage.Height/),
new Rectangle(, , pageImage.Width, pageImage.Height-), GraphicsUnit.Pixel); bitMap[i - ] = newPageImage;
         g.Dispose();
} //合并图片
var mergerImg = MergerImg(bitMap);
//保存图片
mergerImg.Save(imageOutputPath, imageFormat);
pdfFile.Dispose();
} /// <summary>
/// 合并图片
/// </summary>
/// <param name="maps"></param>
/// <returns></returns>
private static Bitmap MergerImg(params Bitmap[] maps)
{
int i = maps.Length; if (i == )
throw new Exception("图片数不能够为0");
else if (i == )
return maps[]; //创建要显示的图片对象,根据参数的个数设置宽度
Bitmap backgroudImg = new Bitmap(maps[].Width, i * maps[].Height);
Graphics g = Graphics.FromImage(backgroudImg);
//清除画布,背景设置为白色
g.Clear(System.Drawing.Color.White);
for (int j = ; j < i; j++)
{
g.DrawImage(maps[j], , j * maps[j].Height, maps[j].Width, maps[j].Height);
}
g.Dispose();
return backgroudImg;
} 我已经更新到4.7.4.0了 目前来看运行的比较稳定
下载地址

O2S.Components.PDFRender4NET.dll 图片空白BUG问题的更多相关文章

  1. display:inline-block的空白bug问题

    产生原因:我们写代码的时候习惯在结束标签的后面添加换行符,这个时候就会产生空白符.但是不同浏览器对空白符的理解是不同的,IE6/7会忽略掉此空白符,正常显示内容:IE8以上的IE浏览器以及FF.chr ...

  2. android 解决启动页面加载图片空白以及去掉标题栏

    有时候启动页面根据白天晚上来启动时实现加载不同的图片效果,但是加载时会出现短暂的空白,解决方法如下: android:theme="@android:style/Theme.Transluc ...

  3. img标签下多余空白BUG解决方法

    在进行页面的DIV CSS排版时,遇到IE6(当然有时Firefox下也会偶遇)浏览器中的图片元素img下出现多余空白的问题绝对是常见的 对于该问题的解决方法也是“见机行事”. 1.将图片转换为块级对 ...

  4. 缩小窗口时CSS背景图出现右侧空白BUG的解决方法

    页面容器(#wrap)与页面头部(#header )为100%宽度.而内容的容器(#page)为固定宽度960px.浏览窗口缩小而小于内容层宽度时会产生宽度理解上的差异.如下图所示窗口宽度大于内容层宽 ...

  5. width:100%缩小窗口时背景图片出现空白bug

    页面容器(#wrap)与页面头部(#header )为100%宽度.而内容的容器(#page)为固定宽度960px.浏览窗口缩小而小于内容层宽度时会产生宽度理解上的差异.如下图所示窗口宽度大于内容层宽 ...

  6. 关于Android2.X系统自定义图片圆角BUG的解决

    今天在做项目的时候遇到的一个问题. 预期的效果是这样的:

  7. 12306验证图片的bug

    刚才有人告诉我12306验证码换了,于是我就打开了看了看,点了点.oh no , i am really sorry ,12306.

  8. 去掉matlab图片空白边缘

    在图形文件figure的菜单上点击file->export setup size选项中,对"expand axes to fill figure"选项打勾,如下图:

  9. C# 第三方DLL,可以实现PDF转图片,支持32位系统、64位系统

    itextsharp.dll,是一个开源的在C#中用来生成PDF文档的库文件,不少C#爱好者用它制作出了PDF文档生成器.使用时只需在你的C#项目中添加引入此组件即可,使用方法网上有很多,自己查阅一下 ...

随机推荐

  1. mybatis基本流程、jdbc连接、ps:附mybatis(乐观锁)实现

    一.前言 Mybatis和Hibernate一样,是一个优秀的持久层框架.已经说过很多次了,原生的jdbc操作存在大量的重复性代码(如注册驱动,创建连接,创建statement,结果集检测等).框架的 ...

  2. 【BZOJ】5010: [Fjoi2017]矩阵填数

    [算法]离散化+容斥原理 [题意]给定大矩阵,可以每格都可以任意填1~m,给定n个子矩阵,要求满足子矩阵内的最大值为vi,求方案数. n<=10,h,w<=1w. [题解] 此题重点之一在 ...

  3. 列出top中的pid

    #!/usr/bin/env python import os import string #方法1:通过字符串的isdigits来判断 #filelist = os.listdir('/proc') ...

  4. Raspberry Pi使用

    1. 介绍 笔者Raspberry Pi 2 Model B为例介绍 1.1 参数 Raspberry Pi 2 Model B硬件参数如下: · Broadcom BCM2836 900MHz 4核 ...

  5. Linux进程的Uninterruptible sleep(D)状态【转】

    转自:http://c20031776.blog.163.com/blog/static/68471625201121522824111/ 运行在KVM虚拟机里的一些进程突然出了问题,这些出了问题的进 ...

  6. python模拟鼠标和键盘操作

    import win32api import win32con import win32gui from ctypes import * import time VK_CODE = { 'backsp ...

  7. PYTHON代理IP

    import urllib.request url = 'http://www.whatismyip.com.tw/' proxy_support = urllib.request.ProxyHand ...

  8. python 多进程并发与多线程并发

    本文对python支持的几种并发方式进行简单的总结. Python支持的并发分为多线程并发与多进程并发(异步IO本文不涉及).概念上来说,多进程并发即运行多个独立的程序,优势在于并发处理的任务都由操作 ...

  9. RESTful 接口实现简明指南

    REST 简介 REST 是一个术语的缩写,REpresentational State Transfer,中文直译「表征状态转移」,这是个很拗口的词.我的建议是先不要强行理解,直接看怎么做,等对实施 ...

  10. #6034. 「雅礼集训 2017 Day2」线段游戏 李超树

    #6034. 「雅礼集训 2017 Day2」线段游戏 内存限制:256 MiB时间限制:1000 ms标准输入输出 题目类型:传统评测方式:Special Judge 上传者: 匿名 提交提交记录统 ...