Image to Text Converter | Free Live Demo
Instantly extract editable text from images with our free online OCR demo powered by Tesseract.js. Upload photos and convert them to text in seconds.
Suggested:
Create a secure PDF Password Maker using HTML, CSS, and JavaScript with PDF.co API. Add user and owner passwords, AES128 encryption, drag & drop upload, and instant download. Learn how to build this modern, responsive web app with easy-to-follow code examples.
Table of contents [Show]
A web-based tool that allows users to:
✅ Drag & Drop Upload
✅ AES128 PDF Encryption
✅ User and Owner Password Protection
✅ PDF.co API Integration for Cloud Security
✅ Responsive UI with Modern Design
✅ Instant Download Link
index.html<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>PDF Password Maker</title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<div class="container">
<h1>🔐 PDF Password Maker</h1>
<form id="pdfForm">
<div class="drop-zone" id="dropZone">
<p>📁 Drag & Drop PDF or <label for="fileInput" class="browse-btn">Browse</label></p>
<input type="file" id="fileInput" accept="application/pdf" hidden />
</div>
<input type="password" id="userPassword" placeholder="User Password" required />
<input type="password" id="ownerPassword" placeholder="Owner Password" required />
<button type="submit">Protect PDF</button>
</form>
<div id="downloadSection" style="display: none;">
<p>✅ PDF protected! <a id="downloadLink" href="#" download>Download here</a></p>
</div>
</div>
<script src="script.js"></script>
</body>
</html>
style.cssbody {
font-family: Arial, sans-serif;
background: #f0f4f8;
display: flex;
justify-content: center;
padding: 40px;
}
.container {
background: white;
padding: 30px;
border-radius: 16px;
box-shadow: 0 8px 24px rgba(0,0,0,0.1);
width: 100%;
max-width: 500px;
text-align: center;
}
h1 {
margin-bottom: 20px;
}
.drop-zone {
border: 2px dashed #ccc;
padding: 30px;
border-radius: 12px;
margin-bottom: 20px;
background-color: #fafafa;
cursor: pointer;
}
.browse-btn {
color: #007bff;
cursor: pointer;
text-decoration: underline;
}
input[type="password"] {
width: 100%;
padding: 12px;
margin: 10px 0;
border-radius: 8px;
border: 1px solid #ccc;
}
button {
background-color: #007bff;
color: white;
border: none;
padding: 12px 20px;
border-radius: 8px;
cursor: pointer;
}
button:hover {
background-color: #0056b3;
}
script.jsconst form = document.getElementById('pdfForm');
const fileInput = document.getElementById('fileInput');
const dropZone = document.getElementById('dropZone');
const downloadSection = document.getElementById('downloadSection');
const downloadLink = document.getElementById('downloadLink');
let selectedFile = null;
// Drag & drop events
dropZone.addEventListener('click', () => fileInput.click());
dropZone.addEventListener('dragover', (e) => {
e.preventDefault();
dropZone.style.borderColor = "#007bff";
});
dropZone.addEventListener('dragleave', () => {
dropZone.style.borderColor = "#ccc";
});
dropZone.addEventListener('drop', (e) => {
e.preventDefault();
dropZone.style.borderColor = "#ccc";
selectedFile = e.dataTransfer.files[0];
});
// Browse file input
fileInput.addEventListener('change', () => {
selectedFile = fileInput.files[0];
});
form.addEventListener('submit', async (e) => {
e.preventDefault();
if (!selectedFile) {
alert("Please upload a PDF file.");
return;
}
const userPassword = document.getElementById('userPassword').value;
const ownerPassword = document.getElementById('ownerPassword').value;
const apiKey = 'YOUR_PDFCO_API_KEY_HERE';
const formData = new FormData();
formData.append('name', selectedFile.name);
formData.append('file', selectedFile);
formData.append('ownerPassword', ownerPassword);
formData.append('userPassword', userPassword);
formData.append('encryptionAlgorithm', 'AES128');
try {
const response = await fetch('https://api.pdf.co/v1/pdf/security/add', {
method: 'POST',
headers: {
'x-api-key': apiKey
},
body: formData
});
const data = await response.json();
if (data.error) {
alert('Error: ' + data.message);
} else {
downloadSection.style.display = 'block';
downloadLink.href = data.url;
}
} catch (err) {
console.error(err);
alert("Something went wrong. Check console for more info.");
}
});'YOUR_PDFCO_API_KEY_HERE' with your actual API key.
AES128 is a trusted industry-standard encryption method. It's strong enough for most use cases, providing reliable protection without significantly increasing file size or processing time.
PDF.co ensures:
This project is a perfect example of how modern web technologies can create secure, user-friendly tools. By combining HTML, CSS, JavaScript, and cloud APIs, you can offer real-world functionality with minimal effort.
Start protecting your PDFs today — build it, host it, and help users stay safe!
Instantly extract editable text from images with our free online OCR demo powered by Tesseract.js. Upload photos and convert them to text in seconds.
Learn how to create a client-side PDF to Image Converter using HTML, CSS, and JavaScript. Supports PNG, JPEG, WebP, DPI control, grayscale, batch processing, page ranges, and more.
Learn how to create a powerful, interactive code playground using HTML, CSS, and JavaScript. Includes real-time preview, console logging, and local storage.