C# pdf转换成图片 或 Bitmap类型 C#中 怎么吧PDF转换成图片 ,最好是把PDF文件转换Bitmap类型,要是用到了DLL,请告诉我下载地址和使用方法,最好这个DLL是免费的! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Adobe Acrobat SDK 好像可以 可是我不知道怎么用 这个东西收费吗? 请各位大侠帮忙!! itextsharp 可能也可以 就是不知道怎么用 救助........ 这个是开源的,而且网上有不少介绍的文章。http://www.cnblogs.com/hardrock/category/33862.html 使用 pdfboxhttp://www.cnblogs.com/Jinglecat/archive/2008/05/19/1202280.html 我查了很多, 就是没有能实现的方法 ,好多都是创建PDF的 , 我想要图片! 谢谢 我也用了一下个控件 可是他的那个转换图片的方法在C#中用不了呀,这个方法写在了main函数里 !应该在C#中怎么用?请指教!万分感谢! 谢谢 我也用了一下个控件 可是他的那个转换图片的方法在C#中用不了呀,这个方法写在了main函数里 !应该在C#中怎么用?请指教!万分感谢! 参考这个 java 版本的 PDFBox ,将其转成 。net 即可http://kickjava.com/src/org/pdfbox/ExtractImages.java.htm关于如何在。net 只使用pdfbox 见 http://www.cnblogs.com/Jinglecat/archive/2008/05/19/1202280.html 我试过这个控件了,可是我不知道那个方法是提取图片的,而且他里面有一个自定义的image类型,不知道怎么转换成System.Drawing.Image类型!请指教!万分感谢! 谢谢!我试着从java转换到.net了 ,可是到了BufferedImage,我就转换不了。请您指教! 可以使用Ghostscript ,免费的,我们一直在用。下载地址 http://sourceforge.net/project/showfiles.php?group_id=1897&package_id=108733 public IList<string> GenerateThumbnailImage(string InputFile, bool deletePDF, string filename) { return GenerateImage(InputFile, deletePDF, filename, "-dSAFER -dBATCH -dNOPAUSE -r150 -sDEVICE=jpeg -dGraphicsAlphaBits=4"); } private IList<string> GenerateImage(string InputFile, bool deletePDF, string filename,string Arguments) { IList<string> result = new List<string>(); PDFLibrary myPDFLibrary = new PDFLibrary(); int PDFPageCount = myPDFLibrary.GetPageCount(InputFile); if (PDFPageCount==0) { return result; } string OutputFile = filename; string ExtOut = Path.GetExtension(OutputFile); string partOut = OutputFile.Remove(OutputFile.Length - ExtOut.Length, ExtOut.Length); if (PDFPageCount == 1) { OutputFile=partOut+ ".jpg"; result.Add(OutputFile); if (File.Exists(OutputFile)) { File.Delete(OutputFile); } } else { for (int i = 0; i < PDFPageCount; i++) { string eachFileName = partOut + (i + 1).ToString() + ".jpg"; result.Add(eachFileName); if (File.Exists(eachFileName)) { File.Delete(eachFileName); } } OutputFile = OutputFile.Remove(OutputFile.Length - ExtOut.Length, ExtOut.Length); OutputFile += "%d.jpg"; } ProcessStartInfo info = new ProcessStartInfo(); info.CreateNoWindow = true; info.WindowStyle = ProcessWindowStyle.Hidden; info.WorkingDirectory = System.Configuration.ConfigurationManager.AppSettings["GhostScriptView"]; info.Arguments =Arguments+ @" -sOutputFile=" + OutputFile + " " + InputFile; info.FileName = @"gswin32c.exe"; Process subProcess = new Process(); subProcess.StartInfo = info; subProcess.Start(); subProcess.WaitForExit(int.MaxValue); if (deletePDF) { System.IO.File.Delete(InputFile); } return result; } Songhuan 谢谢! 我试试看! 谢谢!我试着从java转换到.net了 ,可是到了BufferedImage,我就转换不了。==========刚才抽空试了一下,确实有这个问题,会抛出 "type not implemented yet" 的Exception通过Reflector发现 PDFBox 使用的 BufferedImage 中一种类型刚好处于 not implemented,目前,我也不知道有没有其他方法了希望 songhuan 的提供的能实现 songhuan 不好意思!我下载了!两个压缩文件,每个都解压出很多!我不知道怎么用!请问怎么安装呀?我在网上也没查到安装方法!麻烦您详细的说一下!谢谢! http://downloads.sourceforge.net/ghostscript/gs861w32.exe?modtime=1196280996&big_mirror=1用上面的地址,下下来是一个安装包,默认安装。怎么用都贴了代码了。参考上面。主要的过程就是另外启动一个进程,给参数,给输入文件,然后输出文件。你可以看到方法里有用到web.config的地方。参考这样进行配置<appSettings> <add key="GhostScriptView" value="C:\Program Files\gs\gs8.54\bin"/> <add key="GhostScriptArguments" value="-dSAFER -dBATCH -dNOPAUSE -r150 -sDEVICE=jpeg -dGraphicsAlphaBits=4"/> </appSettings> 不好意思,那个PDFLibrary 是用来取有几页的。你可以默认它有多页。把这部分注释掉就可以了。还有,不是引用。装上了之后只是用当前进程启动新进程。不引用。你看看代码 songhuan 谢谢你 ! 实现了!图片得到了!页数也可以得到了! 万分感谢!我会另加给你20分表示对你的谢意!可是我们公司觉的启动进程不太安全(稳定),最好不用!要我用组件或能解读PDF文件提取里面的图片最好! 谢谢你的分,呵呵你刚才找到的那个dll好像可以这样生成。但是我没有试成功。你可以查看帮助再试试 我这那个加分的框总是显示不了!稍后再给你分!不好意思!gsdll32.dll这个Dll我根本没法引用!更别说里面的类、方法了! PDFLibrary myPDFLibrary = new PDFLibrary();PDFLibrary是什么类? aaaaaaaaaaaaaaa 请问大哥你是怎么得到图片的呢?我也用了上面帖出的代码,怎么里面有好几个类都没有哦???请大哥指点一下,谢谢!PDFLibrary myPDFLibrary = new PDFLibrary(); 我也用了这个,但图片转出来不清晰。也可能是原PDF文件是扫描的。本来质量就不好。转图片后更不好。 参考这个吧,方法很多,很全,使用代码也有的。http://blog.csdn.net/shi0090/article/details/7262199 关于正则表达式问题 请问如何在现有的工程中添加另一个工程中的CheckUpdate的组件? 显示网络图片 试用版的软件,它用的是什么数据库? C语言的结构转体转C# 引用sip的dll,高手进 请问:如何将Excel数据导入到SQL中(20分) socket传送文件问题 如何给一个表加事件 数据库的问题 200分姜老师的学生求助!飞刀、小宝等大狭有空给看一眼 在登录页面加一个TextBox后 登录时 IE 不会自动记录密码 System.Io.Stream怎么重复利用
请各位大侠帮忙!!
http://www.cnblogs.com/hardrock/category/33862.html
可是他的那个转换图片的方法在C#中用不了呀,这个方法写在了main函数里 !应该在C#中怎么用?请指教!万分感谢!
谢谢 我也用了一下个控件
可是他的那个转换图片的方法在C#中用不了呀,这个方法写在了main函数里 !应该在C#中怎么用?请指教!万分感谢!
我试过这个控件了,可是我不知道那个方法是提取图片的,而且他里面有一个自定义的image类型,不知道怎么转换成System.Drawing.Image类型!请指教!
万分感谢!
谢谢!我试着从java转换到.net了 ,可是到了BufferedImage,我就转换不了。
请您指教!
public IList<string> GenerateThumbnailImage(string InputFile, bool deletePDF, string filename)
{
return GenerateImage(InputFile, deletePDF, filename, "-dSAFER -dBATCH -dNOPAUSE -r150 -sDEVICE=jpeg -dGraphicsAlphaBits=4");
} private IList<string> GenerateImage(string InputFile, bool deletePDF, string filename,string Arguments)
{
IList<string> result = new List<string>();
PDFLibrary myPDFLibrary = new PDFLibrary();
int PDFPageCount = myPDFLibrary.GetPageCount(InputFile);
if (PDFPageCount==0)
{
return result;
} string OutputFile = filename; string ExtOut = Path.GetExtension(OutputFile);
string partOut = OutputFile.Remove(OutputFile.Length - ExtOut.Length, ExtOut.Length); if (PDFPageCount == 1)
{
OutputFile=partOut+ ".jpg";
result.Add(OutputFile);
if (File.Exists(OutputFile))
{
File.Delete(OutputFile);
}
} else
{
for (int i = 0; i < PDFPageCount; i++)
{
string eachFileName = partOut + (i + 1).ToString() + ".jpg";
result.Add(eachFileName);
if (File.Exists(eachFileName))
{
File.Delete(eachFileName);
}
} OutputFile = OutputFile.Remove(OutputFile.Length - ExtOut.Length, ExtOut.Length);
OutputFile += "%d.jpg";
}
ProcessStartInfo info = new ProcessStartInfo();
info.CreateNoWindow = true;
info.WindowStyle = ProcessWindowStyle.Hidden;
info.WorkingDirectory = System.Configuration.ConfigurationManager.AppSettings["GhostScriptView"];
info.Arguments =Arguments+ @" -sOutputFile=" + OutputFile + " " + InputFile;
info.FileName = @"gswin32c.exe";
Process subProcess = new Process();
subProcess.StartInfo = info;
subProcess.Start();
subProcess.WaitForExit(int.MaxValue);
if (deletePDF)
{
System.IO.File.Delete(InputFile);
}
return result;
}
麻烦您详细的说一下!谢谢!
用上面的地址,下下来是一个安装包,默认安装。
怎么用都贴了代码了。参考上面。主要的过程就是另外启动一个进程,给参数,给输入文件,然后输出文件。
你可以看到方法里有用到web.config的地方。参考这样进行配置<appSettings>
<add key="GhostScriptView" value="C:\Program Files\gs\gs8.54\bin"/>
<add key="GhostScriptArguments" value="-dSAFER -dBATCH -dNOPAUSE -r150 -sDEVICE=jpeg -dGraphicsAlphaBits=4"/>
</appSettings>
还有,不是引用。装上了之后只是用当前进程启动新进程。不引用。你看看代码
你刚才找到的那个dll好像可以这样生成。但是我没有试成功。你可以查看帮助再试试
我这那个加分的框总是显示不了!稍后再给你分!不好意思!gsdll32.dll这个Dll我根本没法引用!更别说里面的类、方法了!
PDFLibrary是什么类?
http://blog.csdn.net/shi0090/article/details/7262199