国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ホームページ ウェブフロントエンド jsチュートリアル HTMLnd JavaScript を使用してドキュメントを検出して PDF に保存する方法

HTMLnd JavaScript を使用してドキュメントを検出して PDF に保存する方法

Dec 19, 2024 am 11:30 AM

領(lǐng)収書(shū)、請(qǐng)求書(shū)、契約書(shū)などの文書(shū)を PDF ファイルとして取り込んで保存することは、多くの企業(yè)にとって共通の要件です。この記事では、Dynamsoft Document Viewer で構(gòu)築された Web ドキュメント エディタ プロジェクトを強(qiáng)化し、ドキュメントを検出して PDF として保存する機(jī)能を追加します。ドキュメント検出機(jī)能は Dynamsoft Capture Vision を利用しています。

デモビデオ: ドキュメントを検出して PDF に保存

オンラインデモ

https://yushulx.me/web-document-annotation/

前提條件

  • Dynamsoft Capture Vision 試用ライセンス: 30 日間の無(wú)料試用ライセンスを取得して、Dynamsoft 製品の全機(jī)能を利用可能にします。

  • Dynamsoft Document Viewer: この JavaScript SDK により、PDF、JPEG、PNG、 のシームレスな表示が可能になります。 TIFF および BMPファイル。 PDF 注釈のレンダリングと保存機(jī)能も備えています。ここからダウンロードします: https://www.npmjs.com/package/dynamsoft-document-viewer.

  • Dynamsoft Capture Vision Bundle: この JavaScript SDK は、ドキュメント検出、トリミング、および畫(huà)像拡張機(jī)能を提供します。ここからダウンロードします: https://www.npmjs.com/package/dynamsoft-capture-vision-bundle.

HTML5 および JavaScript でのドキュメントの検出および修正機(jī)能の実裝

以下のセクションでは、HTML5 と JavaScript を使用したドキュメントの検出と修正機(jī)能の実裝について説明します。ソース コードを既にダウンロードしている場(chǎng)合は、ステップ 2 に進(jìn)んでください。

ステップ 1: ソース コードを取得する

  1. GitHub リポジトリからソース コードのクローンを作成します:

    git clone https://github.com/yushulx/web-twain-document-scan-management.git
    
  2. document_annotation ディレクトリに移動(dòng)します:

    cd web-twain-document-scan-management/examples/document_annotation
    
  3. Visual Studio Code でプロジェクトを開(kāi)きます。

ステップ 2: ドキュメント検出ボタンを追加する

  1. main.css で、ドキュメント検出ボタンのマテリアル アイコンを追加します。

    .icon-document_scanner::before {
        content: "crop_free";
    }
    
    .icon-document_scanner {
        display: flex;
        font-size: 1.5em;
    }
    
    

    How to Detect and Save Documents to PDF with HTMLnd JavaScript

  2. ドキュメント検出ボタンを定義し、main.js のツールバーに追加します。

    const documentButton = {
        type: Dynamsoft.DDV.Elements.Button,
        className: "material-icons icon-document_scanner",
        tooltip: "Detect document",
        events: {
            click: "detectDocument",
        }
    }
    
    const pcEditViewerUiConfig = {
        type: Dynamsoft.DDV.Elements.Layout,
        flexDirection: "column",
        className: "ddv-edit-viewer-desktop",
        children: [
            {
                type: Dynamsoft.DDV.Elements.Layout,
                className: "ddv-edit-viewer-header-desktop",
                children: [
                    {
                        type: Dynamsoft.DDV.Elements.Layout,
                        children: [
                            Dynamsoft.DDV.Elements.ThumbnailSwitch,
                            Dynamsoft.DDV.Elements.Zoom,
                            Dynamsoft.DDV.Elements.FitMode,
                            Dynamsoft.DDV.Elements.Crop,
                            Dynamsoft.DDV.Elements.Filter,
                            Dynamsoft.DDV.Elements.Undo,
                            Dynamsoft.DDV.Elements.Redo,
                            Dynamsoft.DDV.Elements.DeleteCurrent,
                            Dynamsoft.DDV.Elements.DeleteAll,
                            Dynamsoft.DDV.Elements.Pan,
                            Dynamsoft.DDV.Elements.AnnotationSet,
                            qrButton,
                            checkButton,
                            scanButton,
                            clearButton,
                            signatureButton,
                            documentButton,
                        ],
                    },
                    {
                        type: Dynamsoft.DDV.Elements.Layout,
                        children: [
                            {
                                type: Dynamsoft.DDV.Elements.Pagination,
                                className: "ddv-edit-viewer-pagination-desktop",
                            },
                            loadButton,
                            downloadButton,
                        ],
                    },
                ],
            },
            Dynamsoft.DDV.Elements.MainView,
        ],
    };
    
  3. ドキュメント検出ボタンのクリック イベント ハンドラーを追加します:

    editViewer.on("detectDocument", detectDocument);
    
    async function detectDocument() {
        ...
    }
    

ステップ 3: ドキュメントの検出と正規(guī)化のためのポップアップ ダイアログを作成する

