2차원 바코드 만드는 부분.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Runtime.InteropServices;

using System.IO;

 

namespace ConnectionSystem

{

public sealed class DzQREncoder

{

[DllImport("DzQREncoder.dll")]

private static extern int MakeQR(string a_pszFileName, int a_nMulti);

[DllImport("DzQREncoder.dll")]

private static extern IntPtr GetLastErr();

[DllImport("DzQREncoder.dll")]

private static extern int SetNumber_CityCodeW(string a_pszCode);

[DllImport("DzQREncoder.dll")]

private static extern int SetNumber_OrgCodeW(string a_pszCode);

[DllImport("DzQREncoder.dll")]

private static extern int SetNumber_AdminCodeW(string a_pszCode);

[DllImport("DzQREncoder.dll")]

private static extern int SetNumber_NULLCodeW(string a_pszCode);

[DllImport("DzQREncoder.dll")]

private static extern int SetNumber_AccountCodeW(string a_pszDate);

[DllImport("DzQREncoder.dll")]

private static extern int SetNumber_TaxDateW(string a_pszCode);

[DllImport("DzQREncoder.dll")]

private static extern int SetNumber_TaxTypeW(string a_pszData);

[DllImport("DzQREncoder.dll")]

private static extern int SetNumber_TaxDate2W(string a_pszData);

[DllImport("DzQREncoder.dll")]

private static extern int SetTaxInfo_TimeLimitOfPaymentW(string a_pszData);

[DllImport("DzQREncoder.dll")]

private static extern int SetTaxInfo_TaxAmountW(string a_pszData);

[DllImport("DzQREncoder.dll")]

private static extern int SetTaxInfo_SocialNumberW(string a_pszData);

[DllImport("DzQREncoder.dll")]

private static extern int SetTaxInfo_NameW(string a_pszData);

[DllImport("DzQREncoder.dll")]

private static extern int SetInfomation_EtcW(string a_pszData);

 

 

 

[DllImport("DzQREncoder.dll")]

private static extern int SetNumber_CityCode(string a_pszCode);

[DllImport("DzQREncoder.dll")]

private static extern int SetNumber_OrgCode(string a_pszCode);

[DllImport("DzQREncoder.dll")]

private static extern int SetNumber_AdminCode(string a_pszCode);

[DllImport("DzQREncoder.dll")]

private static extern int SetNumber_NULLCode(string a_pszCode);

[DllImport("DzQREncoder.dll")]

private static extern int SetNumber_AccountCode(string a_pszDate);

[DllImport("DzQREncoder.dll")]

private static extern int SetNumber_TaxDate(string a_pszCode);

[DllImport("DzQREncoder.dll")]

private static extern int SetNumber_TaxType(string a_pszData);

[DllImport("DzQREncoder.dll")]

private static extern int SetNumber_TaxDate2(string a_pszData);

[DllImport("DzQREncoder.dll")]

private static extern int SetTaxInfo_TimeLimitOfPayment(string a_pszData);

[DllImport("DzQREncoder.dll")]

private static extern int SetTaxInfo_TaxAmount(string a_pszData);

[DllImport("DzQREncoder.dll")]

private static extern int SetTaxInfo_SocialNumber(string a_pszData);

[DllImport("DzQREncoder.dll")]

private static extern int SetTaxInfo_Name(string a_pszData);

[DllImport("DzQREncoder.dll")]

private static extern int SetInfomation_Etc(string a_pszData);

 

/// <summary>

/// 이미지 저장

/// </summary>

/// <param name="m_strCityCode">서울시 코드</param>

/// <param name="m_strOrgCode">기관코드</param>

/// <param name="m_strAdminCode">행정동</param>

/// <param name="m_strNULL">빈칸</param>

/// <param name="m_strTaxCode">회계</param>

/// <param name="m_strDate">과세년월</param>

/// <param name="m_strTaxType">수기고지구분</param>

/// <param name="m_strTaxNum">신고일시</param>

/// <param name="m_strTimeLimitDate">납부기한</param>

/// <param name="m_strTaxAmount">납부세액</param>

/// <param name="m_strSocialCode">주민번호(법인번호)</param>

/// <param name="m_strName">성명(법인명)</param>

/// <param name="szData">기타</param>

/// <param name="strComCd">회사코드</param>

/// <returns>저장된 이미지 full path</returns>

public string Print(string m_strCityCode, string m_strOrgCode,

string m_strAdminCode,

string m_strNULL,

string m_strTaxCode,

string m_strDate,

string m_strTaxType,

string m_strTaxNum,

string m_strTimeLimitDate,

string m_strTaxAmount,

string m_strSocialCode,

string m_strName,

string szData,string strComCd)

{

 

try

{

 

string strData = string.Empty;

 

for (int nCount = 0; nCount < 244; ++nCount)

{

strData += "0";

}

 

if (SetNumber_CityCode(m_strCityCode) == 0) { throw new Exception("서울시 코드 길이 오류."); }

if (SetNumber_OrgCode(m_strOrgCode) == 0) { throw new Exception("기관코드 길이 오류"); }

if (SetNumber_AdminCode(m_strAdminCode) == 0) { throw new Exception("행정동 길이 오류"); }

if (SetNumber_NULLCode(m_strNULL) == 0) { throw new Exception("빈칸 길이 오류"); }

if (SetNumber_AccountCode(m_strTaxCode) == 0) { throw new Exception("회계 길이 길이 오류"); }

if (SetNumber_TaxDate(m_strDate) == 0) { throw new Exception("과세년월 길이 오류11"); }

if (SetNumber_TaxType(m_strTaxType) == 0) { throw new Exception("수기고지구분 길이 오류"); }

if (SetNumber_TaxDate2(m_strTaxNum) == 0) { throw new Exception("신고일시 길이 오류"); }

 

if (SetTaxInfo_TimeLimitOfPayment(m_strTimeLimitDate) == 0) { throw new Exception("납부기한 길이 오류"); }

if (SetTaxInfo_TaxAmount(m_strTaxAmount) == 0) { throw new Exception("납부세액 길이 오류"); }

if (SetTaxInfo_SocialNumber(m_strSocialCode) == 0) { throw new Exception("주민번호(법인번호) 길이 오류"); }

if (SetTaxInfo_Name(m_strName) == 0) { throw new Exception("성명(법인명) 길이 오류"); }

if (SetInfomation_Etc(strData) == 0) { throw new Exception("기타"); }

 

string strPath = string.Format(@"{0}{1}",ECount.Framework.Configuration.ConfigManager.GetString("BarCodePath"), strComCd);

 

string strUncPath = HttpContext.Current.Server.MapPath(strPath);

//해당 폴더가 없을시 생성한다.

if (!Directory.Exists(strPath))

{

Directory.CreateDirectory(strUncPath);

}

string strImgPath = string.Format(@"{0}/{1}.bmp", strPath, System.Guid.NewGuid().ToString());

 

string strImgUncPath = HttpContext.Current.Server.MapPath(strImgPath);

MakeQR(strImgUncPath, 1);

return strImgPath;

}

catch (DllNotFoundException e)

{

throw e;

}

}

}

}

 

