@anytestforpm/ocr 1.3.7 → 1.3.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +3 -2
  2. package/ocr.js +21 -14
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Install
2
2
  npm i @anytestforpm/ocr
3
3
  # Language Support
4
- 支持地區為: VN IN ID BR MM PK TH PH NG
4
+ 支持地區為: VN IN ID BR MM PK TH PH NG BD TR US
5
5
  # Usage Example
6
6
  1.初始化OCR的辨識語系及API路由設定,就會自動取得后台設定檔
7
7
  ```javascript
@@ -23,6 +23,7 @@ mounted() {
23
23
  import { recognizeOCR, RESULT_TYPE } from '@anytestforpm/ocr';
24
24
 
25
25
  try {
26
+ //代入要辨識的img url
26
27
  let ocrResData = await recognizeOCR(imgUrl);
27
28
  //取得后台設定檔失敗
28
29
  if (ocrResData.type === RESULT_TYPE.CONFIG_INVALID) {
@@ -56,5 +57,5 @@ try {
56
57
  3.recognizeOCR(imgUrl) ,入參imgUrl
57
58
  let ocrResData = await recognizeOCR(imgUrl);
58
59
  mixins.js
59
- ![action](https://drive.google.com/uc?export=view&id=1glB1dtkpb344ezPqzzZFjrY85epR2HCh)
60
+ ![image](https://drive.google.com/uc?export=view&id=1glB1dtkpb344ezPqzzZFjrY85epR2HCh)
60
61
 
package/ocr.js CHANGED
@@ -15,7 +15,10 @@ const OCR_LANGUAGE_MAP = {
15
15
  PK: "eng",
16
16
  TH: "tha+eng",
17
17
  PH: "eng",
18
- NG: "eng"
18
+ NG: "eng",
19
+ BD: "ben",
20
+ TR: "tur",
21
+ US: "eng"
19
22
  }
20
23
 
21
24
  const setResponseData = (val) => {
@@ -46,12 +49,12 @@ export const hello = (val) => {
46
49
  * @description initialization ocr config
47
50
  * @param {String} region area of config
48
51
  */
49
- export const initOCR = (region,apiHost) => {
52
+ export const initOCR = (region, apiHost) => {
50
53
  try {
51
54
  //sign
52
- let timestamp = Math.fround(Date.now()/1000);
53
- let hashString = md5(region+"."+timestamp).toUpperCase();
54
-
55
+ let timestamp = Math.fround(Date.now() / 1000);
56
+ let hashString = md5(region + "." + timestamp).toUpperCase();
57
+
55
58
  //get config
56
59
  configData = null;
57
60
  axios({
@@ -69,10 +72,10 @@ export const initOCR = (region,apiHost) => {
69
72
  if (res.status === 200 && res.data.config.enable) {
70
73
  configData = res.data;
71
74
  console.log("Initialization successful");
72
- }else if (res.status === 200 && !res.data.config.enable) {
75
+ } else if (res.status === 200 && !res.data.config.enable) {
73
76
  configData = res.data;
74
77
  console.log("OCR service disabled");
75
- }else {
78
+ } else {
76
79
  console.log("Initialization failed");
77
80
  }
78
81
  })
@@ -90,7 +93,7 @@ export const initOCR = (region,apiHost) => {
90
93
  * @param {String} ImageUrl image url
91
94
  */
92
95
  export const recognizeOCR = async (ImageUrl) => {
93
-
96
+
94
97
  //初始化失敗
95
98
  if (!configData) {
96
99
  return new Promise((resolve, reject) => {
@@ -105,7 +108,7 @@ export const recognizeOCR = async (ImageUrl) => {
105
108
  resolve(setResponseData(RESULT_TYPE.CONFIG_DISABLED));
106
109
  });
107
110
  }
108
-
111
+
109
112
  let ocr_setTimeout = null;
110
113
  let startTime = new Date();
111
114
  let worker = await createWorker(
@@ -129,12 +132,12 @@ export const recognizeOCR = async (ImageUrl) => {
129
132
  try {
130
133
  await worker.loadLanguage(OCR_LANGUAGE_MAP[configData.region]);
131
134
  await worker.initialize(OCR_LANGUAGE_MAP[configData.region]);
132
-
135
+
133
136
  //OCR辨識結果的內文
134
137
  let result = await worker.recognize(ImageUrl);
135
138
  let resText = String(result.data.text);
136
139
  if (configData.region === "TH") {
137
- resText = resText.replace(/\s+/g,"");
140
+ resText = resText.replace(/\s+/g, "");
138
141
  }
139
142
  console.log("OCR Source Text >>> ", resText);
140
143
 
@@ -147,7 +150,13 @@ export const recognizeOCR = async (ImageUrl) => {
147
150
  }
148
151
 
149
152
  //比對合法的關鍵字
150
- let validKeyWords = configData.keywords.valid.filter((item) => resText.search(item) >= 0);
153
+ let validKeyWords = configData.keywords.valid.filter((item) => {
154
+ if (configData.region === "TH") {
155
+ return resText.search(item.replace(/\s+/g, "")) >= 0
156
+ } else {
157
+ return resText.search(item) >= 0
158
+ }
159
+ });
151
160
  console.log("search valid keywords result >>> ", validKeyWords);
152
161
  if (validKeyWords.length >= configData.config.verify_in_counts) {
153
162
  resolve(setResponseData(RESULT_TYPE.KEYWORDS_SUCCESS));
@@ -168,7 +177,6 @@ export const recognizeOCR = async (ImageUrl) => {
168
177
  return;
169
178
  }
170
179
  }
171
-
172
180
 
173
181
  //驗證失敗 沒有找到任何匹配的條件
174
182
  console.log("verification failed , keywords not found");
@@ -178,7 +186,6 @@ export const recognizeOCR = async (ImageUrl) => {
178
186
  reject(setResponseData(RESULT_TYPE.KEYWORDS_EXCEPTION));
179
187
  console.error(error);
180
188
  } finally {
181
-
182
189
  clearTimeout(ocr_setTimeout);
183
190
  await worker.terminate();
184
191
  worker = null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anytestforpm/ocr",
3
- "version": "1.3.7",
3
+ "version": "1.3.9",
4
4
  "description": "",
5
5
  "main": "ocr.js",
6
6
  "scripts": {