Skip to content

Commit a6a37db

Browse files
committed
文章のページ跨ぎに対応
1 parent 60eed3a commit a6a37db

File tree

1 file changed

+36
-1
lines changed

1 file changed

+36
-1
lines changed

translate/src/modules/unicodeToBes.ts

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ export function unicodeToBes(unicode: string): Uint8Array {
143143
output[num_pos + 1] = Math.floor(letters_num / 255);
144144
console.log("Page: ", pages, num_pos, Math.floor(letters_num / 255));
145145
num_pos = output.length;
146+
console.log("sep", num_pos);
146147
output.push(0x00);
147148
// console.log(output.length);
148149
output.push(0x00);
@@ -173,6 +174,34 @@ export function unicodeToBes(unicode: string): Uint8Array {
173174
lines += 1;
174175
letters = output.length - separate_pos - 1;
175176
}
177+
if (lines === 21) {
178+
// ページをまたぐとき
179+
lines = 0;
180+
pages += 1;
181+
letters_on_page = letters_on_page - letters;
182+
letters_num = 0x19 + letters_on_page;
183+
output[num_pos] = (letters_num % 255) - Math.floor(letters_num / 255);
184+
output[num_pos + 1] = Math.floor(letters_num / 255);
185+
console.log("Page: ", pages, num_pos, Math.floor(letters_num / 255));
186+
num_pos = separate_pos + 1;
187+
console.log("con", num_pos);
188+
output.splice(separate_pos + 1, 0, 0x00);
189+
output.splice(separate_pos + 2, 0, 0x00);
190+
output.splice(separate_pos + 3, 0, 0xfd);
191+
letters_on_page = letters;
192+
for (var i = 0; i < 27; i++) {
193+
output.splice(separate_pos + i + 4, 0, 0xa0);
194+
letters_on_page += 1;
195+
}
196+
output.splice(separate_pos + 31, 0, 0xdc);
197+
num = mapping_num[String(pages + 1)];
198+
num_codePoint = num.codePointAt(0);
199+
if (num_codePoint != null) {
200+
output.splice(separate_pos + 32, 0, num_codePoint - 0x2800 + 0xa0);
201+
}
202+
letters_on_page += 2;
203+
output.splice(separate_pos + 33, 0, 0xfe);
204+
}
176205
}
177206

178207
if (codePoint === 0x2800) {
@@ -182,7 +211,6 @@ export function unicodeToBes(unicode: string): Uint8Array {
182211
if (codePoint >= 0x2800 && codePoint <= 0x28ff) {
183212
output.push(codePoint - 0x2800 + 0xa0);
184213
letters += 1;
185-
console.log(codePoint);
186214
letters_on_page += 1;
187215
}
188216
}
@@ -202,6 +230,13 @@ export function unicodeToBes(unicode: string): Uint8Array {
202230
output.push(0xff);
203231

204232
letters_num = 0x19 + letters_on_page;
233+
console.log(
234+
"Page: ",
235+
pages,
236+
num_pos,
237+
letters_num % 255,
238+
Math.floor(letters_num / 255),
239+
);
205240
output[num_pos] = letters_num % 255;
206241
output[num_pos + 1] = Math.floor(letters_num / 255);
207242

0 commit comments

Comments
 (0)