diff --git a/_articles/extended-usage/advanced-initialization.md b/_articles/extended-usage/advanced-initialization.md index ae2c1520..6fd5ad5f 100644 --- a/_articles/extended-usage/advanced-initialization.md +++ b/_articles/extended-usage/advanced-initialization.md @@ -71,7 +71,7 @@ The resource files loaded from CDNs and package managers slightly differ from th - + @@ -79,7 +79,7 @@ The resource files loaded from CDNs and package managers slightly differ from th + + + + + +
+
Input:
+ + +
+ +
+
+
+ + + + +``` + +PS: You can find where the resources files are in this [FAQ](/_articles/faq/what-are-the-resources-files.md). + +### Step Three - Include the Add-on + +Reference the add-on's JavaScript with the following code. You can find the file in `DynamicWebTWAINOCRResources.zip`. + +> If you are using the [npm package](https://www.npmjs.com/package/dwt), the OCR is already included in the main JavaScript file (`dynamsoft.webtwain.min.js` or `dynamsoft.webtwain.min.mjs`), which means you can skip this step. + +```html + +``` + +Then, you can run the following to check if it is installed correctly: + +```js +async function CheckIsOCRInstalled(){ + try { + let info = await DWTObject.Addon.OCRKit.GetInstalledOCRInfo(); + console.log(info); + if (info.version) { + return true; + } + } catch (error) { + alert(error.message); + return false; + } + alert("OCR Add-on is not installed. Please install it to use OCR features."); + return false; +} +``` + +APIs used: + +[`GetInstalledOCRInfo()`](/_articles/info/api/Addon_OCR.md#getinstalledocrinfo) + +### Step Four - Detect Page Orientation + +This is an optional step. If the scanned document is rotated, we can detect its orientation and rotate it. + +```js +async function CorrectOrientationForOne(index){ + let result = await DWTObject.Addon.OCRKit.DetectPageOrientation(index); + if (result.angle != 0) { + DWTObject.Rotate(index,-result.angle,true); + } +} +``` + +APIs used: + +- [`DetectPageOrientation()`](/_articles/info/api/Addon_OCR.md#detectpageorientation) +- [`Rotate()`](/_articles/info/api/WebTwain_Edit.md#rotate) + +### Step Five - Recognize Text + +Recognize the text in one image and print it in a `pre` element. + +```html +

+
+```
+
+APIs used:
+
+[`Recognize()`](/_articles/info/api/Addon_OCR.md#recognize)
+
+### Step Six - Save as PDF
+
+After recognition, we can save the OCR results and images as a PDF file. It will add an invisible text layer above the original content so that the text becomes selectable and searchable.
+
+```js
+let indicesOfAll = DWTObject.SelectAllImages();
+await DWTObject.Addon.OCRKit.SaveToPath(indicesOfAll,Dynamsoft.DWT.EnumDWT_OCRKitOutputFormat.PDF_WITH_EXTRA_TEXTLAYER,"output.pdf");
+```
+
+APIs used:
+
+[`SaveToPath()`](/_articles/info/api/Addon_OCR.md#savetopath)
+
+### Step Seven - Review the Complete Code
+
+Here is the complete code of the demo.
+
+```html
+
+
+
+  Dynamic Web TWAIN - OCR Demo
+  
+  
+  
+  
+  
+
+
+  
+
Input:
+ + +
+
+
Processing:
+ + + + +
+
+
Output:
+ + +
+ +
+
+

