@@ -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