将PDF中某一串字符生成条形码

本人根据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窗体程序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值