MICR E-13B 字体与 ANSI X9.27

#MICR-E13B #ANSI-X9.27 #BankingStandards

MICR(Magnetic Ink Character Recognition,磁性墨水文字识别)是全球银行系统的基石技术,自 1958 年以来一直支持着高速、自动化的支票处理。

关键 MICR 分隔符

  • Transit(银行代码)
  • On-Us(账号)
  • 金额 (Amount)
  • 连字符 (Dash)

如今,MICR E-13B 字体字符被广泛应用于美国、加拿大和许多其他国家的银行业,用于打印银行支票和汇票。许多企业需要满足 MICR 标准才能接受支票或汇票。正确的 MICR E-13B 字符集是确保交易顺利进行的关键。

ANSI X9.27《磁性墨水文字识别 (MICR) 打印与测试规范》详细规定了 MICR 字体中定义的 14 个字符(包括 10 个数字、Transit 符号、金额符号、On-Us 符号和连字符)的尺寸、形状和公差。

当您使用 Barcodesoft MICR E-13B 字体打印银行支票时,它们也符合加拿大支付协会(CPA)颁布的 Standard 006 标准要求。

Barcodesoft MICR E13B 字体包包含 9 套字体系列:MICR、MICRB、MICRBN、MICRBW、MICRL、MICRLN、MICRLW、MICRN、MICRW。这些 MICR 字体在宽高比和笔画宽度上略有不同,以弥补 MICR 打印设备可能产生的误差。
当以 10 点(point size 10)大小打印时,Barcodesoft MICR 字体的设计完全符合 ANSI X9.27 文档的要求。

Barcodesoft MICR 字体提供 TrueType、PostScript、PCL 格式、OpenType (eot)、Web Open Font Format (woff / woff2) 以及 SVG 格式。它可以嵌入到 Adobe PDF 文件和网页中。

Barcodesoft MICR E-13b 字体支持 Peachtree、QuickBooks 等财务软件。

演示版(Demo)MICR E-13b 字体中的部分字符带有 "Demo" 水印。

如果您想自行打印银行支票,除了需要 MICR E13b 字体外,还需要 MICR 碳粉和空白支票纸。MICR 碳粉具有磁性,这样您的 MICR 行(micr line)才能通过银行测试。否则,您的支票将被银行拒收。

为方便用户使用,Barcodesoft MICR 字体的映射表(Mapping table)已修改如下。

Barcodesoft 的实现方式完全符合 ANSI X9.27 规范,确保每个打印出来的字符都符合现代分拣机(Sorter machines)所需的精确几何公差。

符号 对应键
MICR e-13b font Transit Symbol A / #
MICR e-13b font On-Us Symbol B / T
MICR e-13b font Amount Symbol C / O
MICR e-13b font Dash Symbol D / -
MICR e-13b font number one 1
MICR e-13b font number two 2
MICR e-13b font number three 3
MICR e-13b font number four 4
MICR e-13b font number five 5
MICR e-13b font number six 6
MICR e-13b font number seven 7
MICR e-13b font number eight 8
MICR e-13b font number nine 9
MICR e-13b font number zero 0

开发者集成

#include "stdafx.h"
#include "atlbase.h"
#import "bcspreciseocr.tlb"
using namespace BCSPreciseOCRLib;
int _tmain(int argc, _TCHAR* argv[])
{
USES_CONVERSION;
CoInitialize(NULL);
try
{
IBCSOCRPtr pOCR(__uuidof(BCSOCR));
pOCR->raw_SetMode(0); // 0 代表扫描期模式
pOCR->raw_SetFont(0); // 0 代表 MICR 字体 OCR
_bstr_t strOCR = pOCR->Recognize(T2OLE(_T("image.bmp")));
_tprintf(L"%s", OLE2CT(strOCR));
}
catch (const _com_error& e)
{
_tprintf("Error: 0x%08x %s\n", e.Error(), e.ErrorMessage());
}
CoUninitialize();
return 0;
}