In vielen Branchen ist eine Dokumentenscanner-App unerlässlich, um Dokumente wie Rechnungen und Quittungen in die Cloud zu erfassen, zu bearbeiten und hochzuladen. Durch die Nutzung des Dynamsoft Document Viewer SDK können Sie einen Progressive Web App (PWA)-Dokumentenscanner erstellen, der es Benutzern ermöglicht, Bilder zu erfassen, zuzuschneiden, mehrere Seiten in einem einzigen Dokument zu kombinieren, und konvertieren Sie die gescannten Dokumente in das PDF-Format, um sie einfach weiterzugeben und zu speichern. Dieses Tutorial führt Sie durch den Prozess der Erstellung eines PWA-Dokumentenscanners mit dem Dynamsoft Document Viewer SDK.
Dynamsoft Document Viewer: Dieses Paket stellt JavaScript-APIs zum Anzeigen und Kommentieren einer Vielzahl von Dokumentformaten bereit, einschließlich PDFs und Bildern wie JPEG, PNG, TIFF und BMP. Zu den wichtigsten Funktionen gehören PDF-Rendering, Seitennavigation, Verbesserung der Bildqualität und Funktionen zum Speichern von Dokumenten. Sie finden das SDK auf npm.
Dynamsoft Capture Vision-Testlizenz: Eine 30-tägige kostenlose Testlizenz, die Zugriff auf alle Funktionen der Dynamsoft SDKs bietet.
Lassen Sie uns einen Node.js/Express-Server erstellen, um eine Base64-Zeichenfolge zu empfangen und sie als PDF-Datei auf der lokalen Festplatte zu speichern.
Erstellen Sie einen Ordner für Ihren Server:
mkdir server cd server
Node.js-Projekt initialisieren:
npm init -y
Installieren Sie Express und cors:
npm install express cors
Erklärung
Erstellen Sie eine index.js-Datei mit dem folgenden Code:
const express = require('express'); const cors = require('cors'); const fs = require('fs'); const path = require('path'); const app = express(); const PORT = 3000; app.use(cors()); app.use(express.json({ limit: '10mb' })); app.post('/upload', (req, res) => { const { image } = req.body; if (!image) { return res.status(400).json({ error: 'No image provided.' }); } const buffer = Buffer.from(image, 'base64'); // Save the image to disk const filename = `image_${Date.now()}.pdf`; const filepath = path.join(__dirname, 'uploads', filename); // Ensure the uploads directory exists if (!fs.existsSync('uploads')) { fs.mkdirSync('uploads'); } fs.writeFile(filepath, buffer, (err) => { if (err) { console.error('Failed to save image:', err); return res.status(500).json({ error: 'Failed to save image.' }); } console.log('Image saved:', filename); res.json({ message: 'Image uploaded successfully!', filename }); }); }); // Start the server app.listen(PORT, () => { console.log(`Server is running on http://localhost:${PORT}`); });
Führen Sie den Webserver aus:
node index.js
Um mit dem Dynamsoft Document Viewer zu beginnen, laden Sie den offiziellen Beispielcode aus dem GitHub-Repository herunter: https://github.com/Dynamsoft/mobile-web-capture/tree/master/samples/complete-document-capturing- Arbeitsablauf. Dieses Beispiel zeigt, wie Sie mit dem Dynamsoft Document Viewer SDK mehrere Bilder erfassen, zuschneiden und in einem einzigen Dokument kombinieren.
Basierend auf dem Projekt werden wir die folgenden Funktionen hinzufügen:
Erstellen Sie einen Ordner für Ihr PWA-Projekt:
mkdir server cd server
Kopieren Sie den Beispielcode in den Client-Ordner.
Erstellen Sie eine manifest.json-Datei im Stammverzeichnis Ihres Projekts mit folgendem Inhalt:
npm init -y
Erstellen Sie im Stammverzeichnis Ihres Projekts eine sw.js-Datei mit folgendem Inhalt:
npm install express cors
Registrieren Sie den Servicemitarbeiter in der Datei index.html:
const express = require('express'); const cors = require('cors'); const fs = require('fs'); const path = require('path'); const app = express(); const PORT = 3000; app.use(cors()); app.use(express.json({ limit: '10mb' })); app.post('/upload', (req, res) => { const { image } = req.body; if (!image) { return res.status(400).json({ error: 'No image provided.' }); } const buffer = Buffer.from(image, 'base64'); // Save the image to disk const filename = `image_${Date.now()}.pdf`; const filepath = path.join(__dirname, 'uploads', filename); // Ensure the uploads directory exists if (!fs.existsSync('uploads')) { fs.mkdirSync('uploads'); } fs.writeFile(filepath, buffer, (err) => { if (err) { console.error('Failed to save image:', err); return res.status(500).json({ error: 'Failed to save image.' }); } console.log('Image saved:', filename); res.json({ message: 'Image uploaded successfully!', filename }); }); }); // Start the server app.listen(PORT, () => { console.log(`Server is running on http://localhost:${PORT}`); });
Fügen Sie in uiConfig.js eine benutzerdefinierte Download-Schaltfläche mit einem Klickereignis namens „save:“ hinzu.
node index.js
Implementieren Sie in index.html das Speicherereignis. Nachdem Sie das Dokument als PDF gespeichert haben, konvertieren Sie das Blob in eine Base64-Zeichenfolge und laden Sie es auf den Server hoch:
mkdir client cd client
Starten Sie einen Webserver im Stammverzeichnis Ihres Projekts:
{ "short_name": "MyPWA", "name": "My Progressive Web App", "icons": [ { "src": "icon.png", "sizes": "192x192", "type": "image/png" } ], "start_url": "/", "display": "standalone", "background_color": "#ffffff", "theme_color": "#000000" }
Besuchen Sie http://localhost:8000 in Ihrem Webbrowser.
https://github.com/yushulx/web-twain-document-scan-management/tree/main/examples/pwa
Das obige ist der detaillierte Inhalt vonSo erstellen Sie einen PWA-Dokumentenscanner: Erfassen, bearbeiten und als PDF hochladen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!