@@ -86,8 +86,8 @@ class ToolHandler {
8686 scan_pdf : ( ) => this . initPDFScanning ( ) ,
8787 doc_long_image : ( ) => this . initLongImageConversion ( ) ,
8888 extract_pages : ( ) => this . initPageExtraction ( ) ,
89- Atext2word : ( ) => this . initTextToWord ( ) ,
90- doc2image : ( ) => this . initDocToImage ( ) ,
89+ // Atext2word: () => this.initTextToWord(),
90+ doc2image : ( ) => this . initDocToImages ( ) ,
9191
9292 // Image Tools
9393 convert_image : ( ) => this . initImageConversion ( ) ,
@@ -122,54 +122,166 @@ class ToolHandler {
122122 }
123123
124124 // Tool-specific initialization methods
125+ ///=====Doc Operation==//
125126 initDocumentConversion ( ) {
126127 fileHandler . setupFileDropZone ( "doc-drop-zone" , "doc-file-input" , true ) ;
127128 this . setupFormatSelector ( "doc-target-format" , [
128129 "pdf" ,
129130 "docx" ,
130131 "txt" ,
131132 "html" ,
133+ "xls" ,
134+ "xlsx" ,
135+ "ppt" ,
136+ "pptx" ,
137+ ] ) ;
138+ this . setupAcceptedFiles ( "doc" , [
139+ "pdf" ,
140+ "docx" ,
141+ "txt" ,
142+ "html" ,
143+ "xls" ,
144+ "xlsx" ,
145+ "ppt" ,
146+ "pptx" ,
132147 ] ) ;
133148 }
134149
135- initImageConversion ( ) {
136- fileHandler . setupFileDropZone ( "image-drop-zone" , "image-file-input" , true ) ;
137- this . setupFormatSelector ( "image-target-format" , [
138- "png" ,
139- "jpg" ,
140- "jpeg" ,
141- "webp" ,
142- "gif" ,
143- ] ) ;
144- this . setupQualitySlider ( ) ;
150+ initPDFJoining ( ) {
151+ fileHandler . setupFileDropZone (
152+ "ppf_join-drop-zone" ,
153+ "pdf_join-file-input" ,
154+ false ,
155+ ) ;
145156 }
146157
158+ initPDFScanning ( ) {
159+ fileHandler . setupFileDropZone (
160+ "scan_pdf-drop-zone" ,
161+ "scan_pdf-file-input" ,
162+ false ,
163+ ) ;
164+ }
165+
166+ initPageExtraction ( ) {
167+ fileHandler . setupFileDropZone (
168+ "extract_pages-drop-zone" ,
169+ "extract_pages-file-input" ,
170+ false ,
171+ ) ;
172+ }
173+
174+ initDocToImages ( ) {
175+ fileHandler . setupFileDropZone (
176+ "doc2image-drop-zone" ,
177+ "doc2image-file-input" ,
178+ false ,
179+ ) ;
180+ }
181+
182+ initLongImageConversion ( ) {
183+ fileHandler . setupFileDropZone (
184+ "doc_long_image-drop-zone" ,
185+ "doc_long_image-file-input" ,
186+ false ,
187+ ) ;
188+ }
189+
190+ ///=====OCR Operation==//
191+ initOCR ( ) {
192+ fileHandler . setupFileDropZone ( "ocr-drop-zone" , "ocr-file-input" , true ) ;
193+ this . setupLanguageSelector ( ) ;
194+ }
195+
196+ ///=====Audio Operation==//
147197 initAudioConversion ( ) {
148198 fileHandler . setupFileDropZone ( "audio-drop-zone" , "audio-file-input" , true ) ;
149199 this . setupFormatSelector ( "audio-target-format" , [
150200 "mp3" ,
151201 "wav" ,
152202 "flac" ,
153203 "m4a" ,
204+ "ogg" ,
205+ "aac" ,
206+ "raw" ,
207+ "aiff" ,
208+ "ogv" ,
209+ ] ) ;
210+ this . setupAcceptedFiles ( "audio" , [
211+ "mp3" ,
212+ "wav" ,
213+ "flac" ,
214+ "m4a" ,
215+ "ogg" ,
216+ "aac" ,
217+ "raw" ,
218+ "aiff" ,
219+ "ogv" ,
154220 ] ) ;
155221 }
156222
223+ ///=====Video Operation==//
157224 initVideoConversion ( ) {
158- fileHandler . setupFileDropZone ( "video-drop-zone" , "video-file-input" , false ) ;
225+ fileHandler . setupFileDropZone ( "video-drop-zone" , "video-file-input" , true ) ;
159226 this . setupFormatSelector ( "video-target-format" , [
160227 "mp4" ,
161228 "mkv" ,
229+ "webm" ,
230+ "mov" ,
162231 "avi" ,
232+ "flv" ,
233+ "wmv" ,
234+ ,
235+ ] ) ;
236+ this . setupAcceptedFiles ( "video" , [
237+ "mp4" ,
238+ "mkv" ,
239+ "webm" ,
163240 "mov" ,
241+ "avi" ,
242+ "flv" ,
243+ "wmv" ,
244+ ,
164245 ] ) ;
165246 }
166247
167- initOCR ( ) {
168- fileHandler . setupFileDropZone ( "ocr-drop-zone" , "ocr-file-input" , true ) ;
169- this . setupLanguageSelector ( ) ;
248+ ///=====Image Operation==//
249+ initImageConversion ( ) {
250+ fileHandler . setupFileDropZone ( "image-drop-zone" , "image-file-input" , true ) ;
251+ this . setupFormatSelector ( "image-target-format" , [
252+ "png" ,
253+ "jpg" ,
254+ "jpeg" ,
255+ "webp" ,
256+ "gif" ,
257+ "eps" ,
258+ "pic" ,
259+ "tiff" ,
260+ "dib" ,
261+ "bmp" ,
262+ ] ) ;
263+ this . setupAcceptedFiles ( "image" , [
264+ "png" ,
265+ "jpg" ,
266+ "jpeg" ,
267+ "webp" ,
268+ "gif" ,
269+ "eps" ,
270+ "pic" ,
271+ "tiff" ,
272+ "dib" ,
273+ "bmp" ,
274+ ] ) ;
275+ this . setupQualitySlider ( ) ;
170276 }
171277
172- // Add more tool initialization methods as needed...
278+ initImageToPDF ( ) {
279+ fileHandler . setupFileDropZone (
280+ "image2pdf-drop-zone" ,
281+ "image2pdf-file-input" ,
282+ false ,
283+ ) ;
284+ }
173285
174286 // Utility methods for tool setup
175287 setupFormatSelector ( selectId , formats ) {
@@ -184,6 +296,18 @@ class ToolHandler {
184296 }
185297 }
186298
299+ setupAcceptedFiles ( inputId , accepts ) {
300+ if ( accepts ) {
301+ const Finput = document . getElementById ( `${ inputId } -file-input` ) ;
302+ Finput
303+ ? Finput . setAttribute (
304+ "accept" ,
305+ accepts . map ( ( format ) => `.${ format } ` ) . join ( "," ) ,
306+ )
307+ : "" ;
308+ }
309+ }
310+
187311 setupQualitySlider ( ) {
188312 const slider = document . querySelector ( 'input[name="quality"]' ) ;
189313 const valueDisplay = document . getElementById ( "quality-value" ) ;
0 commit comments