Spaces:
Sleeping
Sleeping
File size: 11,025 Bytes
49412e8 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 | import fs from 'fs';
import path from 'path';
import { fileURLToPath } from 'url';
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
// --- CONFIG ---
const PUBLIC_DIR = path.join(__dirname, 'public');
const SEO_ROUTES = [
{
path: 'compress-pdf-without-losing-quality',
title: 'Compress PDF Under 100KB (Free, No Login) – PDFBazaar',
desc: 'Reduce PDF size instantly without losing quality. Exact 100KB compression for SSC/UPSC forms. No login, 100% free tool.',
h1: 'Compress PDF Under 100KB (Free & No Login)',
faq: [
{ q: 'How to reduce PDF size below 100KB?', a: 'Upload your file and set the Target Size to 100KB. Our engine will compress it precisely for government form uploads.' },
{ q: 'Is it safe to use PDFBazaar?', a: 'Yes. We use advanced browser-side compression, meaning your data stays private and is deleted instantly after processing.' }
]
},
{
path: 'merge-pdf-online-free',
title: 'Merge PDF Online Free (No Login) – Combine Unlimited Files',
desc: 'Merge multiple PDF files into one in seconds. 100% safe, free, and works on mobile/desktop. No registration required.',
h1: 'Merge PDF Online (Unlimited, Safe, Free)',
faq: [
{ q: 'How to merge multiple PDFs into one?', a: 'Simply drag and drop your files into our merger tool, reorder them as needed, and click Merge. You can then download the single combined file.' },
{ q: 'Can I merge scanned documents?', a: 'Yes! Our tool supports all PDF types, including scanned documents from your mobile or scanner.' }
]
},
{
path: 'image-to-pdf-converter',
title: 'Image to PDF Converter: Photos to High Quality PDF Online',
desc: 'Convert JPG, PNG, and photos to high-quality PDF files instantly. Best for students, job applications, and document proofs.',
h1: 'Convert Photo to PDF Online (High Quality)',
faq: [
{ q: 'How to convert gallery photos to PDF?', a: 'Select your images from your phone, click convert, and our engine will create a clean, professional PDF from your photos.' },
{ q: 'Is there a limit on the number of photos?', a: 'No, you can batch convert as many photos as you need into a single PDF document.' }
]
},
{
path: 'pdf-to-word-converter',
title: 'PDF to Word Converter: Editable DOCX from PDF (Free)',
desc: 'Convert any PDF into an editable Microsoft Word document. Our AI preserves your layout, fonts, and images perfectly.',
h1: 'PDF to Word Converter (Editable & Accurate)',
faq: [
{ q: 'Can I edit the converted Word file?', a: 'Yes! The output is a standard .docx file that you can open and edit in Microsoft Word, Google Docs, or Kingsoft Office.' }
]
},
{
path: 'split-pdf-online-free',
title: 'Split PDF Online Free: Extract Pages from PDF (No Login)',
desc: 'Split large PDF files into smaller parts or extract specific pages for free. Fastest PDF splitter online, no registration required.',
h1: 'Split PDF Online (Safe, Free & Fast)',
faq: [
{ q: 'How to split a PDF into separate pages?', a: 'Upload your file, enter the page range you want to extract (e.g., 1-5), and click Split. You can then download your new document.' }
]
},
{
path: 'pdf-to-jpg-converter',
title: 'PDF to JPG Converter: High Quality Images from PDF (Free)',
desc: 'Convert PDF pages into high-resolution JPG images. Perfect for sharing on social media or using as document proofs.',
h1: 'Convert PDF to JPG Online (High Quality)',
faq: [
{ q: 'Can I convert all pages of a PDF to JPG?', a: 'Yes, our tool converts every page into a separate image and provides them in a single ZIP file for easy download.' }
]
},
{
path: 'add-watermark-to-pdf',
title: 'Add Watermark to PDF: Secure Your Documents Online',
desc: 'Add custom text watermarks to your PDF files to protect your work. 100% free, secure, and works in your browser.',
h1: 'Add Custom Watermark to PDF (Secure & Free)',
faq: [
{ q: 'Can I customize the watermark text?', a: 'Yes, you can enter any text like "Confidential" or "Draft" and it will be stamped across every page of your PDF.' }
]
},
{
path: 'ocr-pdf-searchable-text',
title: 'OCR PDF Online: Make Scanned PDF Searchable (Free AI)',
desc: 'Use AI-powered OCR to convert scanned PDFs into searchable text documents. Copy text and search within your scanned files easily.',
h1: 'OCR PDF Online (Convert Scanned to Searchable)',
faq: [
{ q: 'Will it recognize handwritten text?', a: 'Our OCR engine is optimized for printed text. Handwritten recognition may vary depending on the clarity of the scan.' }
]
},
{
path: 'word-to-pdf-converter',
title: 'Word to PDF Converter: DOCX to PDF Online (Professional)',
desc: 'Convert Word documents to high-quality PDF files. Preserves your original fonts, tables, and layout perfectly for professional sharing.',
h1: 'Word to PDF Converter (Fast & High Quality)',
faq: [
{ q: 'Is it free to convert Word to PDF?', a: 'Yes! PDFBazaar allows unlimited Word to PDF conversions without any hidden charges or watermarks.' }
]
},
{
path: 'excel-to-pdf-converter',
title: 'Excel to PDF Converter: XLSX Spreadsheets to PDF Online',
desc: 'Convert Excel files to polished PDF documents. Maintain your data integrity and formatting for easy reporting and printing.',
h1: 'Excel to PDF Online (Accurate & Free)',
faq: [
{ q: 'Will it support multiple sheets?', a: 'Yes, our converter automatically renders all sheets in your Excel workbook into a single PDF document.' }
]
},
{
path: 'ppt-to-pdf-converter',
title: 'PPT to PDF Converter: PowerPoint Slides to PDF Online',
desc: 'Convert PowerPoint presentations to PDF format for easy viewing on any device. High quality slides with no font issues.',
h1: 'PowerPoint to PDF Online (Professional Slides)',
faq: [
{ q: 'Can I open the gallery on any phone?', a: 'Yes, our web-based tool works perfectly on Android, iPhone, and tablets.' }
]
},
{
path: 'delete-pdf-pages-online',
title: 'Delete PDF Pages Online: Remove Blank or Unwanted Pages',
desc: 'Remove specific pages from your PDF documents instantly. Clean up your files and reduce size for free, no account needed.',
h1: 'Delete PDF Pages (Instant & Free)',
faq: [
{ q: 'How to delete specific pages from a PDF?', a: 'Upload your file, enter the page numbers you want to remove, and click Delete. Your cleaned file will be ready in seconds.' }
]
},
{
path: 'unlock-pdf-password-remover',
title: 'Unlock PDF Password Remover: Permanent Decryption (Free)',
desc: 'Remove passwords from Aadhaar cards, bank statements, and secured PDFs permanently. Secure browser-side decryption.',
h1: 'Unlock PDF Online (Remove Passwords Safely)',
faq: [
{ q: 'Is it safe to unlock my bank statement here?', a: 'Yes! We use browser-side processing, so your password and file never leave your computer.' }
]
},
{
path: 'protect-pdf-with-password',
title: 'Protect PDF with Password: 256-bit AES Encryption (Free)',
desc: 'Secure your PDF files with military-grade encryption. Add passwords to sensitive documents for safe sharing and privacy.',
h1: 'Protect PDF Online (Secure Encryption)',
faq: [
{ q: 'What encryption level do you use?', a: 'We use industry-standard 256-bit AES encryption to ensure your documents are practically unhackable.' }
]
}
];
const TEMPLATE = `<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>{{TITLE}}</title>
<meta name="description" content="{{DESC}}" />
<link rel="canonical" href="https://pdfbazaar.com/{{PATH}}/" />
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap" rel="stylesheet">
<style>
:root { --primary: #1321d4; }
body { font-family: 'Inter', sans-serif; line-height: 1.6; color: #333; max-width: 800px; margin: 40px auto; padding: 20px; }
h1 { color: var(--primary); border-bottom: 2px solid #eee; padding-bottom: 15px; }
.faq-item { margin-bottom: 20px; padding: 15px; background: #f9f9f9; border-radius: 8px; }
.nav-brand { font-weight: 800; font-size: 28px; color: var(--primary); display: flex; align-items: center; gap: 8px; text-decoration: none; }
</style>
</head>
<body>
<div id="root">
<header>
<a href="/" class="nav-brand">PDFBazaar</a>
<h1>{{H1}}</h1>
</header>
<section>
<p>Welcome to <strong>PDFBazaar.com</strong> - India's most trusted tool for document productivity. All our tools are 100% free, private, and require no registration.</p>
<p>Our processing engine is currently loading... (React Hybrid Mode)</p>
<hr/>
</section>
<section>
<h2>Frequently Asked Questions (FAQ)</h2>
{{FAQ}}
</section>
<section>
<p><a href="https://pdfbazaar.com/">View All PDF Tools</a> | <a href="https://pdfbazaar.com/blog">Read Our Tutorials</a></p>
</section>
</div>
<script type="module" src="/src/main.jsx" defer></script>
</body>
</html>`;
function prerender() {
console.log('--- STARTING ENHANCED PRERENDER GENERATOR ---');
SEO_ROUTES.forEach(route => {
const dir = path.join(PUBLIC_DIR, route.path);
if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });
const faqHtml = (route.faq || []).map(f => `
<div class="faq-item">
<div class="faq-q">Question: ${f.q}</div>
<div class="faq-a">${f.a}</div>
</div>
`).join('');
const html = TEMPLATE
.replace(/{{TITLE}}/g, route.title)
.replace(/{{DESC}}/g, route.desc)
.replace(/{{H1}}/g, route.h1)
.replace(/{{FAQ}}/g, faqHtml)
.replace(/{{PATH}}/g, route.path);
fs.writeFileSync(path.join(dir, 'index.html'), html);
console.log(`[PRERENDER] Generated: /${route.path}/index.html`);
});
console.log('--- ENHANCED PRERENDER COMPLETE! ---');
}
prerender();
|