@@ -310,6 +310,27 @@ <h2>Pages</h2>
310310 return altTextarea ;
311311}
312312
313+ async function rerunOCR ( ) {
314+ const worker = await Tesseract . createWorker ( languageSelect . value ) ;
315+ const textareas = document . querySelectorAll ( '.image-container textarea' ) ;
316+ const images = document . querySelectorAll ( '.image-container img' ) ;
317+
318+ // Blank all the textareas
319+ Array . from ( textareas ) . forEach ( ta => ta . value = '' ) ;
320+ showFullDocument ( ) ;
321+
322+ for ( let i = 0 ; i < images . length ; i ++ ) {
323+ const imageURL = images [ i ] . src ;
324+ const ta = textareas [ i ] ;
325+ ta . placeholder = 'OCRing image...' ;
326+ const { text } = await ocrImage ( worker , imageURL ) ;
327+ setTextarea ( ta , text ) ;
328+ showFullDocument ( ) ;
329+ }
330+
331+ await worker . terminate ( ) ;
332+ }
333+
313334document . addEventListener ( 'paste' , ( event ) => {
314335 const items = ( event . clipboardData || event . originalEvent . clipboardData ) . items ;
315336 const images = Array . from ( items ) . filter ( item => item . type . indexOf ( 'image' ) !== - 1 ) ;
@@ -354,13 +375,14 @@ <h2>Pages</h2>
354375}
355376
356377// Update URL bar to match language select
357- languageSelect . addEventListener ( 'change' , ( event ) => {
378+ languageSelect . addEventListener ( 'change' , async ( event ) => {
358379 let newUrl = window . location . pathname ;
359380 let language = event . target . value ;
360381 if ( language != 'eng' ) {
361382 newUrl += '?language=' + language ;
362383 }
363384 window . history . pushState ( { path : newUrl } , '' , newUrl ) ;
385+ await rerunOCR ( ) ;
364386} ) ;
365387
366388function setLanguageFromQueryString ( ) {
0 commit comments