Acrobat 转换pdf到png的另一种方法
此方法效率较低,大概2秒转3页pdf成png图片,但是可以保证图片质量很高,分辨率很高。有优化的地方,但没时间研究。先放代码吧。
前提是安装 acrobat 11(即acrobat xi)
CAcroApp mApp = new AcroApp();
mApp.Hide();
String szPdfPathConst = AppDomain.CurrentDomain.BaseDirectory + @"深入浅出WPF.pdf";
AcroAVDoc g_AVDoc = new AcroAVDoc();
//open the PDF
if (g_AVDoc.Open(szPdfPathConst, ""))
{
int currentIndex = 0;
bool formDataExists = true; Object newDoc = null; if (g_AVDoc.IsValid())
{ CAcroPDDoc pdDoc = (CAcroPDDoc)g_AVDoc.GetPDDoc();
int iNum = pdDoc.GetNumPages();
Object jsObj = pdDoc.GetJSObject();
if (formDataExists)
{
Type T = jsObj.GetType(); object[] extractPagesParam = { currentIndex,iNum-1 };
newDoc = T.InvokeMember(
"extractPages",
BindingFlags.InvokeMethod |
BindingFlags.Public |
BindingFlags.Instance,
null, jsObj, extractPagesParam); String newFileName = AppDomain.CurrentDomain.BaseDirectory + "data\\" + currentIndex + ".png";
Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory + "data"); object[] saveAsParam = { newFileName, "com.adobe.acrobat.png" };
T.InvokeMember(
"saveAs",
BindingFlags.InvokeMethod |
BindingFlags.Public |
BindingFlags.Instance,
null, newDoc, saveAsParam);
formDataExists = currentIndex != iNum - 1; object[] closeDocParam = { true };
T.InvokeMember(
"closeDoc",
BindingFlags.InvokeMethod |
BindingFlags.Public |
BindingFlags.Instance,
null, newDoc, closeDocParam); currentIndex++;
}
}
}
mApp.CloseAllDocs();
mApp.Exit();
感谢阅读的人,希望可以帮到你。
Acrobat 转换pdf到png的另一种方法的更多相关文章
- UNICODE串转换成char类型串的四种方法
1. 调用 WideCharToMultiByte() API int WideCharToMultiByte ( UINT CodePage, //1 U ...
- Javadoc转换chm帮助文档的四种方法总结
1) 将现有的 html 文件集(比如 api) 制作成chm 文档 http://www.blogjava.net/lishunli/archive/2010/01/07/308618.html 我 ...
- SharePoint 2013 Word 转换PDF服务介绍及示例
前言:在SharePoint使用过程中,经常会发现将文档进行格式转换的需求,之前,看到SharePoint 2013有将PPT转换PDF文档的服务,后来,才发现SharePoint 2010开始,就有 ...
- SharePoint Word 转换PDF服务介绍及示例
前言:在SharePoint使用过程中,经常会发现将文档进行格式转换的需求,之前,看到SharePoint 2013有将PPT转换PDF文档的服务,后来,才发现SharePoint 2010开始,就有 ...
- python3图片裁剪+转换pdf+压缩
本地大量长图,要发送给别人,所以要对图片进行裁剪+转换pdf+压缩 import zipfile import os from concurrent.futures import ThreadPool ...
- 将页面内容转换Pdf\Word\Excel格式
项目中用到了将邮件内容转换为Pdf.Word.Excel格式,做为邮件附件发送. 查了一些解决方案,走了一些弯路.以此代码记录下. 转换PDF需要下载NReco.PdfGenerator.dll 以下 ...
- openoffice excel word 转换pdf 支持本地调用和远程调用
OpenOffice.org 是一套跨平台的办公室软件套件,能在Windows.Linux.MacOS X (X11)和 Solaris 等操作系统上执行.它与各个主要的办公室软件套件兼容.OpenO ...
- 文件在线预览doc,docx转换pdf(一)
文件在线预览doc,docx转换pdf(一) 1. 前言 文档转换是一个是一块硬骨头,但是也是必不可少的,我们正好做的知识库产品中,也面临着同样的问题,文档转换,精准的全文搜索,知识的转换率,是知识库 ...
- 【docx4j】docx4j操作docx,实现替换内容、转换pdf、html等操作
主要是想要用此功插件操作docx,主要的操作就是操作段落等信息,另外,也想实现替换docx的内容,实现根据模板动态生成内容的效果,也想用此插件实现docx转换pdf. word的格式其实可以用xml来 ...
随机推荐
- sql针对某一字段去重,并且保留其他字段
今天客户提了一个小需求,希望我能提供一条sql语句,帮助他对数据中 _field 这个字段的值去重,并且保留其他字段的数据.第一反应是select distinct,但这种语句在对某个字段去重时,无法 ...
- BZOJ:4820: [Sdoi2017]硬币游戏&&BZOJ:1444: [Jsoi2009]有趣的游戏(高斯消元求概率)
1444: [Jsoi2009]有趣的游戏 4820: [Sdoi2017]硬币游戏 这两道题都是关于不断随机生成字符后求出现给定字符串的概率的问题. 第一题数据范围较小,将串建成AC自动机以后,以A ...
- hihoCoder #1078 : 线段树的区间修改(线段树区间更新板子题)
#1078 : 线段树的区间修改 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 对于小Ho表现出的对线段树的理解,小Hi表示挺满意的,但是满意就够了么?于是小Hi将问题 ...
- hihoCoder #1043 : 完全背包(板子题)
#1043 : 完全背包 时间限制:20000ms 单点时限:1000ms 内存限制:256MB 描述 且说之前的故事里,小Hi和小Ho费劲心思终于拿到了茫茫多的奖券!而现在,终于到了小Ho领取奖励的 ...
- BZOJ2441: [中山市选2011]小W的问题
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2441 首先要注意到x1>x3且x5>x3(要是没有这个设定就是树状数组水题了.. ...
- 迷宫问题(bfs+记录路径)
题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=105278#problem/K K - 迷宫问题 Time Limit:1000 ...
- spring如何控制事务
Spring 的事务,可以说是 Spring AOP 的一种实现. AOP面向切面编程,即在不修改源代码的情况下,对原有功能进行扩展,通过代理类来对具体类进行操作. spring是一个容器,通过spr ...
- Linq学习(主要参考linq之路)----2LINQ方法语法
方法语法:Fluent Syntax 方法语法是非常灵活和重要的.我们这里讲描述使用连接查询运算符的方式来创建复杂的子查询,方法语法的本质是通过扩展方法和Lambda表达式来创建查询. eg1: st ...
- PHP headers_sent() 函数
PHP HTTP 函数 定义和用法 headers_sent() 函数检查 HTTP 标头是否已被发送以及在哪里被发送. 如果报头已发送,则返回 true,否则返回 false. 语法 headers ...
- 谁能教我iCloud怎么用?
iCloud是苹果公司所提供的云端服务,使用者可以免费储存5GB的资料.你已经开始使用IOS5,并且你很兴奋的着手于将它同步至云服务层.以下就是怎样让你的设备更新至云服务层的非常简单的步骤.在你的iO ...