+  
+ + + + +``` + +## FAQ + +### What Languages are Supported? + +The OCR add-on supports multiple languages including English, French, Spanish, German, Italian, and Portuguese. + +Contact [support](mailto:support@dynamsoft.com) if you need to OCR documents in other languages. + +### What are the Hardware Requirements? + +The OCR add-on requires a 64-bit operating system and at least 4GB of RAM for optimal performance. + +### Can I Limit the Region for OCR? + +Yes. You can specify which regions for OCR using the `rects` option of the [`recognize()`](/_articles/info/api/Addon_OCR.md#recognize) function. + +### Will My Document be Uploaded to a Remote Server? + +No. The OCR process happens locally on your machine. No data is sent to any remote servers. + +### What is Searchable PDF? + +A searchable PDF is a type of PDF file where the text content is recognized by a computer. This means you can use the Find function (usually Ctrl+F or Cmd+F) to search for specific words or phrases within the document, just like you would on a webpage or in a Word document. + +The OCR add-on supports two kinds of searchable PDF output. + +* Plain-text PDF, which will only keep a text layer of the OCRed text for each page. +* Extra-text-layer PDF, which will add an extra invisible text layer of the OCRed text above each page. + +### What are OCR Basic and OCR Pro? + +OCR Basic and OCR Pro are previous OCR add-ons, which are deprecated in v16.2. But they are still usable in the latest version. + +To differentiate from previous versions, the new OCR uses `OCRKit` as the namespace. + diff --git a/_articles/extended-usage/pdf-processing.md b/_articles/extended-usage/pdf-processing.md index 10399a3f..1bd1ccf2 100644 --- a/_articles/extended-usage/pdf-processing.md +++ b/_articles/extended-usage/pdf-processing.md @@ -9,7 +9,7 @@ description: Dynamic Web TWAIN SDK Documentation Handle PDF Page # Processing PDFs -PDFs are widely used in many and various industries, and presently are the only non-image file type that `Dynamic Web TWAIN` supports. In this next section, we will address all the input and output operations that allow the user to properly handle PDF files. +In this next section, we will address all the input and output operations that allow the user to properly handle PDF files. ## Environment @@ -29,11 +29,11 @@ To include the PDF addon, simply add a reference to the corresponding JavaScript ### Open an image-only PDF file -When loading in a PDF file, `Dynamic Web TWAIN` tries to extract images from that file, which is why the SDK can handle image-based PDF documents by default. +If the PDF file only has one image per page, it can load the file by extracting the images. Most of the PDF files are scanned documents. -### Open a searchable PDF file +### Open a PDF file with more than images -However, most existing PDF files contain much more than just images. For image-and-text PDF files, we need to make use of the PDF Rasterizer (`PDFR` for short), the main component of the PDF addon. +If the PDF file is not pure image, we need to make use of the PDF Rasterizer (`PDFR` for short) to render the PDF first. > How PDFR works: As the name suggests, `PDFR` rasterizes a PDF file page by page much like a scanner. You set a resolution, and you get the resulting images in that resolution after the rasterization. @@ -57,11 +57,11 @@ DWTObject.Addon.PDF.SetReaderOptions({ DWTObject.LoadImageEx("", Dynamsoft.DWT.EnumDWT_ImageType.IT_ALL, onSuccess, onFailure); ``` -The method [ `SetReaderOptions()` ](/_articles/info/api/Addon_PDF.md#setreaderoptions) configures how a PDF will be rasterized when being loaded into Dynamic Web TWAIN. +The method [`SetReaderOptions()`](/_articles/info/api/Addon_PDF.md#setreaderoptions) configures how a PDF will be rasterized when being loaded into Dynamic Web TWAIN. #### Other methods -* [ `GetReaderOptions()` ](/_articles/info/api/Addon_PDF.md#getreaderoptions): This method returns the current [`ReaderOptions`](/_articles/info/api/interfaces.md#readeroptions). +* [`GetReaderOptions()`](/_articles/info/api/Addon_PDF.md#getreaderoptions): This method returns the current [`ReaderOptions`](/_articles/info/api/interfaces.md#readeroptions). ## Output as PDF @@ -117,3 +117,47 @@ DWTObject.SaveAllAsPDF(' ', function() {}, function() {}) When you set a password prior to generating a PDF file, that password becomes necessary each time you attempt to open the file thereafter. The password does not restrict the usage permissions of the PDF. The encryption algorithm utilized is AES256, ensuring robust security measures. Note: Only the core module license is required to use this method. + +## Append Pages to a PDF + +If you need to append a scanned document to a PDF file and keep the rest pages unmodified. You can use the following code to read a PDF file by setting the `preserveUnmodifiedOnSave` property to `true`. + +```js +DWTObject.Addon.PDF.SetReaderOptions({ + convertMode: Dynamsoft.DWT.EnumDWT_ConvertMode.CM_RENDERALL, + preserveUnmodifiedOnSave: true, //only available for v19.0+ +}); +``` + +Then, it will keep the unmodified pages in the PDF file instead of converting them to images when saving a new PDF file with the scanned documents. + +## PDF/A + +PDF/A is a version of PDF specialized for use in the archiving and long-term preservation of electronic documents. For example, it does not allow using external fonts, which will change the appearance if opening it on another device. + +Starting from Web TWAIN v19.3, it can save PDF as PDF/A-1b or PDF/A-2b by specifying `pdfaVersion` in [`PDFWSettings`](/_articles/info/api/interfaces.md#pdfwsettings). + +Here is the code to do this: + +```js +DWTObject.Addon.PDF.Write.Setup({ + pdfaVersion:"pdf/a-1b" +}); +DWTObject.IfShowFileDialog = true; +DWTObject.SaveAllAsPDF(' ', function() {}, function() {}) +``` + +Both PDF/A-1b and PDF/A-2b are basic conformation level standards. PDF/A-1b is based on PDF version 1.4 and PDF/A-2b is based on PDF version 1.7. PDF/A-2b has the following new features compared to PDF/A-1b: + +* JPEG 2000 image compression. +* support for transparency effects and layers. +* embedding of OpenType fonts. +* provisions for digital signatures in accordance with the PDF Advanced Electronic Signatures – PAdES standard. +* the option of embedding PDF/A files to facilitate archiving of sets of documents with a single file. + +It is recommended to use PDF/A-2b because of the support for more features. + +Related FAQ: + +* [How can I generate PDF/A files?](/_articles/faq/generate-pdf-files.md) +* [How can I load PDF/A files into the Dynamic Web TWAIN SDK?](/_articles/faq/load-pdf-files.md) diff --git a/_articles/faq/admin-privileges-needed-to-install.md b/_articles/faq/admin-privileges-needed-to-install.md index 85a491ad..18da69b6 100644 --- a/_articles/faq/admin-privileges-needed-to-install.md +++ b/_articles/faq/admin-privileges-needed-to-install.md @@ -24,9 +24,11 @@ https://www.dynamsoft.com/web-twain/docs/faq/#project-deployment-and-end-user-in Yes, the Dynamic Web TWAIN Service installer is a `.msi` file which requires administrator privileges to install as the install target is `C:\Program Files (x86)`. Once the Dynamic Web TWAIN Service is installed with admin privileges, every user on that machine can has access to the Dynamic Web TWAIN Service. -If your organization does not allow end users to have admin privileges, you can contact [Dynamsoft Support](/_articles/about/getsupport.md) to get a special "Personal Installer" that does not require admin privileges. +If your organization does not allow end users to have admin privileges, you can contact [Dynamsoft Support](/_articles/about/getsupport.md) to get a special "User Installer" that does not require admin privileges. -The "Personal Installer", will install to the user's `C:\Users\{UserName}\AppData\Roaming\` folder. Please be aware that only one user per machine is able to have the service installed via this method. The service cannot be installed to multiple user profiles, and only the user that installs the Services in this manner will have access to the Dynamic Web TWAIN Service. +The "User Installer", will install to the user's `C:\Users\{UserName}\AppData\Roaming\` folder. + +For Web TWAIN versions lower than 19.3, please be aware that only one user per machine is able to have the service installed via this method. The service cannot be installed to multiple user profiles, and only the user that installs the Services in this manner will have access to the Dynamic Web TWAIN Service.
@@ -34,9 +36,9 @@ The "Personal Installer", will install to the user's `C:\Users\{UserName}\AppDat Yes, the Dynamsoft Service installer is a `.msi` file which requires administrator privileges to install as the install target is `C:\Windows\SysWOW64\`. Once the Dynamsoft Service is installed with admin privileges, every user on that machine can has access to the Dynamsoft Service. -If your organization does not allow end users to have admin privileges, you can contact [Dynamsoft Support](/_articles/about/getsupport.md) to get a special "Personal Installer" that does not require admin privileges. +If your organization does not allow end users to have admin privileges, you can contact [Dynamsoft Support](/_articles/about/getsupport.md) to get a special "User Installer" that does not require admin privileges. -The "Personal Installer", will install to the user's `C:\Users\{UserName}\AppData\Roaming\` folder. Please be aware that only one user per machine is able to have the service installed via this method. The service cannot be installed to multiple user profiles, and only the user that installs the Services in this manner will have access to the Dynamsoft Service. +The "User Installer", will install to the user's `C:\Users\{UserName}\AppData\Roaming\` folder. Please be aware that only one user per machine is able to have the service installed via this method. The service cannot be installed to multiple user profiles, and only the user that installs the Services in this manner will have access to the Dynamsoft Service.
diff --git a/_articles/faq/dwt-with-annotation.md b/_articles/faq/dwt-with-annotation.md index 8c5b5170..43cc3a82 100644 --- a/_articles/faq/dwt-with-annotation.md +++ b/_articles/faq/dwt-with-annotation.md @@ -34,7 +34,7 @@ Deliver the SDK dependencies with either the [jsDelivr](https://jsdelivr.com/) o ```html - + @@ -44,7 +44,7 @@ Deliver the SDK dependencies with either the [jsDelivr](https://jsdelivr.com/) o ```html - + @@ -118,7 +118,7 @@ API Reference Reference a CDN like `jsDelivr` to fetch most resources using `Dynamsoft.DWT.ResourcesPath`. Notably these resources exclude DWT Service installers, which exceed the `jsDelivr` CDN per-file size limit. You have a few options to set this path with `Dynamsoft.DWT.ServiceInstallerLocation`: 1. [Install the DWT SDK](https://www.dynamsoft.com/web-twain/downloads/), extract the DWT service installers (under path like `C:\Program Files (x86)\Dynamsoft\Dynamic Web TWAIN SDK 19.2\Resources\dist`), then self-host the DWT Service installers with `Dynamsoft.DWT.ServiceInstallerLocation = "https://example.com/DWT/Resources/dist"`. -2. Use a different CDN with a higher per-file size limit by referencing the location with `Dynamsoft.DWT.ServiceInstallerLocation = "https://unpkg.com/dwt@19.2.0/dist/dist"`. +2. Use a different CDN with a higher per-file size limit by referencing the location with `Dynamsoft.DWT.ServiceInstallerLocation = "https://unpkg.com/dwt@19.3.0/dist/dist"`. ```javascript // Create Dynamic Web TWAIN object @@ -126,7 +126,7 @@ Reference a CDN like `jsDelivr` to fetch most resources using `Dynamsoft.DWT.Res // You can request a 30-day trial key from https://www.dynamsoft.com/customer/license/trialLicense/?product=dwtddv Dynamsoft.DWT.ProductKey = "DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9"; Dynamsoft.DWT.UseDefaultViewer = false; -Dynamsoft.DWT.ResourcesPath = "https://cdn.jsdelivr.net/npm/dwt@19.2.0/dist"; +Dynamsoft.DWT.ResourcesPath = "https://cdn.jsdelivr.net/npm/dwt@19.3.0/dist"; // Do not forget to set your installer path Dynamsoft.DWT.ServiceInstallerLocation = "YOUR_INSTALLER_PATH_HERE"; @@ -285,7 +285,7 @@ API Reference HelloWorld - + @@ -322,7 +322,7 @@ let DWObject, editViewer, ddvDoc; // Create Dynamic Web TWAIN object Dynamsoft.DWT.ProductKey = license; Dynamsoft.DWT.UseDefaultViewer = false; - Dynamsoft.DWT.ResourcesPath = "https://cdn.jsdelivr.net/npm/dwt@19.2.0/dist"; + Dynamsoft.DWT.ResourcesPath = "https://cdn.jsdelivr.net/npm/dwt@19.3.0/dist"; // Do not forget to set your installer path Dynamsoft.DWT.ServiceInstallerLocation = "YOUR_INSTALLER_PATH_HERE"; diff --git a/_articles/faq/generate-pdf-files.md b/_articles/faq/generate-pdf-files.md index 78bce200..f3ca76a3 100644 --- a/_articles/faq/generate-pdf-files.md +++ b/_articles/faq/generate-pdf-files.md @@ -7,11 +7,75 @@ keywords: Dynamic Web TWAIN, Addon, separate, license breadcrumbText: How can I generate PDF/A files? description: How can I generate PDF/A files? date: 2021-12-01 01:09:41 +0800 -last_modified: 2022-07-08 02:17:16 +0800 +last_modified: 2025-12-10 16:43:15 +0800 --- # Addon ## How can I generate PDF/A files? -Dynamic Web TWAIN does not support the generation of PDF/A files. +Dynamic Web TWAIN supports exporting documents as **PDF/A** starting from version **19.3**. +PDF/A is an archival format designed for long-term preservation. The following variants are supported: + +### Supported PDF/A Versions + +| PDF/A Variant | Underlying PDF Version | +|:-------------:|-----------------------------| +| `pdf/a-1b` | **1.4** (default) | +| `pdf/a-2b` | **1.5** (default), 1.6, 1.7 | + +### What’s the difference between PDF/A-1b and PDF/A-2b? +Although both variants ensure that documents can be reliably displayed in the future, they differ in terms of supported PDF features and compression options. +- PDF/A-1b + - Uses the older PDF 1.4 specification. + - **Does not support JPEG2000** or JBIG2 image compression. + - Does not allow transparency. + - May result in larger file sizes and more conversion restrictions. + +- PDF/A-2b + - Based on newer PDF versions (1.5–1.7). + - Supports **JPEG2000**, JBIG2, transparency, and other modern PDF features. + - Typically requires **fewer changes** to the source document. + - Usually produces **smaller output** files. + +**Recommendation:** +For most use cases, we recommend using **`pdf/a-2b`**. +It offers better compression support, fewer limitations, and higher compatibility with modern PDFs while still meeting archival requirements. + +### Licensing Requirements +Dynamic Web TWAIN does not require any add-on license to **export** or generate PDF or PDF/A files. However, PDF Rasterizer add-on would be required when **loading** a PDF/PDF-A file that contains **text or vector graphics**. + +You can programmatically check whether a file needs rasterization using [`IsRasterizationRequired()`](/_articles/info/api/Addon_PDF.md#israsterizationrequired): + +```javascript +DWTObject.Addon.PDF.IsRasterizationRequired(path); // returns true or false +``` + +### Behavior and Defaults + +- If you do not set `pdfaVersion`, the export uses standard PDF format (non-PDF/A). + +- If you set `pdfaVersion` but forget to set `version`, or set a mismatched or incorrect PDF version, Dynamic Web TWAIN automatically falls back to a default PDF version: + - `pdf/a-1b` → defaults to PDF `1.4` + - `pdf/a-2b` → defaults to PDF `1.5` + +### How to Export as PDF/A + +Configure PDF output using [`Write.Setup()`](/_articles/info/api/Addon_PDF.md#writesetup) before calling any save function. + +```javascript +DWTObject.Addon.PDF.Write.Setup({ + version: "1.5", // [optional] 1.4 for "pdf/a-1b"; 1.5/1.6/1.7 for "pdf/a-2b" + pdfaVersion: "pdf/a-2b" // "pdf/a-1b" or "pdf/a-2b" +}); +``` + +After configuring `pdfaVersion`, all APIs that output PDF files will automatically generate PDF/A-compliant PDFs. This includes, but is not limited to: + +- **Save APIs** like: [`SaveAsPDF()`](/_articles/info/api/WebTwain_IO.md#saveaspdf), [`SaveSelectedImagesAsMultiPagePDF()`](/_articles/info/api/WebTwain_IO.md#saveselectedimagesasmultipagepdf), [`SaveAllAsPDF()`](/_articles/info/api/WebTwain_IO.md#saveallaspdf) + +- **Conversion APIs** like: [`ConvertToBlob()`](/_articles/info/api/WebTwain_IO.md#converttoblob), [`ConvertToBase64()`](/_articles/info/api/WebTwain_IO.md#converttobase64) + +- **Upload APIs** like: [`HTTPUpload()`](/_articles/info/api/WebTwain_IO.md#httpupload), [`FTPUpload()`](/_articles/info/api/WebTwain_IO.md#ftpupload), [`httpUploadBlob()`](/_articles/info/api/WebTwain_IO.md#httpuploadblob) + +- **OCR Output APIs** like: [`SaveToPath()`](/_articles/info/api/Addon_OCR.md#savetopath), [`SaveAsBase64()`](/_articles/info/api/Addon_OCR.md#saveasbase64), [`SaveAsBlob()`](/_articles/info/api/Addon_OCR.md#saveasblob) \ No newline at end of file diff --git a/_articles/faq/load-pdf-files.md b/_articles/faq/load-pdf-files.md index a0991aa2..7af3f46c 100644 --- a/_articles/faq/load-pdf-files.md +++ b/_articles/faq/load-pdf-files.md @@ -7,22 +7,38 @@ keywords: Dynamic Web TWAIN, Addon, load pdf/a breadcrumbText: How can I load PDF/A files into the Dynamic Web TWAIN SDK? description: How can I load PDF/A files into the Dynamic Web TWAIN SDK? date: 2021-12-01 01:09:41 +0800 -last_modified: 2022-10-21 14:05:54 +0800 +last_modified: 2025-12-10 15:53:54 +0800 --- # Addon ## How can I load PDF/A files into the Dynamic Web TWAIN SDK? -You can use the PDF Rasterizer add-on which supports reading PDF/A images. +Dynamic Web TWAIN can load PDF/A files, but whether the PDF Rasterizer add-on is required depends on the content of the PDF/A file: -If the PDF Rasterizer add-on is used, the file will automatically be rasterized when it's loaded to the viewer. +- If the PDF/A contains text or vector graphics, it must be rasterized, and therefore requires the PDF Rasterizer add-on. +- If the PDF/A contains only raster images, it can be loaded without the PDF Rasterizer. -### When is PDF Rasterizer effective? +You can programmatically check whether a file needs rasterization using [`IsRasterizationRequired()`](/_articles/info/api/Addon_PDF.html#israsterizationrequired): -Once `PDFR` has been configured, it will automatically detect if a file needs to be rasterized and if so, it will convert it to an image(s) with the set resolution(if no resolution is set, the default is 200). This happens when you call any of the following methods +```javascript +DWTObject.Addon.PDF.IsRasterizationRequired(path); // returns true or false +``` -> `PDFR` also works when you drag and drop the file onto the viewer to load it +When enabled, the add-on automatically rasterizes PDF/A documents into images when they are loaded into the viewer. + +> [!NOTE] +> **Looking for information about generating PDF/A files?** +> Starting from Dynamic Web TWAIN 19.3, PDF/A creation is supported. +> See: [How can I generate PDF/A files?](/_articles/faq/generate-pdf-files.md) + + +### When is PDF Rasterizer used? + +Once the PDF Rasterizer (`PDFR`) is configured, it automatically rasterizes the file *only when needed*. +If rasterization is required, the PDF is converted into one or more images at the specified resolution (default **200 DPI**). + +Rasterization may occur when using any of the following APIs (including drag-and-drop): - [ `LoadImage()` ](/_articles/info/api/WebTwain_IO.md#loadimage) - [ `LoadImageEx()` ](/_articles/info/api/WebTwain_IO.md#loadimageex) @@ -35,4 +51,8 @@ Once `PDFR` has been configured, it will automatically detect if a file needs to - [ `HTTPDownloadThroughPost()` ](/_articles/info/api/WebTwain_IO.md#httpdownloadthroughpost) - [ `HTTPDownloadDirectly()` ](/_articles/info/api/WebTwain_IO.md#httpdownloaddirectly) -Dynamic Web TWAIN does not support the generation of PDF/A files. +### Important Change in v19.3 +Previous versions of Dynamic Web TWAIN did **not** support exporting PDF/A files. +As of **19.3**, you can now: +- Load PDF/A files (with or without the PDF Rasterizer, depending on content), and +- Generate PDF/A files. diff --git a/_articles/faq/what-are-the-resources-files.md b/_articles/faq/what-are-the-resources-files.md index 94d43df0..7f7e57d0 100644 --- a/_articles/faq/what-are-the-resources-files.md +++ b/_articles/faq/what-are-the-resources-files.md @@ -7,7 +7,7 @@ keywords: Dynamic Web TWAIN, Documentation, General breadcrumbText: What Are The Resources Files description: What are the Resources files? date: 2021-07-14 18:53:19 +0800 -last_modified: 2023-06-28 16:10:36 +0800 +last_modified: 2025-12-02 10:35:36 +0800 --- # General @@ -16,7 +16,13 @@ last_modified: 2023-06-28 16:10:36 +0800 Resources files help you include Dynamic Web TWAIN in your application. The following shows the purpose of these files. -> *Resources* is the default name of the folder that contain these files. It can be changed. For example, in the DWT package, it's called *dist*. +You can typically find the `Resources` folder inside the following locations depending on your platform after using the [installer](https://www.dynamsoft.com/web-twain/downloads/): + +- Windows: `C:\Program Files (x86)\Dynamsoft\Dynamic Web TWAIN SDK {Version Number}\` +- Linux: Within the decompressed file `Dynamic Web TWAIN SDK {Version Number}/` +- macOS: `/Applications/Dynamsoft/Dynamic Web TWAIN SDK {Version Number}/` + +> *Resources* is the default name of the folder that contain these files. In the DWT npm package, it's called *dist*.
diff --git a/_articles/indepth/development/angular.md b/_articles/indepth/development/angular.md index 63e3a1f6..10b40ace 100644 --- a/_articles/indepth/development/angular.md +++ b/_articles/indepth/development/angular.md @@ -28,7 +28,7 @@ ng new dwt-angular ### **cd** to the root directory of the application and install the dependencies ``` cmd -npm install dwt@19.2.0 +npm install dwt@19.3.0 ``` ## Configure the project diff --git a/_articles/indepth/development/react.md b/_articles/indepth/development/react.md index f00521b0..a221fd8c 100644 --- a/_articles/indepth/development/react.md +++ b/_articles/indepth/development/react.md @@ -40,7 +40,7 @@ npm install ``` ``` cmd -npm install dwt@19.2.0 ncp +npm install dwt@19.3.0 ncp ``` > `ncp` is used to copy static resources files. diff --git a/_articles/indepth/development/vue.md b/_articles/indepth/development/vue.md index a7efd98c..b1d5ea1a 100644 --- a/_articles/indepth/development/vue.md +++ b/_articles/indepth/development/vue.md @@ -33,7 +33,7 @@ vue create dwt-vue ### Navigate to the root directory of the application and install the `dwt` and `ncp` package ``` cmd -yarn add dwt@19.2.0 +yarn add dwt@19.3.0 ``` ``` cmd @@ -164,9 +164,9 @@ export default { * Note: * This following line of code uses the PDF Rasterizer which is an extra add-on that is licensed separately */ - this.DWTObject.Addon.PDF.SetConvertMode( - Dynamsoft.DWT.EnumDWT_ConvertMode.CM_RENDERALL - ); + this.DWTObject.Addon.PDF.SetReaderOptions({ + convertMode: Dynamsoft.DWT.EnumDWT_ConvertMode.CM_RENDERALL + }); this.DWTObject.LoadImageEx( "", Dynamsoft.DWT.EnumDWT_ImageType.IT_ALL, @@ -232,7 +232,7 @@ npm install ``` ``` cmd -npm install dwt@19.2.0 +npm install dwt@19.3.0 ``` ``` cmd @@ -324,7 +324,9 @@ function openImage() { * Note: * This following line of code uses the PDF Rasterizer which is an extra add-on that is licensed separately */ - DWTObject.Addon.PDF.SetConvertMode(Dynamsoft.DWT.EnumDWT_ConvertMode.CM_RENDERALL); + DWTObject.Addon.PDF.SetReaderOptions({ + convertMode: Dynamsoft.DWT.EnumDWT_ConvertMode.CM_RENDERALL + }); DWTObject.LoadImageEx( "", Dynamsoft.DWT.EnumDWT_ImageType.IT_ALL, diff --git a/_articles/index.md b/_articles/index.md index 69160c8f..1b6388fc 100644 --- a/_articles/index.md +++ b/_articles/index.md @@ -49,6 +49,7 @@ description: Dynamic Web TWAIN SDK Documentation Homepage - [Using the DWT RESTful API]({{site.extended-usage}}restful-api.html) - [Barcode Recognition]({{site.extended-usage}}barcode-processing.html) - [PDF Handling]({{site.extended-usage}}pdf-processing.html) +- [OCR](/_articles/extended-usage/ocr.md) - [Remote Scan](https://www.dynamsoft.com/remote-scan/docs/introduction/) - [Configuring System Messages]({{site.extended-usage}}system-message-configuration.html) @@ -73,6 +74,7 @@ description: Dynamic Web TWAIN SDK Documentation Homepage - [Dynamsoft FileUploader]({{site.api}}Dynamsoft_FileUploader.html) - Add-On Modules - [Barcode Reader]({{site.api}}Addon_BarcodeReader.html) + - [OCR](/_articles/info/api/Addon_OCR.md) - [PDF Rasterizer]({{site.api}}Addon_PDF.html) - [Webcam]({{site.api}}Addon_Webcam.html) - [Enumerations]({{site.api}}Dynamsoft_Enum.html) diff --git a/_articles/info/api/Addon_OCR.md b/_articles/info/api/Addon_OCR.md new file mode 100644 index 00000000..0047551d --- /dev/null +++ b/_articles/info/api/Addon_OCR.md @@ -0,0 +1,311 @@ +--- +layout: default-layout +needAutoGenerateSidebar: true +title: Dynamic Web TWAIN SDK API Reference - OCR Addon APIs +keywords: Dynamic Web TWAIN, Documentation, API Reference, OCR Addon APIs +breadcrumbText: OCR Addon +description: Dynamic Web TWAIN SDK Documentation API Reference OCR Addon APIs Page +--- + +# {WebTwainObject}.Addon.OCRKit + +> {WebTwainObject} denotes the `WebTwain` instance. + +**Methods** + +| [`GetInstalledOCRInfo()`](#getinstalledocrinfo) | [`DetectPageOrientation()`](#detectpageorientation) | [`Recognize()`](#recognize) | [`SaveToPath()`](#savetopath) | +| [`SaveAsBase64()`](#saveasbase64) | [`SaveAsBlob()`](#saveasblob) | | | + +--- + +## GetInstalledOCRInfo() + +Return the info of the installed OCR addon. It will throw an error if the OCR module is not installed. + +**Syntax** + +```typescript +GetInstalledOCRInfo(): Promise; +``` + +**Return Values** + +Promise of an [`OCRInfo`](/_articles/info/api/interfaces.md#ocrinfo) object. + +**Availability** + +
+ + + + + + + + + + + + + + +
H5(Windows)H5(macOS)H5(Linux)
v19.3+ not supported not supported
+
+ +--- + +## DetectPageOrientation() + +**Syntax** + +```ts +DetectPageOrientation( + index: number, + settings?: { + detectionMode?: EnumDWT_PageOrientationDetectionMode | number + } +): Promise<{angle: EnumDWT_PageOrientation | number, confidence: number}>; +``` + +**Parameters** + +`index`: Index of the image to process. + +`settings`: Settings of the method. You can configure the accuracy mode. Please refer to [`EnumDWT_PageOrientationDetectionMode`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_pageorientationdetectionmode). + +**Return Values** + +Promise of an object of the orientation detection result. Please refer to [`EnumDWT_PageOrientation`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_pageorientation). + +**Availability** + +
+ + + + + + + + + + + + + + +
H5(Windows)H5(macOS)H5(Linux)
v19.3+ not supported not supported
+
+ +--- + +## Recognize() + +Recognize the text in one page. + +**Syntax** + +```ts +Recognize( + index: number, + options?: { + settings?: { + language?: string, + pageOrientation?: EnumDWT_PageOrientation| number, + }, + rects?: { + left: number, + top: number, + right: number, + bottom: number + }[] + } +): Promise; +``` + +**Parameters** + +`index`: Index of the image to process. + +`options`: + +* `settings`: Settings of the recognition. + * `language`: Specify the code of language for recognition (`en`, `fr`, e.g.). See the table below listing supported languages. + * `pageOrientation`: Specify the orientation of the page. The OCR will rotate the page before recognition. Please refer to [`EnumDWT_PageOrientation`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_pageorientation). +* `rects`: An array of rectangles to limit the regions for recognition. + +**Return Values** + +Promise of the [`OCRResult`](/_articles/info/api/interfaces.md#ocrresult) object. + +**Supported Languages** + +| Language Name | Code | +| :------------------------- | :---- | +| English | en | +| French | fr | +| Spanish | es | +| German | de | +| Italian | it | +| Portuguese | pt | + +**Availability** + +
+ + + + + + + + + + + + + + +
H5(Windows)H5(macOS)H5(Linux)
v19.3+ not supported not supported
+
+ + +--- + +## SaveToPath() + +Save the result to a local path. + +**Syntax** + +```ts +SaveToPath( + indices: number[], + outputFormat: Dynamsoft.DWT.EnumDWT_OCRKitOutputFormat | number, + path: string +): Promise; +``` + +**Parameters** + +`indices`: Indices of the pages to save. + +`outputFormat`: Please refer to [`EnumDWT_OCRKitOutputFormat`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_ocrkitoutputformat). + +`path`: System's absolute path or filename for saving. A file saving dialog will appear for confirmation. + +**Return Values** + +Promise of a `boolean` result indicating the success of the operation. + +**Availability** + +
+ + + + + + + + + + + + + + +
H5(Windows)H5(macOS)H5(Linux)
v19.3+ not supported not supported
+
+ + +--- + +## SaveAsBase64() + +Save the result as base64. + +**Syntax** + +```ts +SaveAsBase64( + indices: number[], + outputFormat: Dynamsoft.DWT.EnumDWT_OCRKitOutputFormat | number +): Promise; +``` + +**Parameters** + +`indices`: Indices of the pages to save. + +`outputFormat`: Please refer to [`EnumDWT_OCRKitOutputFormat`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_ocrkitoutputformat). + +**Return Values** + +Promise of a base64 string result. + +**Availability** + +
+ + + + + + + + + + + + + + +
H5(Windows)H5(macOS)H5(Linux)
v19.3+ not supported not supported
+
+ + +--- + +## SaveAsBlob() + +Save the result as blob. + +**Syntax** + +```ts +SaveAsBlob( + indices: number[], + outputFormat: Dynamsoft.DWT.EnumDWT_OCRKitOutputFormat | number +): Promise; +``` + +**Parameters** + +`indices`: Indices of the pages to save. + +`outputFormat`: Please refer to [`EnumDWT_OCRKitOutputFormat`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_ocrkitoutputformat). + +**Return Values** + +Promise of a `Blob` object. + +**Availability** + +
+ + + + + + + + + + + + + + +
H5(Windows)H5(macOS)H5(Linux)
v19.3+ not supported not supported
+
\ No newline at end of file diff --git a/_articles/info/api/Dynamsoft_Enum.md b/_articles/info/api/Dynamsoft_Enum.md index ee5a0b12..23119379 100644 --- a/_articles/info/api/Dynamsoft_Enum.md +++ b/_articles/info/api/Dynamsoft_Enum.md @@ -918,3 +918,39 @@ Note: The below enumeration value has been deprecated as of 18.4. | ArrayBuffer | 2 | | XML | 3 | | JSON | 4 | + + +## `Dynamsoft.DWT.EnumDWT_OCRKitOutputFormat` + +| Label | Value | +| :------------------------- | :---- | +| TEXT | 0 | +| PDF_PLAIN_TEXT | 1 | +| PDF_WITH_EXTRA_TEXTLAYER | 2 | + + +Note: + +`PDF_PLAIN_TEXT` will only keep a text layer of the OCRed text for each page. + +`PDF_WITH_EXTRA_TEXTLAYER` will add an extra invisible text layer of the OCRed text above each page. + +## `Dynamsoft.DWT.EnumDWT_PageOrientation` + +| Label | Value | +| :------------------------- | :---- | +| AUTO | -1 | +| ANGLE_0 | 0 | +| ANGLE_90 | 90 | +| ANGLE_180 | 180 | +| ANGLE_270 | 270 | + +## `Dynamsoft.DWT.EnumDWT_PageOrientationDetectionMode` + +| Label | Value | +| :------------------------- | :---- | +| FAST | 0 | +| BALANCE | 1 | +| PRECISION | 2 | + + \ No newline at end of file diff --git a/_articles/info/api/Dynamsoft_WebTwainEnv.md b/_articles/info/api/Dynamsoft_WebTwainEnv.md index 987384dd..c666acef 100644 --- a/_articles/info/api/Dynamsoft_WebTwainEnv.md +++ b/_articles/info/api/Dynamsoft_WebTwainEnv.md @@ -20,10 +20,10 @@ description: Dynamic Web TWAIN SDK Documentation API Reference Global APIs Page **Properties** -| [`Autoload`](#autoload) | [`Containers`](#containers) | [`CustomizableDisplayInfo`](#customizabledisplayinfo) | [`DeviceFriendlyName`](#devicefriendlyname) | -| [`Host`](#host) | [`IfAddMD5InUploadHeader`](#ifaddmd5inuploadheader) | [`IfConfineMaskWithinTheViewer`](#ifconfinemaskwithintheviewer) | [`JSVersion`](#jsversion) | -| [`ProductKey`](#productkey) | [`ResourcesPath`](#resourcespath) | [`ServiceInstallerLocation`](#serviceinstallerlocation) | [`UseDefaultViewer`](#usedefaultviewer) | -| [`IfCheckCORS`](#ifcheckcors) | [`IfAlwaysFocusOnPopupWindow`](#ifalwaysfocusonpopupwindow) | | | +| [`AutoLoad`](#autoload) | [`Containers`](#containers) | [`CustomizableDisplayInfo`](#customizabledisplayinfo) | [`DeviceFriendlyName`](#devicefriendlyname) | +| [`EnableLocalNetworkMixedContent`](#enablelocalnetworkmixedcontent) | [`Host`](#host) | [`IfAddMD5InUploadHeader`](#ifaddmd5inuploadheader) | [`IfConfineMaskWithinTheViewer`](#ifconfinemaskwithintheviewer) | +| [`JSVersion`](#jsversion) | [`ProductKey`](#productkey) | [`ResourcesPath`](#resourcespath) | [`ServiceInstallerLocation`](#serviceinstallerlocation) | +| [`UseDefaultViewer`](#usedefaultviewer) | [`IfCheckCORS`](#ifcheckcors) | [`IfAlwaysFocusOnPopupWindow`](#ifalwaysfocusonpopupwindow) | | **Events** @@ -805,6 +805,40 @@ DeviceFriendlyName: string; --- +## EnableLocalNetworkMixedContent + +If enabled, the library will use HTTP to communicate with the service. The host must be `localhost` or `127.0.0.1`. The default value is `false`. + +It works on FireFox and Chromium-based browsers. Internet Explorer and Safari are not supported. + +**Syntax** + +```typescript +EnableLocalNetworkMixedContent: boolean; +``` + +**Availability** + +
+ + + + + + + + + + + + + + +
H5(Windows)H5(macOS)H5(Linux)
v19.3+v19.3+v19.3+
+
+ +---- + ## Host Specify the target address for the local Dynamic Web TWAIN Service. diff --git a/_articles/info/api/WebTwain_IO.md b/_articles/info/api/WebTwain_IO.md index c2210021..689c3179 100644 --- a/_articles/info/api/WebTwain_IO.md +++ b/_articles/info/api/WebTwain_IO.md @@ -3630,6 +3630,9 @@ DWTObject.ShowFileDialog( ## Print() +> [!NOTE] +> This API has been deprecated as of release 19.3. Please use the [`PrintEX()`](#printex) function. + Export all image data in the buffer to a new browser window and use the browser's built-in print feature to print the image(s). **Syntax** @@ -3673,13 +3676,15 @@ Print selected image(s). **Syntax** ```javascript -PrintEx(indices: number[]): boolean; +PrintEx(indices: number[], settings?: PrintSettings): boolean; ``` **Parameters** `indices`: Specify the image. +`settings`: Settings for printing. Refer to [`PrintSettings`](/_articles/info/api/interfaces.md#printsettings). (Only available since v19.3.) + **Availability**
diff --git a/_articles/info/api/appendix.md b/_articles/info/api/appendix.md index 99381073..6ee5df9e 100644 --- a/_articles/info/api/appendix.md +++ b/_articles/info/api/appendix.md @@ -50,6 +50,7 @@ description: Dynamic Web TWAIN SDK Documentation API Appendix Page |-1090 | BMP format error or not supported | |-1100 | PNG format error or not supported | |-1110 | Unrecognized file extension | +|-1126 | The specified module could not be found. | |-1200 | PDF format error or not supported | |-2000 | Can not initiate the internet session | |-2001 | HTTP request error | @@ -58,9 +59,11 @@ description: Dynamic Web TWAIN SDK Documentation API Appendix Page |-2004 | FTP download file is too large | |-2007 | The system is busy, some operations are not completed. Please try later | |-2137 | Cross-Origin Resource Sharing (CORS) policy is blocking the access. Please contact the Administrator to configure 'Access-Control-Allow-Origin'.| +|-2120 | There must be at least one OCR result. \| No detection model found in local. \| No recognition model found in local. | |-2207 | The Dynamic Web TWAIN Service installed on your computer is outdated and no longer works with the JavaScript code on the website | |-2208 | The connection with the local Dynamic Web TWAIN Service encountered a problem and has been reset | |-2209 | The HTML5 (Chrome&Firefox) edition does not support this method or property | +|-2217 | Missing dependent files for OCR. | |-2300 | Http upload error: the HTTP Server cannot empty | |-2301 | Network error | |-2302 | The result format is invalid | @@ -99,6 +102,7 @@ description: Dynamic Web TWAIN SDK Documentation API Appendix Page |-2337 | The current product key does not include a license for reading DataMatrix barcode, please contact the site administrator | |-2338 | The current product key does not support Webcam, please contact the site administrator | |-2339 | The current product key does not support pdf rasterizer, please contact the site administrator | +|-2340 | The license for the module OCR Kit is not found or has expired. | |-2342 | The domain of your current site does not match the domain bound in the current product key, please contact the site administrator | |-2343 | The current product key does not support your browser, please contact the site administrator | |-2344 | The current product key does not support Windows OS, please contact the site administrator | @@ -135,6 +139,7 @@ description: Dynamic Web TWAIN SDK Documentation API Appendix Page |-2619 | Only single index selection is allowed when enumImageFormatType is set to url. | |-2621 | Dynamsoft.DWT.Containers was not set. | |-2622 | Please do not set enumImageType to "IT_MULTIPAGE_PDF", "IT_MULTIPAGE_TIF" or "IT_ALL". | +|-2701 | The OCR Kit feature is only supported on x64 versions of Windows. | |-2800 | Please make sure the Dynamic Web TWAIN Service has been installed. | |-2801 | Invalid response data was returned from the Dynamic Web TWAIN Service. | |-2802 | The file dynamsoft.webtwain.config.js timed out while loading. | @@ -185,6 +190,7 @@ description: Dynamic Web TWAIN SDK Documentation API Appendix Page |-2901 | Source document does not exist. Please check the document name or create the document before performing this operation. | |-2902 | Target document does not exist. Please check the document name or create the document before performing this operation. | |-2905 | This API is not supported on the current operating system. Please contact your system administrator. | +|-2910 | The OS print functionality is not supported on the current operating system. | |<= -3000 | See ErrorString property for details | diff --git a/_articles/info/api/index.md b/_articles/info/api/index.md index 85ad58f5..cb3c81a4 100644 --- a/_articles/info/api/index.md +++ b/_articles/info/api/index.md @@ -36,10 +36,10 @@ breadcrumbText: API Reference ### Properties -| [`Autoload`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#autoload) | [`Containers`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#containers) | [`CustomizableDisplayInfo`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#customizabledisplayinfo) | [`DeviceFriendlyName`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#devicefriendlyname) | -| [`Host`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#host) | [`IfAddMD5InUploadHeader`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#ifaddmd5inuploadheader) | [`IfConfineMaskWithinTheViewer`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#ifconfinemaskwithintheviewer) | [`JSVersion`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#jsversion) | -| [`ProductKey`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#productkey) | [`ResourcesPath`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#resourcespath) | [`ServiceInstallerLocation`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#serviceinstallerlocation) | [`UseDefaultViewer`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#usedefaultviewer) | -| [`IfCheckCORS`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#ifcheckcors) | [`IfAlwaysFocusOnPopupWindow`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#ifalwaysfocusonpopupwindow) | | +| [`AutoLoad`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#autoload) | [`Containers`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#containers) | [`CustomizableDisplayInfo`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#customizabledisplayinfo) | [`DeviceFriendlyName`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#devicefriendlyname) | +| [`EnableLocalNetworkMixedContent`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#enablelocalnetworkmixedcontent) | [`Host`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#host) | [`IfAddMD5InUploadHeader`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#ifaddmd5inuploadheader) | [`IfConfineMaskWithinTheViewer`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#ifconfinemaskwithintheviewer) | +| [`JSVersion`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#jsversion) | [`ProductKey`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#productkey) | [`ResourcesPath`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#resourcespath) | [`ServiceInstallerLocation`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#serviceinstallerlocation) | +| [`UseDefaultViewer`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#usedefaultviewer) | [`IfCheckCORS`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#ifcheckcors) | [`IfAlwaysFocusOnPopupWindow`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#ifalwaysfocusonpopupwindow) | | ### Events @@ -570,6 +570,13 @@ breadcrumbText: API Reference | [`SetPassword()`](/_articles/info/api/Addon_PDF.md#setpassword) | [`SetResolution()`](/_articles/info/api/Addon_PDF.md#setresolution) | [`Write.Setup()`](/_articles/info/api/Addon_PDF.md#writesetup) | [`GetReaderOptions()`](/_articles/info/api/Addon_PDF.md#getreaderoptions) | | [`SetReaderOptions()`](/_articles/info/api/Addon_PDF.md#setreaderoptions) | +## OCR + +### Methods + +| [`GetInstalledOCRInfo()`](/_articles/info/api/Addon_OCR.md#getinstalledocrinfo) | [`DetectPageOrientation()`](/_articles/info/api/Addon_OCR.md#detectpageorientation) | [`Recognize()`](/_articles/info/api/Addon_OCR.md#recognize) | [`SaveToPath()`](/_articles/info/api/Addon_OCR.md#savetopath) | +| [`SaveAsBase64()`](/_articles/info/api/Addon_OCR.md#saveasbase64) | [`SaveAsBlob()`](/_articles/info/api/Addon_OCR.md#saveasblob) | + +## 19.3 + +Deprecated Method: DWTObject.Print + ## 19.0 ### Global diff --git a/_articles/introduction/index.md b/_articles/introduction/index.md index ad03395a..30d20701 100644 --- a/_articles/introduction/index.md +++ b/_articles/introduction/index.md @@ -42,6 +42,7 @@ DWT add-ons provide additional features: * [Webcam add-on](/_articles/info/api/Addon_Webcam.md) to access cameras in the browser. * [Barcode Reader add-on](/_articles/info/api/Addon_BarcodeReader.md) to read barcodes in documents. * [PDF Rasterizer add-on](/_articles/info/api/Addon_PDF.md) to load external PDFs. +* [OCR add-on](/_articles/info/api/Addon_OCR.md) to extract text, correct document orientation and create searchable PDFs. ## Requirements diff --git a/_data/full_tree.yml b/_data/full_tree.yml index 9bbd7df7..2bbee6ea 100644 --- a/_data/full_tree.yml +++ b/_data/full_tree.yml @@ -72,6 +72,8 @@ tree_list: path: /extended-usage/restful-api.html - name: Barcode Recognition path: /extended-usage/barcode-processing.html + - name: OCR + path: /extended-usage/ocr.html - name: PDF Handling path: /extended-usage/pdf-processing.html - name: Buffer Caching @@ -162,6 +164,8 @@ tree_list: # path: /info/api/Addon_Camera.html - name: PDF Rasterizer path: /info/api/Addon_PDF.html + - name: OCR + path: /info/api/Addon_OCR.html - name: Webcam path: /info/api/Addon_Webcam.html - name: Enumerations diff --git a/_includes/version-list.html b/_includes/version-list.html index 800d82b5..6aaca7f3 100644 --- a/_includes/version-list.html +++ b/_includes/version-list.html @@ -1,6 +1,6 @@
    -
  • Latest Version (19.2)
  • +
  • Latest Version (19.3)
  • Version 19.0
  • Version 18.5.1
  • Version 18.4
  • diff --git a/assets/js/setLatestVersion.js b/assets/js/setLatestVersion.js index af40f3a1..6eb15b16 100644 --- a/assets/js/setLatestVersion.js +++ b/assets/js/setLatestVersion.js @@ -1,4 +1,4 @@ -var versionNoteLatestVersion = "19.2" +var versionNoteLatestVersion = "19.3" $(function() { $("#versionNoteLatestVersion").text(" (" + versionNoteLatestVersion + ")")