上一篇文章是写了利用C#成功实现Pdf转换成图片,这次就主要讨论怎样利用VC++ 2008来调用。
下面有一些参考网站:
http://blog.csdn.net/suoxd123/archive/2010/01/08/5157668.aspx
http://www.vckbase.com/document/viewdoc/?id=1852
因为我是用VS2008编译并调用,因此实现起来并不是很麻烦。
第一步:
1、在建立的项目文件中,打开“项目属性”对话框,方法是右键单击“解决方案资源管理器”中的项目并选择“属性”。
2、展开“配置属性”旁边的节点并选择“常规”。在右侧窗格中的“项目默认值”下,将“公共语言运行库支持”设置为“公共语言运行库支持 (/clr)”。
第二步:可以建立一个edit显示打开文件名,在用一个按钮操作转换。在.cpp文件中加入:
函数中添加:
cpp文件头中:
#include <stdlib.h>
#include <vcclr.h>
using System::String;
using System::IntPtr;
using namespace System::Runtime::InteropServices;
#using "..//Debug//PDFLibSharp.dll"
#import "..//Debug//PDFLibSharp.tlb"
using namespace PDFLibSharp;
然后是函数:
void CUseDllDlg::OnBnClickedConvert()
{
// TODO: 在此添加控件通知处理程序代码
PdfToJpg ^pTOj = gcnew PdfToJpg(); //建立类
String ^str1 = Marshal::PtrToStringAuto(static_cast <IntPtr>(filename.GetBuffer(0))); //类型转换
UpdateData(true); //读取第几页m_num
int num;
int width = 900; //宽度
int height = 1300; //高度
// num = pTOj->ConvertPdftoJpg(str1,m_num); //默认宽度和高度
num = pTOj->ConvertPdftoJpg(str1,m_num, width, height); //自己设宽度和高的
CString str2; //各种错误
if (num == 0)
{
str2 = "no file";
}
if (num == 1)
{
str2 = "can not open";
}
if (num == 2)
{
str2 = "page big";
}
if (num == 10)
{
str2 = "convert error";
}
MessageBox((LPCTSTR)str2);
}