Merge, split, compress, convert, OCR, and edit PDFs with ease. Professional-grade tools, simple to use, right in your browser.
Drop PDF, PNG, JPG files here or click to browse
Professional PDF tools for every need. Fast, secure, and easy to use.
Three simple steps to process your PDFs.
Select or drag & drop your PDF files. Your documents are processed securely.
Choose your desired operation. Our tools work fast with professional-grade accuracy.
Get your processed files instantly. Files are automatically deleted after processing.
Professional features for individuals and businesses.
Process PDFs in seconds with our optimized algorithms and infrastructure.
Your files are encrypted and automatically deleted after processing.
Many operations run directly in your browser for maximum privacy.
Powerful server processing for complex operations when needed.
Works directly in your browser. No software to download or install.
Maintain formatting and quality with our advanced conversion engine.
Extract text from scanned documents with industry-leading accuracy.
Works perfectly on smartphones and tablets. Process PDFs anywhere.
Basic operations available offline for quick tasks.
Integrate PDF processing into your applications with our API.
Easy on the eyes with beautiful dark mode support.
Generous free tier with most features available at no cost.
Learn more about our mission and technology.
We believe PDF tools should be powerful, accessible, and secure. PDF Toolkit combines the best of ILovePDF, Adobe, and SmallPDF into one comprehensive platform that respects your privacy and delivers professional results.
Built with modern web technologies, PDF Toolkit leverages both client-side processing for privacy and cloud infrastructure for power. Our hybrid approach means simple operations happen instantly in your browser, while complex tasks are handled by our optimized servers.
Your documents are your business. We process files securely, encrypt all transfers, and automatically delete files after processing. Many operations run entirely in your browser, meaning your files never leave your device.
We believe everyone should have access to professional PDF tools. Our free tier is supported by our Pro users, who get additional features, higher limits, and priority support. But our core mission remains: making PDF tools accessible to all.
We're constantly improving PDF Toolkit with new features, better performance, and enhanced security. Upcoming features include advanced batch processing, team collaboration tools, cloud storage integration, and AI-powered document analysis.
Join thousands of satisfied users worldwide.
"PDF Toolkit has completely replaced all other PDF tools for me. It's fast, reliable, and the privacy-first approach gives me peace of mind when handling sensitive documents."
"As a developer, I love the API integration. The documentation is clear, and the endpoints are fast and reliable. We've processed millions of PDFs without issues."
"The OCR accuracy is outstanding. I digitize old documents regularly, and PDF Toolkit's OCR feature saves me hours compared to other tools I've tried."
"Simple, powerful, and free for basic use. Perfect for my small business. The merge and split tools alone are worth it, but having all tools in one place is fantastic."
Integrate PDF processing into your applications.
// Request presigned upload URL
const response = await fetch('/files/presign', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
filename: 'document.pdf',
contentType: 'application/pdf'
})
});
const { uploadUrl, fileId } = await response.json();
// Merge multiple PDFs
const mergeResponse = await fetch('/api/merge', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_API_KEY'
},
body: JSON.stringify({
files: [fileId1, fileId2, fileId3],
outputFilename: 'merged.pdf'
})
});
const { jobId } = await mergeResponse.json();
// Poll for job completion
const checkStatus = async (jobId) => {
const response = await fetch(`/jobs/${jobId}`, {
headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
});
const job = await response.json();
if (job.status === 'completed') {
return job.resultUrl;
} else if (job.status === 'failed') {
throw new Error(job.error);
}
// Poll again after delay
await new Promise(r => setTimeout(r, 1000));
return checkStatus(jobId);
};