上一篇文章是寫了利用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);
}