本人根据Quick PDF Library SDK 11.15版本编写的字符串生成条形码程序。
void CHelloWorldDlg::OnBnClickedHelloWorld()
{
DebenuPDFLibraryDLL1115 DPL("DebenuPDFLibraryDLL1115.dll");//加载工程目录的dll文件,exe文件跟dll
// Library key
CStringW strLicenseKey = L"j39163i38a653748u9f66rb5y";//密钥
// PDF output filename
// CStringW strFileName = L"QQQ.pdf";
// Display message containing the library version
CStringW strMessage = L"Quick PDF Library Hello World sample";
strMessage += L"\n";
strMessage += L"Library version: " + DPL.LibraryVersion();
// Unlock the library
int iResult = DPL.UnlockKey(strLicenseKey);//解锁密钥
if (iResult == 1)
{
DPL.LoadFromFile(m_sourcePath, L"");//加载pdf
AfxMessageBox("文件加载成功", MB_ICONINFORMATION);
int numpages = DPL.PageCount();//获得页数
if (hainachuan==1&&haisitanpu==0)//操作海纳川
{
CStringW AAA[11] = {};
//DPL.SetOrigin(1); // Sets 0,0 coordinate position to top left of page, default is bottom left
for (int i=1; i <= numpages; i++ )
{
DPL.SelectPage(i);//遍历每一页
DPL.SetOrigin(1); // Sets 0,0 coordinate position to top left of page, default is bottom left
DPL.SetTextExtractionArea(0, 0, 1000, 1000); // Left, Top, Width, Height获得区域文本
CStringW ExtractedContent = DPL.GetPageText(8);//得到区域文本
for (int j = 0; j < 1500;j++)
{
if (('A' == ExtractedContent[j] && '2' == ExtractedContent[j + 1]) || ('A' == ExtractedContent[j] && '1' == ExtractedContent[j + 1]))
{
AAA[0] = ExtractedContent[j + 0];
AAA[1] = ExtractedContent[j + 1];
AAA[2] = ExtractedContent[j + 2];
AAA[3] = ExtractedContent[j + 3];
AAA[4] = ExtractedContent[j + 4];
AAA[5] = ExtractedContent[j + 5];
AAA[6] = ExtractedContent[j + 6];
AAA[7] = ExtractedContent[j + 7];
AAA[8] = ExtractedContent[j + 8];
AAA[9] = ExtractedContent[j + 9];
AAA[10] = ExtractedContent[j + 10];
break;
}
}
CStringW wwww = AAA[0] + AAA[1] + AAA[2] + AAA[3] + AAA[4] + AAA[5] + AAA[6]
+AAA[7]+AAA[8]+AAA[9]+AAA[10];
DPL.DrawBarcode(600, 500, 150, 50, wwww, 3, 0);//生成条形码
//DPL.SaveToFile(L"Barcodes.pdf");
//int flag = 1;
//AfxMessageBox(CString(ExtractedContent), MB_ICONINFORMATION);
}
CEdit* pEdit3 = (CEdit*)GetDlgItem(IDC_EDIT3);
CString strText3 = _T("");
pEdit3->GetWindowText(strText3);//重命名文件
path_filename = m_desPath + L"\\" + CStringW(strText3)+L".pdf";
DPL.SaveToFile(path_filename);//保存文件
AfxMessageBox("转换完成", MB_ICONINFORMATION);
}
else if (hainachuan == 0 && haisitanpu == 1)
{
CStringW AAA[10] = {};
//DPL.SetOrigin(1); // Sets 0,0 coordinate position to top left of page, default is bottom left
for (int i = 1; i <= numpages; i++)
{
DPL.SelectPage(i);
DPL.SetOrigin(1); // Sets 0,0 coordinate position to top left of page, default is bottom left
DPL.SetTextExtractionArea(0, 0, 1000, 1000); // Left, Top, Width, Height
CStringW ExtractedContent = DPL.GetPageText(8);
for (int j = 0; j < 1500; j++)
{
if (('K' == ExtractedContent[j] && '1' == ExtractedContent[j + 1]) || ('K' == ExtractedContent[j] && '9' == ExtractedContent[j + 5]))
{
AAA[0] = ExtractedContent[j + 0];
AAA[1] = ExtractedContent[j + 1];
AAA[2] = ExtractedContent[j + 2];
AAA[3] = ExtractedContent[j + 3];
AAA[4] = ExtractedContent[j + 4];
AAA[5] = ExtractedContent[j + 5];
AAA[6] = ExtractedContent[j + 6];
AAA[7] = ExtractedContent[j + 7];
AAA[8] = ExtractedContent[j + 8];
AAA[9] = ExtractedContent[j + 9];
//AAA[10] = ExtractedContent[j + 10];
break;
}
}
CStringW wwww = AAA[0] + AAA[1] + AAA[2] + AAA[3] + AAA[4] + AAA[5] + AAA[6]
+ AAA[7] + AAA[8] + AAA[9] /*+ AAA[10]*/;
DPL.DrawBarcode(170, 5, 80, 25, wwww, 3, 0);
//DPL.SaveToFile(L"Barcodes.pdf");
//int flag = 1;
//AfxMessageBox(CString(ExtractedContent), MB_ICONINFORMATION);
}
CEdit* pEdit3 = (CEdit*)GetDlgItem(IDC_EDIT3);
CString strText3 = _T("");
pEdit3->GetWindowText(strText3);
path_filename = m_desPath + L"\\" + CStringW(strText3)+L".pdf";
DPL.SaveToFile(path_filename);
AfxMessageBox("转换完成", MB_ICONINFORMATION);
}
else
{
AfxMessageBox("请选择:海斯坦普/海纳川", MB_ICONINFORMATION);
}
}
else
{
// Display invalid license key message
strMessage += L"\n";
strMessage += L"- Invalid license key -";
strMessage += L"\n";
strMessage += L"Please set your license key by editing this file";
AfxMessageBox(CString(strMessage), MB_ICONSTOP);
}
}
void CHelloWorldDlg::OnEnChangeEdit1()
{
// TODO: 如果该控件是 RICHEDIT 控件,它将不
// 发送此通知,除非重写 CDialog::OnInitDialog()
// 函数并调用 CRichEditCtrl().SetEventMask(),
// 同时将 ENM_CHANGE 标志“或”运算到掩码中。
// TODO: 在此添加控件通知处理程序代码
}
void CHelloWorldDlg::OnBnClickedButton2()//打开文件
{
// TODO: 在此添加控件通知处理程序代码
CEdit* pEdit1 = (CEdit*)GetDlgItem(IDC_EDIT1);
CString strText1 = _T("");
pEdit1->GetWindowText(strText1);
//strText += _T("ABC1");
CString strFilter;
strFilter = "All Files(*.*)|*.*||";
CFileDialog dlg(TRUE, NULL, NULL, OFN_EXPLORER | OFN_HIDEREADONLY |
OFN_ENABLESIZING | OFN_FILEMUSTEXIST, strFilter);
dlg.m_ofn.lStructSize = sizeof(OPENFILENAME);
if (dlg.DoModal() == IDOK)
{
m_sourcePath = dlg.GetPathName();//获得路径
}
strText1 = strText1 + CString(m_sourcePath);
pEdit1->SetWindowText(strText1);
UpdateData(TRUE);
}
void CHelloWorldDlg::OnBnClickedButton3()//保存文件
{
// TODO: 在此添加控件通知处理程序代码
LPBROWSEINFO lpbi = new BROWSEINFO;
lpbi->hwndOwner = GetSafeHwnd();//NULL;
lpbi->pidlRoot = NULL;
lpbi->pszDisplayName = NULL;
lpbi->lpszTitle = "请选择要移动或的目的地:";
lpbi->ulFlags = BIF_RETURNONLYFSDIRS | BIF_STATUSTEXT;
lpbi->lpfn = NULL;
LPITEMIDLIST lpitemidlist = SHBrowseForFolder(lpbi);
if (lpitemidlist == NULL)
{
delete lpbi;
lpbi = NULL;
return;
}
char path[MAX_PATH];
//转换项目标志符列表为一个系统文件路径
SHGetPathFromIDList(lpitemidlist, path);//获得路径
delete lpbi;
m_desPath = path;
UpdateData(FALSE);
CEdit* pEdit2 = (CEdit*)GetDlgItem(IDC_EDIT2);
CString strText2 = _T("");
pEdit2->GetWindowText(strText2);
strText2 = strText2 + CString(m_desPath);
pEdit2->SetWindowText(strText2);
}
void CHelloWorldDlg::OnBnClickedRadio2()
{
// TODO: 在此添加控件通知处理程序代码
haisitanpu = 1;
hainachuan = 0;
AfxMessageBox("海斯坦普", MB_ICONINFORMATION);
}
void CHelloWorldDlg::OnBnClickedRadio1()
{
// TODO: 在此添加控件通知处理程序代码
haisitanpu = 0;
hainachuan = 1;
AfxMessageBox("海纳川", MB_ICONINFORMATION);
}
软件版本VS2013,MFC窗体程序