1<!DOCTYPE html> 2<html lang="en"> 3 4<head> 5 6 <meta charset="UTF-8"> 7<meta name="viewport" content="width=device-width, initial-scale=1.0"> 8<meta http-equiv="X-UA-Compatible" content="ie=edge"> 9<link rel="icon" type="image/x-icon" href="https://www.imagetotext.info/favicon.ico"> 10<meta name="_token" content="H0OAFxDpu3OjKzopOeuhh8eSUOO7gcozLNRdzz8S" /> 11<title>API Docs</title> 12<meta name="description" content="API Docs" /> 13 14<link rel="canonical" href="https://www.imagetotext.info/api-docs" /> 15 <link rel="preload" href="https://www.imagetotext.info/web_assets/frontend/fonts/roboto-variable.woff2" as="font" type="font/woff2" 16 crossorigin fetchpriority="high"> 17<link defer rel="stylesheet" 18 href="https://www.imagetotext.info/web_assets/frontend/css/critical-style.css?v=36.38"> 19 20 21<link rel="stylesheet" 22 href="https://www.imagetotext.info/web_assets/frontend/css/style.css?v=36.38"> 23 24 <!-- Google tag (gtag.js) -->
vendor: 68 bytes, lines 24-25
24 25 <script async src="https://www.googletagmanager.com/gtag/js?id=
25G-0JQ2R0N4GP
vendor: 16 bytes, lines 25-26
25"></script> 26
26<script> 27
vendor: 176 bytes, lines 27-34
27window.dataLayer = window.dataLayer || []; 28 29 function gtag() { 30 dataLayer.push(arguments); 31 } 32 gtag('js', new Date()); 33 34 gtag('config', '
34G-0JQ2R0N4GP
vendor: 8 bytes, lines 34-35
34'); 35
35</script>
35 36 37 38 39 <style> 40 header { 41 background: white; 42 } 43 44 .bg-top { 45 /* background: #F6F8FC; */ 46 border-top: 1px solid #EAEAEA; 47 padding: 0px 0px 35px 0px; 48 } 49 50 .api-docs-container { 51 width: 1400px; 52 max-width: 100%; 53 margin: 0 auto; 54 padding: 0 10px; 55 display: flex; 56 } 57 58 .menu-bar-outer { 59 position: relative; 60 border-right: 2px solid #EAEAEA; 61 margin-right: 30px; 62 margin-top: 25px; 63 } 64 65 .menu-bar { 66 /* flex-basis: 300px; */ 67 flex: 1; 68 display: flex; 69 flex-direction: column; 70 /* border-right: 2px solid #EAEAEA; */ 71 /* margin-right: 30px; */ 72 min-width: 170px; 73 position: sticky; 74 top: 0; 75 } 76 77 .docs-bar { 78 flex: 6; 79 } 80 81 .menu-bar strong { 82 font-size: var(--font-size-x-small); 83 text-transform: uppercase; 84 color: #A59DB5; 85 font-weight: 400; 86 } 87 88 .menu-bar .heading-label { 89 font-size: var(--font-size-small); 90 margin-left: 10px; 91 font-weight: 600; 92 } 93 94 .menu-bar .subheading-label { 95 font-size: var(--font-size-small); 96 margin-left: 20px; 97 font-weight: 500; 98 } 99 100 .code-area { 101 background: #F6F8FC; 102 border-radius: 5px; 103 padding: 5px 15px; 104 color: #718096; 105 font-size: var(--font-size-small); 106 display: flex; 107 flex-direction: column; 108 } 109 110 .code-area b, 111 .code-area span { 112 font-size: 16px; 113 } 114 115 ul li { 116 list-style: none; 117 } 118 119 p { 120 font-size: 16px; 121 } 122 123 @media only screen and (max-width: 425px) { 124 .menu-bar-outer { 125 display: none; 126 } 127 128 .code-area { 129 word-break: break-all; 130 } 131 } 132 133 @media only screen and (max-width: 768px) { 134 .menu-bar-outer { 135 width: 100%; 136 border-right: none; 137 } 138 139 .api-docs-container { 140 flex-wrap: wrap; 141 } 142 } 143 </style> 144 145
145<script async data-cfasync="false" src="https://cdn.snigelweb.com/adengine/imagetotext.info/loader.js" type="text/javascript"></script>
145 146 </head> 147 148<body class=""> 149 150 151 <header> 152 <div class="navbar desktop"> 153 <div class="logo-div"> 154 <div> 155 <a href="https://www.imagetotext.info" class="logo"> 156 <img src="https://www.imagetotext.info/web_assets/frontend/img/logo.svg?v=36.38" 157 alt="logo" height="40" width="40" /> 158 <span>Image To Text</span> 159 </a> 160 </div> 161 <div class="nav-links tools"> 162 <ul> 163 <li> 164 <a href="https://www.imagetotext.info/image-translator"> 165 Image Translator 166 </a> 167 </li> 168 <li> 169 <a href="https://www.imagetotext.info/jpg-to-word"> 170 JPG To Word 171 </a> 172 </li> 173 <li> 174 <a href="https://www.imagetotext.info/jpg-to-excel"> 175 JPG To Excel 176 </a> 177 </li> 178 <li> 179 <a href="https://www.imagetotext.info/pdf-to-excel"> 180 PDF To Excel 181 </a> 182 </li> 183 </ul> 184 </div> 185 </div> 186 <div class="nav-links topnav" id="myTopnav"> 187 <ul> 188 <li> 189 <button class="search-icon" id="openSearchBar"> 190 <img src="https://www.imagetotext.info/web_assets/frontend/img/icons/search-icon.svg?v=1.4" alt="search" 191 width="20" height="20" /> 192 <span>Search</span> 193 </button> 194 </li> 195 <li class="online-chat-li js-online-chat"> 196 <a href="javascript:void(0)" id="live-chat-open"> 197 <img src="https://www.imagetotext.info/web_assets/frontend/img/icons/chat-us.svg?v=1.4" alt="chat" width="32" 198 height="32" /> 199 Live Chat 200 </a> 201 </li> 202 203 <li class="get-api-nav-li"> 204 <a href="https://www.imagetotext.info/premium" class="eTrack" e-track="navbar pricing"> 205 <img src="https://www.imagetotext.info/web_assets/frontend/img/icons/pricing-icon.svg?v=1.4" alt="pricing" 206 width="32" height="32" /> 207 <span>Pricing</span> 208 </a> 209 </li> 210 <li> 211 <a href="https://www.imagetotext.info/login" class="account-item auth-btns"> 212 <img src="https://www.imagetotext.info/web_assets/frontend/img/icons/login.svg?v=36.38" 213 alt="login" width="32" height="32" /> 214 <span>Login</span> 215 </a> 216 </li> 217 </ul> 218 </div> 219 </div> 220 <div class="navbar mobile"> 221 <div class="logo-div"> 222 <a href="https://www.imagetotext.info" class="logo"> 223 <img height="40" width="40" 224 src="https://www.imagetotext.info/web_assets/frontend/img/logo.svg?v=36.38" 225 alt="logo" /> 226 <span>Image To Text</span> 227 </a> 228 </div> 229 <div class="nav-links"> 230 <ul> 231 <li> 232 <span class="icon" onclick="toggle_menubar()"> 233 <div class="mobile-menu-trigger"> 234 <img class="navbar-icon" 235 src="https://www.imagetotext.info/web_assets/frontend/img/navbar-menu-icon.svg?v=36.38" 236 alt="Navbar Icon" width="18" height="18" /> 237 <img class="close-icon d-none" 238 src="https://www.imagetotext.info/web_assets/frontend/img/navbar-close-icon.svg?v=36.38" 239 alt="Navbar Icon" width="18" height="18" /> 240 </div> 241 </span> 242 </li> 243 </ul> 244 </div> 245 <div class="mobile-nav-dropdown"> 246 <ul class="margin-left-0"> 247 <li> 248 <a class="navbar-li" href="https://www.imagetotext.info/image-translator">
249 <span>Image Translator</span> 250 <img class="go-icon d-none" 251 src="https://www.imagetotext.info/web_assets/frontend/img/mobile-dropdown-icon.svg?v=36.38" 252 alt="view more icon" /> 253 </a> 254 </li> 255 <li> 256 <a class="navbar-li" href="https://www.imagetotext.info/jpg-to-word"> 257 <span>JPG To Word</span> 258 <img class="go-icon d-none" 259 src="https://www.imagetotext.info/web_assets/frontend/img/mobile-dropdown-icon.svg?v=36.38" 260 alt="view more icon" /> 261 </a> 262 </li> 263 <li> 264 <a class="navbar-li" href="https://www.imagetotext.info/jpg-to-excel"> 265 <span>JPG To Excel</span> 266 <img class="go-icon d-none" 267 src="https://www.imagetotext.info/web_assets/frontend/img/mobile-dropdown-icon.svg?v=36.38" 268 alt="view more icon" /> 269 </a> 270 </li> 271 272 <li> 273 <a class="navbar-li" href="https://www.imagetotext.info/pdf-to-excel"> 274 <span>PDF To Excel</span> 275 <img class="go-icon d-none" 276 src="https://www.imagetotext.info/web_assets/frontend/img/mobile-dropdown-icon.svg?v=36.38" 277 alt="view more icon" /> 278 </a> 279 280 </li> 281 282 283 284 <li class="online-chat-nav js-online-chat"> 285 <a class="navbar__lower" href="javascript:void(0)" id="live-chat-open"> 286 <div> 287 <img src="https://www.imagetotext.info/web_assets/frontend/img/navbar-chat-icon.svg?v=36.38" 288 alt="navbar chat icon" width="30" height="30" /> 289 <span> Chat us</span> 290 </div> 291 <img class="go-icon d-none" 292 src="https://www.imagetotext.info/web_assets/frontend/img/mobile-dropdown-icon.svg?v=36.38" 293 alt="view more icon" /> 294 295 </a> 296 </li> 297 <li> 298 <a href="javascript:void(0)" class="navbar__lower js-open-search-mobile"> 299 <div> 300 <img src="https://www.imagetotext.info/web_assets/frontend/img/icons/search-icon.svg?v=1.4" 301 alt="navbar search icon" width="30" height="30" /> 302 <span> Search</span> 303 </div> 304 <img class="go-icon d-none" 305 src="https://www.imagetotext.info/web_assets/frontend/img/mobile-dropdown-icon.svg?v=36.38" 306 alt="view more icon" /> 307 </a> 308 </li> 309 <li> 310 <a href="https://www.imagetotext.info/premium" class="navbar__lower"> 311 <div> 312 <img src="https://www.imagetotext.info/web_assets/frontend/img/navbar-pricing-icon.svg?v=36.38" 313 alt="navbar pricing icon" width="30" height="30" loading="lazy" /> 314 <span> Pricing</span> 315 </div> 316 <img class="go-icon d-none" 317 src="https://www.imagetotext.info/web_assets/frontend/img/mobile-dropdown-icon.svg?v=36.38" 318 alt="view more icon" /> 319 </a> 320 </li> 321 <li> 322 <a href="https://www.imagetotext.info/login" class="navbar__lower"> 323 <div> 324 <img src="https://www.imagetotext.info/web_assets/frontend/img/icons/login.svg?v=36.38" 325 alt="Login" width="30" height="30" />
326 <span> Login</span> 327 </div> 328 329 </a> 330 </li> 331 </ul> 332 </div> 333 </div> 334</header> 335 336 337 338 <section class="bg-top"> 339 <div class="api-docs-container"> 340 <div class="menu-bar-outer"> 341 <div class="menu-bar"> 342 <strong>Document Menu</strong> 343 <a href="#base-url" class="heading-label">Base URL</a> 344 <a href="#authentication" class="heading-label">Authentication</a> 345 <a href="#api-endpoints" class="heading-label">API Endpoints</a> 346 <a href="#image-file-upload" class="subheading-label">Image File Upload</a> 347 <a href="#image-url" class="subheading-label">Image URL</a> 348 <a href="#base64-image-data" class="subheading-label">Base64 Image Data</a> 349 350 <a href="#response-format" class="heading-label">Response Format</a> 351 <a href="#success-response" class="subheading-label">Success Response</a> 352 <a href="#error-response" class="subheading-label">Error Response</a> 353 </div> 354 </div> 355 <div class="docs-bar"> 356 <h1>API Documentation</h1> 357 <p>The Image To Text API allows you to convert images containing text into machine-readable text. This 358 documentation provides details on how to make requests to the API and the expected responses.</p> 359 <h2 id="base-url">Base URL</h2> 360 <p>The base URL for making API requests is:</p> 361 <div class="code-area">https://www.imagetotext.info/api/imageToText</div> 362 <h2 id="authentication">Authentication</h2> 363 <p>To access the Image To Text API, you need to include an API key in the request header.</p> 364 <p>Header:</p> 365 <div class="code-area"><span><b>Authorization:</b> <span>Bearer YOUR_API_KEY</span></span></div> 366 <p>Replace 'YOUR_API_KEY' with your actual API key obtained from the service provider.</p> 367 <h2 id="api-endpoints">API Endpoints</h2> 368 <h3 id="image-file-upload">1. Image File Upload</h3> 369 <p>This endpoint allows you to directly upload an image file for text extraction.</p> 370 <p>Send a POST request to the base URL with the following headers and form data:</p> 371 <div class="code-area"> 372 <b>Header:</b> 373 <span>Content-Type: multipart/form-data</span> 374 <b>Form Data:</b> 375 <span> image: (file) The image file to be converted.</span> 376 </div> 377 <h3 id="image-url">2. Image URL</h3> 378 <p>This endpoint allows you to provide the URL of the image to be processed for text extraction.</p> 379 <p>Send a POST request to the base URL with the following headers and JSON body:</p> 380 <div class="code-area"> 381 <b>Header:</b> 382 <span>Content-Type: application/json</span> 383 <b>JSON Body:</b> 384 <span>image_url: (string) The URL of the image to be converted.</span> 385 </div> 386 <h3 id="base64-image-data">3. Base64 Image Data</h3> 387 <p>This endpoint allows you to provide the image data as a Base64-encoded string.</p> 388 <p>Send a POST request to the base URL with the following headers and JSON body:</p> 389 <div class="code-area"> 390 <b>Header:</b> 391 <span>Content-Type: application/json</span> 392 <b>JSON Body:</b> 393 <span>base64: (string) The base64-encoded image data (including the data URI prefix).</span> 394 </div> 395 <h3 id="base64-image-data">Curl Request Example</h3> 396 <p>Place YOUR_API_KEY with your original API Key</p> 397 <div class="code-area"> 398 <pre class="code-curl"> 399$curl = curl_init(); 400curl_setopt_array($curl, array( 401CURLOPT_URL => 'https://www.imagetotext.info/api/imageToText', 402CURLOPT_RETURNTRANSFER => true, 403CURLOPT_ENCODING => '', 404CURLOPT_MAXREDIRS => 10, 405CURLOPT_TIMEOUT => 0, 406CURLOPT_FOLLOWLOCATION => true, 407CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, 408CURLOPT_CUSTOMREQUEST => 'POST', 409CURLOPT_POSTFIELDS => array('base64' => 'base64 encoded string'), 410CURLOPT_HTTPHEADER => array( 411'Authorization: Bearer YOUR_API_KEY', 412), 413)); 414$response = curl_exec($curl); 415curl_close($curl); 416echo $response; 417 </pre> 418 </div> 419 420 <h2 id="response-format">Response Format</h2> 421 <p>The API response will be in JSON format. The structure of the response depends on the success or failure 422 of the request.</p> 423 <h3 id="success-response">Success Response</h3> 424 <div class="code-area">
425 <span>{</span> 426 <span><b>"error":</b> false,</span> 427 <span><b>"result":</b> "imagetotext.info"</span> 428 <span>}</span> 429 </div> 430 <ul> 431 <li>error: Indicates whether an error occurred (false for success).</li> 432 <li>result: The converted text or response message.</li> 433 </ul> 434 <h3 id="error-response">Error Response</h3> 435 <div class="code-area"> 436 <span>{</span> 437 <span><b>"error":</b> true,</span> 438 <span><b>"message":</b> "Error Occurred, Please Try Again"</span> 439 <span>}</span> 440 </div> 441 <h3 id="error-response">Validation Error</h3> 442 <div class="code-area"> 443 <span>{</span> 444 <span><b>"error":</b> true,</span> 445 <span><b>"message":</b> "Image File, Image URL, or Base64 Data URI string is required."</span> 446 <span>}</span> 447 </div> 448 <h3 id="error-response">Authorization Error</h3> 449 <div class="code-area"> 450 <span>{</span> 451 <span><b>"type":</b> invalid_request,</span> 452 <span><b>"message":</b> "Unauthorize or Not Premium"</span> 453 <span>}</span> 454 </div> 455 <h3 id="error-response">Incorrect API Error</h3> 456 <div class="code-area"> 457 <span>{</span> 458 <span><b>"type":</b> invalid_request,</span> 459 <span><b>"message":</b> "incorrect API key provided"</span> 460 <span>}</span> 461 </div> 462 <h3 id="error-response">Throttle Error</h3> 463 <div class="code-area"> 464 <span>{</span> 465 <span><b>"type":</b> invalid_request,</span> 466 <span><b>"message":</b> "You are Blocked for 1 Hour"</span> 467 <span>}</span> 468 </div> 469 <ul> 470 <li>error: Indicates whether an error occurred (true for error).</li> 471 <li>type: Indicates the request type</li> 472 <li>message: A descriptive error message explaining the cause of the error.</li> 473 </ul> 474 </div> 475 </div> 476 </section> 477 478 479 480 <footer> 481 <section class="section footer-section"> 482 <div class="container"> 483 <div class="footer-grid"> 484 <div> 485 <a class="imgtotxt_logo-footer" href="https://www.imagetotext.info"><img 486 src="https://www.imagetotext.info/web_assets/frontend/img/icons/footer-logo.svg?v=2.3" alt="Logo" 487 height="40" width="40" loading="lazy"> 488 Image to Text 489 </a> 490 <p class="footer-text"> 491 We present an online OCR (Optical Character Recognition) service to extract text from 492 images. 493 </p> 494 </div> 495 <div> 496 <div class="footer_title"> 497 <p>Other Tools</p> 498 </div> 499 <div class="links_list"> 500 <div class="d-flex align-items-center gap-8px text-nowrap"> 501 <a href="https://www.imagetotext.info/bulk-image-to-text"> 502 Batch Image To Text </a> 503 <img src="https://www.imagetotext.info/web_assets/frontend/img/icons/home_bulk_redirect.svg?v=2.3" alt="new"> 504 </div> 505 <a href="https://www.imagetotext.info/jpg-to-word"> 506 Jpg To Word </a> 507 <a href="https://www.imagetotext.info/pdf-to-text"> 508 Pdf To Text </a> 509 <a href="https://www.imagetotext.info/pdf-to-word"> 510 Pdf To Word </a> 511 <a href="https://www.imagetotext.info/text-to-
511pdf"> 512 Text To PDF </a> 513 <a href="https://www.imagetotext.info/text-to-word"> 514 Text To Word </a> 515 </div> 516 </div> 517 <div> 518 <div class="footer_title"> 519 <p>Quick Links</p> 520 </div> 521 <div class="links_list"> 522 <a href="https://www.imagetotext.info/blog"> 523 Blogs 524 </a> 525 <a href="https://www.imagetotext.info/privacy-policy.php"> 526 Privacy Policy 527 </a> 528 <a href="https://www.imagetotext.info/refund-policy"> 529 Refund Policy 530 </a> 531 <a href="https://www.imagetotext.info/terms-of-services.php"> 532 Terms & Conditions 533 </a> 534 <a href="https://www.imagetotext.info/contact-us.php"> 535 Contact Us 536 </a> 537 </div> 538 </div> 539 <div> 540 <div class="footer_title"> 541 <p>Resources</p> 542 </div> 543 <div class="links_list"> 544 <a href="https://www.imagetotext.info/premium"> 545 Premium Plan 546 </a> 547 <a href="https://www.imagetotext.info/premium#apiPlan"> 548 API Plan 549 </a> 550 <a href="https://www.imagetotext.info/api-docs"> 551 API Documentation 552 </a> 553 <a href="https://www.imagetotext.info/jpg-to-excel-api-docs"> 554 JPG to Excel API Docs 555 </a> 556 </div> 557 </div> 558 <div> 559 <div class="footer_title"> 560 <p>Email</p> 561 </div> 562 <a href="mailto:[email protected]" class="mailto-link">[email protected]</a> 563 <div class="social-media-links"> 564 <span> 565 <a href="https://www.facebook.com/imagetotext0" target="_blank" rel="noopener noreferrer"> 566 <img src="https://www.imagetotext.info/web_assets/frontend/img/icons/facebook.svg?v=36.38" 567 alt="icon" loading="lazy" height="30" width="30"> 568 </a> 569 </span> 570 <span> 571 <a href="https://x.com/ImgtoText" target="_blank" rel="noopener noreferrer"> 572 <img src="https://www.imagetotext.info/web_assets/frontend/img/icons/twitter.svg?v=36.38" 573 alt="icon" loading="lazy" height="30" width="30"> 574 </a> 575 </span> 576 <span> 577 <a href="https://www.linkedin.com/company/image-to-text-info/" target="_blank" 578 rel="noopener noreferrer"> 579 <img src="https://www.imagetotext.info/web_assets/frontend/img/icons/linkedin.svg?v=36.38" 580 alt="icon" loading="lazy" height="30" width="30"> 581 </a> 582 </span>
583 <span> 584 <a href="https://www.pinterest.com/image_to_text_info/" target="_blank" 585 rel="noopener noreferrer"> 586 <img src="https://www.imagetotext.info/web_assets/frontend/img/icons/pinterest.svg?v=36.38" 587 alt="icon" loading="lazy" height="30" width="30"> 588 </a> 589 </span> 590 <span> 591 <a href="https://www.instagram.com/imagetotext.info/ " target="_blank" 592 rel="noopener noreferrer"> 593 <img src="https://www.imagetotext.info/web_assets/frontend/img/icons/insta.svg?v=36.38" 594 alt="icon" loading="lazy" height="30" width="30"> 595 </a> 596 </span> 597 </div> 598 599 </div> 600 601 </div> 602 603 604 <div class="copyright-row"> 605 Copyright © All rights reserved | It is made by 606 <a href="https://www.imagetotext.info">imagetotext.info</a> 607 </div> 608 </div> 609 </section> 610 </footer> 611 612 613<!-- The Modal --> 614<div id="loginRegisterModal" class="modal"> 615 <!-- Modal content --> 616 <div class="modal-content login-register-modal "> 617 <div class="limit-modal-body p-relative"> 618 <span class="accountModalClose right cursor-pointer"> 619 <img src="https://www.imagetotext.info/web_assets/frontend/img/cross.svg?v=36.38" 620 alt="cross" width="20" height="20"> 621 </span> 622 <img src="https://www.imagetotext.info/web_assets/frontend/img/icons/login-register.svg?v=36.38" 623 alt="limit exceed" height="40"> 624 <div class="showSignIn"> 625 <p class="heading text-center" style="margin-top: 1rem;">Sign in with us today</p> 626 <p class="modal-text text-center"> 627 Enter your email and password to sign in your account 628 </p> 629 </div> 630 <div class="showSignUp d-none"> 631 <p class="heading text-center">Sign up with us today</p> 632 <p class="modal-text text-center"> 633 Enter your email and password to sign up your account 634 </p> 635 </div> 636 </div> 637 <div> 638 <div id="message_status"></div> 639 640 <div class="login-form showSignIn"> 641 <div class="form-grid"> 642 <form id="login-form"> 643 <input type="hidden" name="_token" value="H0OAFxDpu3OjKzopOeuhh8eSUOO7gcozLNRdzz8S" autocomplete="off"> <input type="hidden" name="plan_id" class="plan-id"> 644 <input type="hidden" name="plan_code" class="plan-code"> 645 <input type="hidden" name="coupon" class="coupon-code"> 646 <div class="form-row"> 647 <div class="form-group"> 648 <input type="email" placeholder="Email" name="email" required autocomplete="off"> 649 </div> 650 <div class="form-group password_container"> 651 <input type="password" placeholder="Password" name="password" required 652 autocomplete="off"> 653 <img src="https://www.imagetotext.info/web_assets/frontend/img/icons/eye_closed.svg" alt="eye close" 654 class="eye_icon"> 655 </div> 656 <div id="auth_login"></div> 657 658 <a href="https://www.imagetotext.info/forgot-password" class="forget_password_span">Forgot 659 Password?</a> 660 <button type="submit" class="submit-btn comp_submit_btn">Sign In</button> 661 </div> 662 </form> 663 </div> 664 </div> 665 666 <div class="login-form showSignUp d-none"> 667 <div class="form-grid"> 668 <form id="signup-form"> 669 <input type="hidden" name="_token" value="H0OAFxDpu3OjKzopOeuhh8eSUOO7gcozLNRdzz8S" autocomplete="off"> <input type="hidden" name="plan_id" class="plan-id"> 670 <input type="hidden" name="plan_code" class="plan-code"> 671 <input type="hidden" name="coupon" class="coupon-code"> 672 <div class="form-row"> 673 <div class="form-group"> 674 <input type="text" placeholder="Name" name="name" required autocomplete="off"> 675 </div> 676 <div class="form-group"> 677 <input type="email" placeholder="Email" name="email" required autocomplete="off"> 678 </div> 679 <div class="form-group password_container"> 680 <input type="password" placeholder="Password" name="password" required 681 autocomplete="off"> 682 <img src="https://www.imagetotext.info/web_assets/frontend/img/icons/eye_closed.svg" alt="eye close" 683 class="eye_icon"> 684 </div> 685 <div id="auth_signup"></div> 686 687 <button type="submit" class="submit-btn comp_submit_btn">Sign Up</button> 688 </div> 689 </form> 690 </div> 691 </div> 692 693 </div> 694 <hr class="hr-text" data-content="OR"> 695 <div class="mt-1em"> 696 <a href="https://www.imagetotext.info/emd/login/google" class="social-login-div"> 697 <p>Continue with google</p> 698 <img class="social-icon" 699 src="https://www.imagetotext.info/web_assets/frontend/img/icons/google-login.svg?v=36.38" 700 alt="google login"> 701 </a> 702 </div> 703 <div class="text-center mt-1em showSignIn"> 704 <p class="toggle-auth-text"> 705 Don't have an account? <span id="jsShowSignUp">Sign Up</span> 706 </p> 707 </div> 708 <div class="text-center mt-1em showSignUp d-none"> 709 <p class="toggle-auth-text"> 710 Already have an account? <span id="jsShowSignIn">Sign in</span> 711 </p> 712 </div> 713 </div> 714</div>
715<input type="hidden" id="invisible" value="0x4AAAAAAAUwKvasO0jFqxlt"> 716<input type="hidden" id="managed" value="0x4AAAAAAAXqxZC0gjXqXkxS"> 717
717<script src="https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit"></script>
vendor: 1 bytes, line 717
717
718<script type="text/javascript"> 719 var invisible_key = document.getElementById("invisible").value; 720 var managed_key = document.getElementById("managed").value; 721 if (invisible_key.length > 10 && managed_key.length > 10) { 722 function with_cloudflare_captcha(retry, click_time, function_name, theme = null, position = null, body = null, 723 fun = 724 function( 725 token) { 726 var start_val = 0; 727 if (parseInt('1') == 0) { 728 start_val = 1; 729 } else { 730 if (!retry) { 731 start_val = 2; 732 } 733 } 734 function_name(start_val + 'iA10uUwbAFCYeD2iUZURLrYgB3hVpfkUsvFkFF1p', token, body); 735 }) { 736 var now_time = Math.floor(Date.now() / 1000); 737 if (parseInt(now_time - click_time) < 0 || parseInt(now_time - click_time) > 3 || ( 738 typeof click_time) != 'number') { 739 return false; 740 } 741 if (parseInt('1') == 0) { 742 fun(null); 743 return true; 744 } 745 if (retry) { 746 var siteKey = invisible_key; 747 } else { 748 var siteKey = managed_key; 749 } 750 var turnstile_obj = turnstile.render(position ?? 'body', { 751 sitekey: siteKey, 752 theme: theme ?? 'light', 753 language: $("html").attr('lang'), 754 callback: function(token) { 755 turnstile.remove(turnstile_obj); 756 fun(token); 757 }, 758 error: function(error) { 759 console.log("error calling challenge"); 760 with_cloudflare_captcha(false, (Date.now() / 1000), function_name, body); 761 } 762 }); 763 } 764 } else { 765 console.error("Captcha key is invalid"); 766 } 767</script>
767 768<div id="invalidImageModal" class="modal_invalid"> 769 <div class="modal-content invalidImageModal"> 770 <div class="limit-modal-body"> 771 <div class="a-i-center"> 772 <img src="https://www.imagetotext.info/web_assets/frontend/img/icons/caution.png?v=36.38" 773 alt="cancel subscription"> 774 <p class="heading text-center">Invalid URL</p> 775 </div> 776 <div class="px-12"> 777 <p class="modal-text"> 778 Image not Found. This is because you have entered an invalid URL. 779 </p> 780 </div> 781 <div class="button_row"> 782 <span class="browse-btn keep-plan-btn accountModalClose close_invalid_file">Close</span> 783 <span class="accountModalClose try-another-btn">Try Another URL</span> 784 </div> 785 </div> 786 </div> 787</div> 788<div id="invalidtextModal" class="modal_invalid"> 789 <div class="modal-content invalidImageModal"> 790 <div class="limit-modal-body"> 791 <div class="a-i-center"> 792 <img src="https://www.imagetotext.info/web_assets/frontend/img/icons/caution.png?v=36.38" 793 alt="cancel subscription"> 794 <p class="heading text-center">Invalid URL</p> 795 </div> 796 <div class="px-12"> 797 <p class="modal-text"> 798 Image not Found. This is because you have entered an invalid URL. 799 </p> 800 </div> 801 <div class="button_row"> 802 <span class="browse-btn keep-plan-btn accountModalClose close_invalid_file">Close</span> 803 </div> 804 </div> 805 </div> 806</div> 807
808<script> 809 const limitExced = "Limit Exceed"; 810 const unavailabe_service_title = "Service Unavailable"; 811 const unavailabe_service_desc = "Get Premium to use this service."; 812 const limitExceedDesc = "Max. 3 images per submission for free users."; 813 const imageSizeForPremium = "File Size Exceed"; 814 const premiumModeTitle = "This mode is premium"; 815 const premiumModeDesc = "Upgrade plan to use the Formatted Text mode"; 816 const imageSizeTitleDesc = "Max. 5 MB image size allowed"; 817 const fileTypeNotAllowTitle = "File Type Not Allowed"; 818 const fileTypeNotAllowDesc = "Invalid file type"; 819 const supported_format = "Supported formats: JPG, PNG, GIF, JFIF (JPEG), HEIC, PDF"; 820 const dailyLimitExceed = "Daily Limit Reached"; 821 const dailyLimitExceedDesc = "Free user can use 15 images daily."; 822 const dailyLimitFormatedDesc = "Free user can use 1 image daily."; 823 824 const perMinuteLimitHeading = "Per Minute Limit Reached"; 825 const perDayLimitHeading = "Daily Limit Reached"; 826 827 const premiumMinuteLimitDesc = "15 Images per Minute are Allowed"; 828 const premiumDailyLimitDesc = "Max. Images per Day have been Allowed"; 829 const emptyText = "No text found"; 830 const emptyTextDesc = "No text found in this file"; 831 832 const emptyTable = "No data found"; 833 const emptyTableDesc = "No data found in this file"; 834 const freeMinuteLimitDesc = "Free Users can translate 2 Images per Minute"; 835 const invalidFileDesc = "The uploaded file is invalid or corrupted."; 836 const invalidFileHead = "Invalid File"; 837 const limitexceedformated = "Max. 1 image per submission for registered users."; 838 const passwordProtectedFileTitle = "Protected File"; 839 const passwordProtectedFileDesc = "The uploaded file is password protected."; 840</script>
840 841<div id="adngin-sidebar_sticky-0"></div> 842 843 844
844<script src="https://www.imagetotext.info/web_assets/frontend/script/emd/script.js?v=36.38"></script>
844 845
845<script> 846 const BASE_URL = "https://www.imagetotext.info" + "/"; 847 const env = "production"; 848 const SUBMIT_BTN = "Submit"; 849 const IS_PREMIUM = parseInt("0"); 850 const IS_TOOL_PREMIUM = parseInt("0"); 851 const PER_REQUEST_LIMIT = IS_PREMIUM ? 50 : 3; 852 const IS_PREMIUM_COOKIE = 0; 853 const CURRENT_LANG = "en"; 854 const TOOL_ID = parseInt("0"); 855 const TOOL_CURRENT_LANG = "none"; 856 const CURRENT_TOOL_ID = parseInt("0"); 857 const HISTORY_ITEMS_PER_LOAD = 20; 858 const USER_ID = parseInt("0"); 859 const ACTION_RECORD_ENABLED = 1; 860 // Tool pages share $allTools; other pages (blog, login, premium...) fall back to the same locale cache. 861 // The inline 'image' SVGs are stripped: search result icons load as cacheable <img> requests instead. 862 const OTHER_TOOLS_SEARCH_BAR_ARRAY = JSON.parse('[{\u0022id\u0022:1,\u0022name\u0022:\u0022Image to Text\u0022,\u0022slug\u0022:\u0022image-to-text\u0022,\u0022lang\u0022:\u0022en\u0022,\u0022is_home\u0022:1,\u0022parent_id\u0022:1,\u0022parent_slug\u0022:\u0022image-to-text\u0022,\u0022url\u0022:\u0022https:\\\/\\\/www.imagetotext.info\u0022},{\u0022id\u0022:2,\u0022name\u0022:\u0022JPG to Word\u0022,\u0022slug\u0022:\u0022jpg-to-word\u0022,\u0022lang\u0022:\u0022en\u0022,\u0022is_home\u0022:0,\u0022parent_id\u0022:2,\u0022parent_slug\u0022:\u0022jpg-to-word\u0022,\u0022url\u0022:\u0022https:\\\/\\\/www.imagetotext.info\\\/jpg-to-word\u0022},{\u0022id\u0022:3,\u0022name\u0022:\u0022PDF to Text\u0022,\u0022slug\u0022:\u0022pdf-to-text\u0022,\u0022lang\u0022:\u0022en\u0022,\u0022is_home\u0022:0,\u0022parent_id\u0022:3,\u0022parent_slug\u0022:\u0022pdf-to-text\u0022,\u0022url\u0022:\u0022https:\\\/\\\/www.imagetotext.info\\\/pdf-to-text\u0022},{\u0022id\u0022:4,\u0022name\u0022:\u0022PDF to Word\u0022,\u0022slug\u0022:\u0022pdf-to-word\u0022,\u0022lang\u0022:\u0022en\u0022,\u0022is_home\u0022:0,\u0022parent_id\u0022:4,\u0022parent_slug\u0022:\u0022pdf-to-word\u0022,\u0022url\u0022:\u0022https:\\\/\\\/www.imagetotext.info\\\/pdf-to-word\u0022},{\u0022id\u0022:5,\u0022name\u0022:\u0022Text to PDF\u0022,\u0022slug\u0022:\u0022text-to-pdf\u0022,\u0022lang\u0022:\u0022en\u0022,\u0022is_home\u0022:0,\u0022parent_id\u0022:5,\u0022parent_slug\u0022:\u0022text-to-pdf\u0022,\u0022url\u0022:\u0022https:\\\/\\\/www.imagetotext.info\\\/text-to-pdf\u0022},{\u0022id\u0022:6,\u0022name\u0022:\u0022Text to Word\u0022,\u0022slug\u0022:\u0022text-to-word\u0022,\u0022lang\u0022:\u0022en\u0022,\u0022is_home\u0022:0,\u0022parent_id\u0022:6,\u0022parent_slug\u0022:\u0022text-to-word\u0022,\u0022url\u0022:\u0022https:\\\/\\\/www.imagetotext.info\\\/text-to-word\u0022},{\u0022id\u0022:24,\u0022name\u0022:\u0022Invert Image\u0022,\u0022slug\u0022:\u0022invert-image\u0022,\u0022lang\u0022:\u0022en\u0022,\u0022is_home\u0022:0,\u0022parent_id\u0022:24,\u0022parent_slug\u0022:\u0022invert-image\u0022,\u0022url\u0022:\u0022https:\\\/\\\/www.imagetotext.info\\\/invert-image\u0022},{\u0022id\u0022:28,\u0022name\u0022:\u0022Text to Image\u0022,\u0022slug\u0022:\u0022text-to-image\u0022,\u0022lang\u0022:\u0022en\u0022,\u0022is_home\u0022:0,\u0022parent_id\u0022:28,\u0022parent_slug\u0022:\u0022text-to-image\u0022,\u0022url\u0022:\u0022https:\\\/\\\/www.imagetotext.info\\\/text-to-image\u0022},{\u0022id\u0022:38,\u0022name\u0022:\u0022Image to PDF\u0022,\u0022slug\u0022:\u0022image-to-pdf\u0022,\u0022lang\u0022:\u0022en\u0022,\u0022is_home\u0022:0,\u0022parent_id\u0022:38,\u0022parent_slug\u0022:\u0022image-to-pdf\u0022,\u0022url\u0022:\u0022https:\\\/\\\/www.imagetotext.info\\\/image-to-pdf\u0022},{\u0022id\u0022:39,\u0022name\u0022:\u0022Image Translator\u0022,\u0022slug\u0022:\u0022image-translator\u0022,\u0022lang\u0022:\u0022en\u0022,\u0022is_home\u0022:0,\u0022parent_id\u0022:39,\u0022parent_slug\u0022:\u0022image-translator\u0022,\u0022url\u0022:\u0022https:\\\/\\\/www.imagetotext.info\\\/image-translator\u0022},{\u0022id\u0022:45,\u0022name\u0022:\u0022QR Code Scanner\u0022,\u0022slug\u0022:\u0022qr-code-scanner\u0022,\u0022lang\u0022:\u0022en\u0022,\u0022is_home\u0022:0,\u0022parent_id\u0022:45,\u0022parent_slug\u0022:\u0022qr-code-scanner\u0022,\u0022url\u0022:\u0022https:\\\/\\\/www.imagetotext.info\\\/qr-code-scanner\u0022},{\u0022id\u0022:48,\u0022name\u0022:\u0022Word to PDF\u0022,\u0022slug\u0022:\u0022word-to-pdf\u0022,\u0022lang\u0022:\u0022en\u0022,\u0022is_home\u0022:0,\u
8620022parent_id\u0022:48,\u0022parent_slug\u0022:\u0022word-to-pdf\u0022,\u0022url\u0022:\u0022https:\\\/\\\/www.imagetotext.info\\\/word-to-pdf\u0022},{\u0022id\u0022:50,\u0022name\u0022:\u0022PDF to JPG\u0022,\u0022slug\u0022:\u0022pdf-to-jpg\u0022,\u0022lang\u0022:\u0022en\u0022,\u0022is_home\u0022:0,\u0022parent_id\u0022:50,\u0022parent_slug\u0022:\u0022pdf-to-jpg\u0022,\u0022url\u0022:\u0022https:\\\/\\\/www.imagetotext.info\\\/pdf-to-jpg\u0022},{\u0022id\u0022:81,\u0022name\u0022:\u0022Merge PDF\u0022,\u0022slug\u0022:\u0022merge-pdf\u0022,\u0022lang\u0022:\u0022en\u0022,\u0022is_home\u0022:0,\u0022parent_id\u0022:81,\u0022parent_slug\u0022:\u0022merge-pdf\u0022,\u0022url\u0022:\u0022https:\\\/\\\/www.imagetotext.info\\\/merge-pdf\u0022},{\u0022id\u0022:82,\u0022name\u0022:\u0022JPG to Excel\u0022,\u0022slug\u0022:\u0022jpg-to-excel\u0022,\u0022lang\u0022:\u0022en\u0022,\u0022is_home\u0022:0,\u0022parent_id\u0022:82,\u0022parent_slug\u0022:\u0022jpg-to-excel\u0022,\u0022url\u0022:\u0022https:\\\/\\\/www.imagetotext.info\\\/jpg-to-excel\u0022},{\u0022id\u0022:83,\u0022name\u0022:\u0022QR Code Generator\u0022,\u0022slug\u0022:\u0022qr-code-generator\u0022,\u0022lang\u0022:\u0022en\u0022,\u0022is_home\u0022:0,\u0022parent_id\u0022:83,\u0022parent_slug\u0022:\u0022qr-code-generator\u0022,\u0022url\u0022:\u0022https:\\\/\\\/www.imagetotext.info\\\/qr-code-generator\u0022},{\u0022id\u0022:89,\u0022name\u0022:\u0022Word to JPG\u0022,\u0022slug\u0022:\u0022word-to-jpg\u0022,\u0022lang\u0022:\u0022en\u0022,\u0022is_home\u0022:0,\u0022parent_id\u0022:89,\u0022parent_slug\u0022:\u0022word-to-jpg\u0022,\u0022url\u0022:\u0022https:\\\/\\\/www.imagetotext.info\\\/word-to-jpg\u0022},{\u0022id\u0022:92,\u0022name\u0022:\u0022PDF to Excel\u0022,\u0022slug\u0022:\u0022pdf-to-excel\u0022,\u0022lang\u0022:\u0022en\u0022,\u0022is_home\u0022:0,\u0022parent_id\u0022:92,\u0022parent_slug\u0022:\u0022pdf-to-excel\u0022,\u0022url\u0022:\u0022https:\\\/\\\/www.imagetotext.info\\\/pdf-to-excel\u0022},{\u0022id\u0022:94,\u0022name\u0022:\u0022Barcode Scanner\u0022,\u0022slug\u0022:\u0022barcode-scanner\u0022,\u0022lang\u0022:\u0022en\u0022,\u0022is_home\u0022:0,\u0022parent_id\u0022:94,\u0022parent_slug\u0022:\u0022barcode-scanner\u0022,\u0022url\u0022:\u0022https:\\\/\\\/www.imagetotext.info\\\/barcode-scanner\u0022},{\u0022id\u0022:102,\u0022name\u0022:\u0022Excel to JPG\u0022,\u0022slug\u0022:\u0022excel-to-jpg\u0022,\u0022lang\u0022:\u0022en\u0022,\u0022is_home\u0022:0,\u0022parent_id\u0022:102,\u0022parent_slug\u0022:\u0022excel-to-jpg\u0022,\u0022url\u0022:\u0022https:\\\/\\\/www.imagetotext.info\\\/excel-to-jpg\u0022},{\u0022id\u0022:104,\u0022name\u0022:\u0022PDF to CSV\u0022,\u0022slug\u0022:\u0022pdf-to-csv\u0022,\u0022lang\u0022:\u0022en\u0022,\u0022is_home\u0022:0,\u0022parent_id\u0022:104,\u0022parent_slug\u0022:\u0022pdf-to-csv\u0022,\u0022url\u0022:\u0022https:\\\/\\\/www.imagetotext.info\\\/pdf-to-csv\u0022},{\u0022id\u0022:112,\u0022name\u0022:\u0022HTML to PDF\u0022,\u0022slug\u0022:\u0022html-to-pdf\u0022,\u0022lang\u0022:\u0022en\u0022,\u0022is_home\u0022:0,\u0022parent_id\u0022:112,\u0022parent_slug\u0022:\u0022html-to-pdf\u0022,\u0022url\u0022:\u0022https:\\\/\\\/www.imagetotext.info\\\/html-to-pdf\u0022},{\u0022id\u0022:113,\u0022name\u0022:\u0022PDF to HTML\u0022,\u0022slug\u0022:\u0022pdf-to-html\u0022,\u0022lang\u0022:\u0022en\u0022,\u0022is_home\u0022:0,\u0022parent_id\u0022:113,\u0022parent_slug\u0022:\u0022pdf-to-html\u0022,\u0022url\u0022:\u0022https:\\\/\\\/www.imagetotext.info\\\/pdf-to-html\u0022},{\u0022id\u0022:118,\u0022name\u0022:\u0022Batch Image to Text\u0022,\u0022slug\u0022:\u0022bulk-image-to-text\u0022,\u0022lang\u0022:\u0022en\u0022,\u0022is_home\u0022:0,\u0022parent_id\u0022:118,\u0022parent_slug\u0022:\u0022bulk-image-to-text\u0022,\u0022url\u0022:\u0022https:\\\/\\\/www.imagetotext.info\\\/bulk-image-to-text\u0022},{\u0022id\u0022:121,\u0022name\u0022:\u0022Word to Excel\u0022,\u0022slug\u0022:\u0022word-to-excel\u0022,\u0022lang\u0022:\u0022en\u0022,\u0022is_home\u0022:0,\u0022parent_id\u0022:121,\u0022parent_slug\u0022:\u0022word-to-excel\u0022,\u0022url\u0022:\u0022https:\\\/\\\/www.imagetotext.info\\\/word-to-excel\u0022},{\u0022id\u0022:122,\u0022name\u0022:\u0022PPT to PDF\u0022,\u0022slug\u0022:\u0022ppt-to-pdf\u0022,\u0022lang\u0022:\u0022en\u0022,\u0022is_home\u0022:0,\u
8620022parent_id\u0022:122,\u0022parent_slug\u0022:\u0022ppt-to-pdf\u0022,\u0022url\u0022:\u0022https:\\\/\\\/www.imagetotext.info\\\/ppt-to-pdf\u0022},{\u0022id\u0022:123,\u0022name\u0022:\u0022CSV to Excel\u0022,\u0022slug\u0022:\u0022csv-to-excel\u0022,\u0022lang\u0022:\u0022en\u0022,\u0022is_home\u0022:0,\u0022parent_id\u0022:123,\u0022parent_slug\u0022:\u0022csv-to-excel\u0022,\u0022url\u0022:\u0022https:\\\/\\\/www.imagetotext.info\\\/csv-to-excel\u0022},{\u0022id\u0022:124,\u0022name\u0022:\u0022Excel to CSV\u0022,\u0022slug\u0022:\u0022excel-to-csv\u0022,\u0022lang\u0022:\u0022en\u0022,\u0022is_home\u0022:0,\u0022parent_id\u0022:124,\u0022parent_slug\u0022:\u0022excel-to-csv\u0022,\u0022url\u0022:\u0022https:\\\/\\\/www.imagetotext.info\\\/excel-to-csv\u0022},{\u0022id\u0022:125,\u0022name\u0022:\u0022Excel to PDF\u0022,\u0022slug\u0022:\u0022excel-to-pdf\u0022,\u0022lang\u0022:\u0022en\u0022,\u0022is_home\u0022:0,\u0022parent_id\u0022:125,\u0022parent_slug\u0022:\u0022excel-to-pdf\u0022,\u0022url\u0022:\u0022https:\\\/\\\/www.imagetotext.info\\\/excel-to-pdf\u0022}]'); 863</script>
863 864
865<script src="https://www.imagetotext.info/web_assets/frontend/script/library/jquery.min.js"></script>
vendor: 1 bytes, line 865
865
866<script 867 src="https://www.imagetotext.info/web_assets/frontend/script/general.js?v=36.38"> 868</script>
868 869<div class="search-modal"> 870 <div class="modal-container"> 871 <div class="bar-container"> 872 <div class="search-parent"> 873 <img src="https://www.imagetotext.info/web_assets/frontend/img/icons/ser-modal.svg" alt="serach icon" width="20" 874 height="20"> 875 <input type="text" class="search-bar" id="searchInput" placeholder="Search for tool..."> 876 </div> 877 <div class="search-keys d-flex align-items-center justify-space-between"> 878 <div class="d-flex align-items-center gap-20px"> 879 <div class="d-flex align-items-center gap-6px pills"> 880 Navigate 881 <div class="icon"> 882 <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 883<path d="M10.2222 4V12M12 10L10.2222 12L8.44444 10M5.77778 12V4M7.55556 6L5.77778 4L4 6" stroke="#888A92" stroke-linecap="round" stroke-linejoin="round"/> 884</svg> 885 886 </div> 887 </div> 888 <div class="d-flex align-items-center gap-6px pills"> 889 Select 890 <div class="icon"> 891 <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 892<path d="M5.84783 12L3.66602 9.59988L5.84783 7.19977M3.66602 9.59988L11.666 9.59988V4" stroke="#888A92" stroke-linecap="round" stroke-linejoin="round"/> 893</svg> 894 895 </div> 896 </div> 897 <div class="d-flex align-items-center gap-6px pills"> 898 Open New Tab 899 <div class="icon"> 900 Ctrl + 901 <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 902<path d="M5.84783 12L3.66602 9.59988L5.84783 7.19977M3.66602 9.59988L11.666 9.59988V4" stroke="#888A92" stroke-linecap="round" stroke-linejoin="round"/> 903</svg> 904 905 </div> 906 </div> 907 </div> 908 <div class="d-flex align-items-center gap-6px pills js-close-search" role="button" tabindex="0"> 909 Close 910 <div class="icon">esc</div> 911 </div> 912 </div> 913 </div> 914 <div class="search-container"> 915 <div class="head">Recent Search</div> 916 <div class="ser-results"> 917 <div class="no-result d-none"> 918 No result found! 919 </div> 920 </div> 921 </div> 922 </div> 923</div> 924 925<template id="serCardTemplate"> 926 <a href="#" class="d-flex align-items-center justify-space-between ser-card"> 927 <div class="d-flex align-items-center gap-12px card-info"></div> 928 <div class="enter-icon"> 929 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 930<path d="M7.31321 15L4.58594 11.9998L7.31321 8.99971M4.58594 11.9998L14.5859 11.9998V5" stroke="#9DA2B5" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/> 931</svg> 932 933 </div> 934 </a> 935</template>
936<script defer 937 src="https://www.imagetotext.info/web_assets/frontend/script/tool-search-bar.js?v=36.38"> 938</script>
938 939
939<script> 940 window.EMD_USER = { 941 logged_in: false, 942 name: null, 943 email: null, 944 email_verified: false, 945 is_premium: false, 946 // 0 = Free, 1 = Premium, 2 = Free Plan â see EmdWebUser::PREMIUM_TYPE 947 // 'Guest' when logged out, otherwise the PREMIUM_TYPE label 948 user_type: "Guest", 949 website: "imagetotext.info", 950 }; 951 952 Object.defineProperty(window.EMD_USER, 'user_key', { 953 enumerable: true, 954 get: function() { 955 try { 956 return localStorage.getItem('user-key') || localStorage.getItem('e-track-key') || ''; 957 } catch (e) { 958 return ''; 959 } 960 }, 961 }); 962</script>
962 963
963<script> 964 $(document).ready(function() { 965 $("#signup-form input").on("change input", function(e) { 966 $("#message_status").html(""); 967 }); 968 $("#login-form input").on("change input", function(e) { 969 $("#message_status").html(""); 970 }); 971 $('.comp_submit_btn').on('click', function(e) { 972 e.preventDefault(); 973 974 let form = $(this).closest('form'); 975 let nameVal = ""; 976 let isSignup = form.attr('id') === 'signup-form'; 977 if (isSignup) { 978 nameVal = form.find('input[name="name"]').val().trim(); 979 } 980 const emailVal = form.find('input[name="email"]').val().trim(); 981 const passwordVal = form.find('input[name="password"]').val().trim(); 982 let formData = { 983 _token: $('meta[name="_token"]').attr('content'), 984 email: emailVal, 985 password: passwordVal, 986 name: nameVal, 987 plan_id: form.find('input[name="plan_id"]').val(), 988 plan_code: form.find('input[name="plan_code"]').val(), 989 coupon: form.find('input[name="coupon"]').val(), 990 premium_login: premiumLoginFlag 991 }; 992 993 let url = isSignup ? "https://www.imagetotext.info/emd/register/web" : "https://www.imagetotext.info/emd/login/web"; 994 let container_id = isSignup ? 'auth_signup' : 'auth_login'; 995 996 if (!validateForm(formData, isSignup)) return false; 997 $('.comp_submit_btn').attr('disabled', true).css('pointer-events', 'none').text( 998 'Processing...'); 999 with_cloudflare_captcha(false, Date.now() / 1000, function(hash, token) { 1000 formData.emd_captcha_hash = hash; 1001 formData.emd_captcha_token = token; 1002 1003 submitForm(url, formData); 1004 }, "light", "#" + container_id, { 1005 wrapEle: $(this) 1006 }); 1007 }); 1008 }); 1009 1010 function validateForm(data, isSignup = false) { 1011 if (!validateEmail(data.email)) { 1012 $('#message_status').html('<p class="error" style="color: red">Please enter a valid email</p>'); 1013 return false; 1014 } 1015 if (data.password.length < 8) { 1016 $('#message_status').html('<p class="error" style="color: red">Password must be at least 8 characters</p>'); 1017 return false; 1018 } 1019 if (isSignup && !data.name) { 1020 $('#message_status').html('<p class="error" style="color: red">Please enter your name</p>'); 1021 return false; 1022 } 1023 if (isSignup && containsURL(data.name)) { 1024 $('#message_status').html('<p class="error" style="color: red">Name must not contain URLs or links.</p>'); 1025 return false; 1026 } 1027 if (/\+/.test(data.email)) { 1028 $('#message_status').html('<p class="error" style="color: red">Please enter a valid email address.</p>'); 1029 return false; 1030 } 1031 return true; 1032 } 1033 1034 function submitForm(url, formData) { 1035 $.ajax({ 1036 url: url, 1037 type: 'POST', 1038 data: formData, 1039 dataType: 'json', 1040 success: function(response) { 1041 if (response.status) { 1042 $('#message_status').html( 1043 `<p class="success" style="color: green">${response.message ?? response.mess}</p>` 1044 ); 1045 window.location.href = response.url; 1046 } else { 1047 $('#message_status').html( 1048 `<p class="error" style="color: red">${response.message ?? response.mess}</p>`); 1049 } 1050 }, 1051 error: function(xhr) { 1052 if ( 1053 xhr.responseJSON.verify_require == true || 1054 (xhr.responseJSON.email_verified == false) 1055 ) { 1056 let email_Pass = formData.email; 1057 let encoded = btoa(email_Pass); 1058 let urlSafe = encodeURIComponent(encoded); 1059 window.location.href = 1060 BASE_URL + "verify-email?email=" + urlSafe; 1061 } else if (xhr.status == 429) { 1062 $('#message_status').html( 1063 `<p class="error" style="color: red">${xhr.responseJSON.message}</p>`); 1064 } else { 1065 $('#message_status').html( 1066 `<p class="error" style="color: red">${xhr.responseJSON.mess ?? xhr.responseJSON.message}</p>` 1067 ); 1068 } 1069 }, 1070 complete: function() { 1071 $('.comp_submit_btn').attr('disabled', false).css('pointer-events', 'auto').text('Submit'); 1072 } 1073 }); 1074 setTimeout(() => { 1075 $('#message_status').html(''); 1076 }, 3500); 1077 } 1078 </script>
1078 1079 1080 1081 1082 1083 1084
1084<script> 1085 window.WebsiteTrackerConfig = { 1086 endpoint: '\/emd\/tracker-click\/EMD_TIME', 1087 1088 inactivity_delay_ms: 20000 1089 }; 1090 </script>
1090 1091
1091<script defer src="https://www.imagetotext.info/web_assets/frontend/script/emd/tracker.js?v1.2.0"></script>
1091 1092 1093 1094
1094<script src="https://accounts.google.com/gsi/client" async defer></script>
1094 1095<div id="g_id_onload" data-client_id="433658528871-mb956nk9gboa3aafbarl9ddk3o3fsh47.apps.googleusercontent.com" 1096 data-callback="handleCredentialResponse" data-ux_mode="popup"> 1097</div> 1098 1099 1100 1101
1102<script> 1103 function handleCredentialResponse(response) { 1104 if (!response || !response.credential) { 1105 console.error('Invalid response received'); 1106 return; 1107 } 1108 1109 fetch("https://www.imagetotext.info/emd/login/google/gsi", { 1110 method: "POST", 1111 headers: { 1112 "Content-Type": "application/json", 1113 "X-CSRF-TOKEN": "H0OAFxDpu3OjKzopOeuhh8eSUOO7gcozLNRdzz8S" 1114 }, 1115 body: JSON.stringify({ 1116 credential: response.credential 1117 }) 1118 }) 1119 .then(res => { 1120 if (!res.ok) { 1121 throw new Error('Network response was not ok: ' + res.status); 1122 } 1123 return res.json(); 1124 }) 1125 .then(res => { 1126 if (res.success) { 1127 window.location.reload(); 1128 } else { 1129 throw new Error(res.message || 'Login failed'); 1130 } 1131 }) 1132 .catch(error => { 1133 console.error('Error during Google login:', error); 1134 }); 1135 } 1136</script>
1136 1137 1138
1138<script src="https://www.gstatic.com/firebasejs/9.22.0/firebase-app-compat.js"></script>
1138 1139
1139<script src="https://www.gstatic.com/firebasejs/9.22.0/firebase-messaging-compat.js"></script>
1139 1140
1140<script> 1141 window.EMD_FIREBASE_CONFIG = JSON.parse('{\u0022apiKey\u0022:\u0022AIzaSyCoxNMaatGywZu2C8MHjnEq8HiSi2alVgM\u0022,\u0022authDomain\u0022:\u0022imagetotext-info-97867.firebaseapp.com\u0022,\u0022projectId\u0022:\u0022imagetotext-info-97867\u0022,\u0022storageBucket\u0022:\u0022imagetotext-info-97867.firebasestorage.app\u0022,\u0022messagingSenderId\u0022:\u0022305684550085\u0022,\u0022appId\u0022:\u00221:305684550085:web:72553975565bc877f0bbac\u0022}'); 1142 window.EMD_FIREBASE_VAPID_KEY = "BBTvGFnQuvIU1GrGLyWRc6Ghgw_nDOwTqgHTTjwiYQJyBCMJ3Z_v8zrTpcy71qBvcsUJT5AG5_R_E6cOKn8o_b0"; 1143 </script>
1143 1144
1144<script src="https://www.imagetotext.info/web_assets/frontend/script/emd/firebase-push-notification.js?v1.0.2"></script>
1144 1145
1145<script async src="https://chat.enzipe.com/widget/w.js?v=1790244293" data-key="pk_live_94dvl3mboayp3ehymbtl8exx"></script>
1145 1146 1147</body> 1148 1149</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.