ドキュメントの検出と正規(guī)化のポップアップ ダイアログには、検出、正規(guī)化、および キャンセルの 3 つのボタンが含まれています。

  • 検出: ドキュメントの境界を検出します。
  • 正規(guī)化: ドキュメントを正規(guī)化します。
  • キャンセル: ダイアログを閉じます。

HTML コード

git clone https://github.com/yushulx/web-twain-document-scan-management.git

ステップ 4: ドキュメントのコーナーポイントを編集し、ドキュメントを修正する

  1. 編集ビューアでドキュメントを検出し、4 隅の點(diǎn)に基づいて輪郭を描畫(huà)します。

    cd web-twain-document-scan-management/examples/document_annotation
    
  2. ドキュメント畫(huà)像を正規(guī)化します:

    .icon-document_scanner::before {
        content: "crop_free";
    }
    
    .icon-document_scanner {
        display: flex;
        font-size: 1.5em;
    }
    
    

    How to Detect and Save Documents to PDF with HTMLnd JavaScript

ソースコード

https://github.com/yushulx/web-twain-document-scan-management/tree/main/examples/document_annotation

以上がHTMLnd JavaScript を使用してドキュメントを検出して PDF に保存する方法の詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國(guó)語(yǔ) Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見(jiàn)つけた場(chǎng)合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫(huà)像を無(wú)料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫(xiě)真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫(xiě)真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類(lèi)リムーバー

Video Face Swap

Video Face Swap

完全無(wú)料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無(wú)料のコードエディター

SublimeText3 中國(guó)語(yǔ)版

SublimeText3 中國(guó)語(yǔ)版

中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開(kāi)発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開(kāi)発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JavaScript vs. Java:どの言語(yǔ)を?qū)Wぶべきですか? JavaScript vs. Java:どの言語(yǔ)を?qū)Wぶべきですか? Jun 10, 2025 am 12:05 AM

JavaScriptisidealforwebdevelopment,whileJavasuitslarge-scaleapplicationsandAndroiddevelopment.1)JavaScriptexcelsincreatinginteractivewebexperiencesandfull-stackdevelopmentwithNode.js.2)Javaisrobustforenterprisesoftwareandbackendsystems,offeringstrong

JavaScriptで使用するコメントシンボル:明確な説明 JavaScriptで使用するコメントシンボル:明確な説明 Jun 12, 2025 am 10:27 AM

JavaScriptでは、シングルラインコメント(//)またはマルチラインコメント(//)を選択することは、コメントの目的とプロジェクトの要件に依存します。 2。詳細(xì)なドキュメントには、マルチラインコメントを使用します。 3。コメントスタイルの一貫性を維持します。 4。過(guò)剰な承認(rèn)を避けます。 5.コメントがコードと同期して更新されていることを確認(rèn)してください。適切な注釈スタイルを選択すると、コードの読みやすさと保守性を向上させることができます。

JavaScriptの究極のガイドコメント:コードの明確さを強(qiáng)化します JavaScriptの究極のガイドコメント:コードの明確さを強(qiáng)化します Jun 11, 2025 am 12:04 AM

はい、javascriptcommentsは不必要に使用されています。

JavaScriptコメント:短い説明 JavaScriptコメント:短い説明 Jun 19, 2025 am 12:40 AM

JavaScriptcommentsEareEssentialential-formaining、およびGuidingCodeexecution.1)single-linecommentseared forquickexplanations.2)多LinecommentsexplaincomplexlogiCorprovidededocumentation.3)clarifyspartsofcode.bestpractic

Java vs. JavaScript:混亂を解消します Java vs. JavaScript:混亂を解消します Jun 20, 2025 am 12:27 AM

JavaとJavaScriptは異なるプログラミング言語(yǔ)であり、それぞれ異なるアプリケーションシナリオに適しています。 Javaは大規(guī)模なエンタープライズおよびモバイルアプリケーション開(kāi)発に使用されますが、JavaScriptは主にWebページ開(kāi)発に使用されます。

JavaScriptのマスターコメント:包括的なガイド JavaScriptのマスターコメント:包括的なガイド Jun 14, 2025 am 12:11 AM

ContureCrucialInjavascript formantaining andFosteringCollaboration.1)TheypindeBugging、Onboarding、およびUnderstandingCodeevolution.2)usesingle-linecomments for quickexplanations andmulti-linecomments fordeTeTaileddespransions.3)BestPractsinclud

JavaScriptデータ型:ディープダイビング JavaScriptデータ型:ディープダイビング Jun 13, 2025 am 12:10 AM

javascripthasseveralprimitivedatypes:number、string、boolean、undefined、null、symbol、andbigint、andnon-primitiveTypeslike objectandarray

JavaScript vs. Java:開(kāi)発者向けの包括的な比較 JavaScript vs. Java:開(kāi)発者向けの包括的な比較 Jun 20, 2025 am 12:21 AM

javascriptispreferredforwebdevelopment、whilejavaisbetterforlge-scalebackendsystemsandroidapps.1)javascriptexcelsininintingtivewebexperiences withitsdynAmicnature anddommanipulation.2)javaofferstruntypyping-dobject-reientedpeatures

See all articles