2차원 바코드를 구현 해야 된다고 한다.

바코드 만드는 샘플을 보내달라고 했더니..

C++로 응용프로그램 샘플이 날라오다니…

 

이걸 참조해서 웹으로 구현 해야 한다.

 

개발 환경은 .net3.5 웹기반..

 

응용프로그램을 만든 회사는 더존으로 되어 있군.. 전화해서 물어봐야 되나.. 고민..

 

걍 하기로 했다..

 

먼저 더존에서 개발한 DzQREncoder.dll 을 bin폴더에 넣었다.

 

그리구서 class를 생성.

public sealed class DzQREncoder

{

[DllImport("DzQREncoder.dll")]

private static extern int MakeQR(string a_pszFileName, int a_nMulti);

[DllImport("DzQREncoder.dll")]

private static extern IntPtr GetLastErr();

[DllImport("DzQREncoder.dll")]

private static extern int SetNumber_CityCodeW(string a_pszCode);

[DllImport("DzQREncoder.dll")]

private static extern int SetNumber_OrgCodeW(string a_pszCode);

[DllImport("DzQREncoder.dll")]

private static extern int SetNumber_AdminCodeW(string a_pszCode);

[DllImport("DzQREncoder.dll")]

private static extern int SetNumber_NULLCodeW(string a_pszCode);

[DllImport("DzQREncoder.dll")]

private static extern int SetNumber_AccountCodeW(string a_pszDate);

[DllImport("DzQREncoder.dll")]

private static extern int SetNumber_TaxDateW(string a_pszCode);

[DllImport("DzQREncoder.dll")]

private static extern int SetNumber_TaxTypeW(string a_pszData);

[DllImport("DzQREncoder.dll")]

private static extern int SetNumber_TaxDate2W(string a_pszData);

[DllImport("DzQREncoder.dll")]

private static extern int SetTaxInfo_TimeLimitOfPaymentW(string a_pszData);

[DllImport("DzQREncoder.dll")]

private static extern int SetTaxInfo_TaxAmountW(string a_pszData);

[DllImport("DzQREncoder.dll")]

private static extern int SetTaxInfo_SocialNumberW(string a_pszData);

[DllImport("DzQREncoder.dll")]

private static extern int SetTaxInfo_NameW(string a_pszData);

[DllImport("DzQREncoder.dll")]

private static extern int SetInfomation_EtcW(string a_pszData);

 

 

 

[DllImport("DzQREncoder.dll")]

private static extern int SetNumber_CityCode(string a_pszCode);

[DllImport("DzQREncoder.dll")]

private static extern int SetNumber_OrgCode(string a_pszCode);

[DllImport("DzQREncoder.dll")]

private static extern int SetNumber_AdminCode(string a_pszCode);

[DllImport("DzQREncoder.dll")]

private static extern int SetNumber_NULLCode(string a_pszCode);

[DllImport("DzQREncoder.dll")]

private static extern int SetNumber_AccountCode(string a_pszDate);

[DllImport("DzQREncoder.dll")]

private static extern int SetNumber_TaxDate(string a_pszCode);

[DllImport("DzQREncoder.dll")]

private static extern int SetNumber_TaxType(string a_pszData);

[DllImport("DzQREncoder.dll")]

private static extern int SetNumber_TaxDate2(string a_pszData);

[DllImport("DzQREncoder.dll")]

private static extern int SetTaxInfo_TimeLimitOfPayment(string a_pszData);

[DllImport("DzQREncoder.dll")]

private static extern int SetTaxInfo_TaxAmount(string a_pszData);

[DllImport("DzQREncoder.dll")]

private static extern int SetTaxInfo_SocialNumber(string a_pszData);

[DllImport("DzQREncoder.dll")]

private static extern int SetTaxInfo_Name(string a_pszData);

[DllImport("DzQREncoder.dll")]

private static extern int SetInfomation_Etc(string a_pszData);

}

 

만든 김에

호출하면 생성된 이미지 url을 return 해주도록 처리해보자..

 

 

회사에서 테스트용으로 만든 2차원 바코드 이미지