Files
bentopdf/src/pages/txt-to-pdf.html

587 lines
21 KiB
HTML
Raw Normal View History

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<!-- Primary Meta Tags -->
<title>Txt To Pdf Online Free - Txt To Pdf Tool | BentoPDF</title>
<meta
name="title"
content="Txt To Pdf Online Free - Txt To Pdf Tool | BentoPDF"
/>
<meta
name="description"
content="★ Txt To Pdf online free - Txt to pdf PDFs easily ★ No signup ★ Unlimited files ★ Privacy-first ★ Works in browser ★ Fast & secure"
/>
<meta name="keywords" content="txt to pdf, txt to pdf, online pdf" />
<meta name="author" content="BentoPDF" />
<meta
name="robots"
content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1"
/>
<!-- Canonical URL -->
<link rel="canonical" href="https://www.bentopdf.com/txt-to-pdf.html" />
<!-- Open Graph / Facebook / LinkedIn -->
<meta property="og:type" content="website" />
<meta property="og:url" content="https://www.bentopdf.com/txt-to-pdf" />
<meta
property="og:title"
content="Txt To Pdf Online Free - Txt To Pdf Tool | BentoPDF"
/>
<meta
property="og:description"
content="★ Txt To Pdf online free - Txt to pdf PDFs easily ★ No signup ★ Unlimited files ★ Privacy-first ★ Works in browser ★ Fast & secure"
/>
<meta
property="og:image"
content="https://www.bentopdf.com/images/og-txt-to-pdf.png"
/>
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:site_name" content="BentoPDF" />
<!-- Twitter Card -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:url" content="https://www.bentopdf.com/txt-to-pdf" />
<meta name="twitter:title" content="Txt To Pdf Free" />
<meta
name="twitter:description"
content="★ Txt To Pdf online free - Txt to pdf PDFs easily ★ No signup ★ Unlimited files ★ Privacy-first ★ Works in browser ★ Fas"
/>
<meta
name="twitter:image"
content="https://www.bentopdf.com/images/twitter-txt-to-pdf.png"
/>
<meta name="twitter:site" content="@BentoPDF" />
<!-- Mobile Web App -->
<meta name="mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-title" content="Txt To Pdf" />
<title>Text to PDF - BentoPDF</title>
<meta
name="description"
content="Convert text files or typed text to PDF format with custom formatting. Free, secure, and runs entirely in your browser."
/>
<link href="/src/css/styles.css" rel="stylesheet" />
<!-- Web App Manifest -->
<link rel="manifest" href="/site.webmanifest" />
<!-- Favicons -->
<link rel="icon" type="image/svg+xml" href="/images/favicon.svg" />
<link
rel="icon"
type="image/png"
sizes="192x192"
href="/images/favicon-192x192.png"
/>
<link
rel="icon"
type="image/png"
sizes="512x512"
href="/images/favicon-512x512.png"
/>
<link
rel="apple-touch-icon"
sizes="180x180"
href="/images/apple-touch-icon.png"
/>
<link rel="icon" href="/favicon.ico" sizes="32x32" />
</head>
<body class="antialiased bg-gray-900">
{{> navbar }}
<div
id="uploader"
class="min-h-screen flex flex-col items-center justify-start py-12 p-4 bg-gray-900"
>
<div
id="tool-uploader"
class="bg-gray-800 rounded-xl shadow-xl px-4 py-8 md:p-8 max-w-2xl w-full text-gray-200 border border-gray-700"
>
<button
id="back-to-tools"
class="flex items-center gap-2 text-indigo-400 hover:text-indigo-300 mb-6 font-semibold"
>
<i data-lucide="arrow-left" class="cursor-pointer"></i
><span class="cursor-pointer"> Back to Tools </span>
</button>
<h1
class="text-2xl font-bold text-white mb-2"
data-i18n="tools:textToPdf.name"
>
Txt To Pdf Converter Free Online - Convert Files Fast
</h1>
<p class="text-gray-400 mb-6" data-i18n="tools:textToPdf.subtitle">
Upload one or more text files, or type/paste text below to convert to
PDF with custom formatting.
</p>
<!-- Mode Toggle -->
<div class="mb-4">
<div
class="flex gap-2 p-1 rounded-lg bg-gray-900 border border-gray-700 mb-4"
>
<button
id="txt-mode-upload-btn"
class="flex-1 btn bg-indigo-600 text-white font-semibold py-2 rounded-md"
>
Upload Files
</button>
<button
id="txt-mode-text-btn"
class="flex-1 btn bg-gray-700 text-gray-300 font-semibold py-2 rounded-md"
>
Type Text
</button>
</div>
2026-01-02 21:33:06 +05:30
<!-- Upload Panel -->
<div id="txt-upload-panel">
<div
id="drop-zone"
class="relative flex flex-col items-center justify-center w-full h-48 md:h-64 border-2 border-dashed border-gray-600 rounded-xl cursor-pointer bg-gray-900 hover:bg-gray-700 transition-colors duration-300"
>
<div class="flex flex-col items-center justify-center pt-5 pb-6">
<i
data-lucide="upload-cloud"
class="w-10 h-10 mb-3 text-gray-400"
></i>
<p class="mb-2 text-sm text-gray-400">
<span class="font-semibold">Click to select file(s)</span>
<span data-i18n="upload.orDragAndDrop">or drag and drop</span>
</p>
<p class="text-xs text-gray-500">Text files (.txt)</p>
<p
class="text-xs text-gray-500"
data-i18n="upload.filesNeverLeave"
>
Your files never leave your device.
</p>
</div>
<input
id="file-input"
type="file"
class="absolute top-0 left-0 w-full h-full opacity-0 cursor-pointer"
multiple
accept="text/plain,.txt"
/>
</div>
2026-01-02 21:33:06 +05:30
<div id="file-controls" class="hidden mt-4 flex gap-3">
<button
id="add-more-btn"
class="btn bg-indigo-600 hover:bg-indigo-700 text-white font-semibold px-4 py-2 rounded-lg flex items-center gap-2"
>
<i data-lucide="plus"></i>
<span data-i18n="upload.addMore">Add More Files</span>
</button>
<button
id="clear-files-btn"
class="btn bg-gray-700 hover:bg-gray-600 text-white font-semibold px-4 py-2 rounded-lg flex items-center gap-2"
>
<i data-lucide="trash-2"></i>
<span data-i18n="upload.clearAll">Clear All</span>
</button>
</div>
<div id="file-display-area" class="mt-4 space-y-2"></div>
2026-01-02 21:33:06 +05:30
</div>
<!-- Type Text Panel -->
<div id="txt-text-panel" class="hidden">
<textarea
id="text-input"
rows="12"
class="w-full bg-gray-900 border border-gray-600 text-gray-300 rounded-lg p-2.5 font-sans"
placeholder="Start typing here..."
></textarea>
</div>
</div>
<!-- Formatting Options -->
<div class="mt-6 grid grid-cols-2 md:grid-cols-4 gap-4">
<div>
<label
for="font-family"
class="block mb-2 text-sm font-medium text-gray-300"
>Font Family</label
>
<select
id="font-family"
class="w-full bg-gray-700 border border-gray-600 text-white rounded-lg p-2.5"
>
<option value="helv" selected>Helvetica (Sans-serif)</option>
<option value="tiro">Tiro (Serif)</option>
<option value="cour">Courier (Monospace)</option>
<option value="times">Times (Serif)</option>
</select>
</div>
<div>
<label
for="font-size"
class="block mb-2 text-sm font-medium text-gray-300"
>Font Size</label
>
<input
type="number"
id="font-size"
value="12"
min="6"
max="72"
class="w-full bg-gray-700 border border-gray-600 text-white rounded-lg p-2.5"
/>
</div>
<div>
<label
for="text-color"
class="block mb-2 text-sm font-medium text-gray-300"
>Text Color</label
>
<input
type="color"
id="text-color"
value="#000000"
class="w-full h-[42px] bg-gray-700 border border-gray-600 rounded-lg p-1 cursor-pointer"
/>
</div>
<div>
<label
for="page-size"
class="block mb-2 text-sm font-medium text-gray-300"
>Page Size</label
>
<select
id="page-size"
class="w-full bg-gray-700 border border-gray-600 text-white rounded-lg p-2.5"
>
<optgroup label="ISO A Series">
<option value="A0">A0 (841 × 1189 mm)</option>
<option value="A1">A1 (594 × 841 mm)</option>
<option value="A2">A2 (420 × 594 mm)</option>
<option value="A3">A3 (297 × 420 mm)</option>
<option value="A4" selected>A4 (210 × 297 mm)</option>
<option value="A5">A5 (148 × 210 mm)</option>
<option value="A6">A6 (105 × 148 mm)</option>
<option value="A7">A7 (74 × 105 mm)</option>
<option value="A8">A8 (52 × 74 mm)</option>
<option value="A9">A9 (37 × 52 mm)</option>
<option value="A10">A10 (26 × 37 mm)</option>
</optgroup>
<optgroup label="ISO B Series">
<option value="B0">B0 (1000 × 1414 mm)</option>
<option value="B1">B1 (707 × 1000 mm)</option>
<option value="B2">B2 (500 × 707 mm)</option>
<option value="B3">B3 (353 × 500 mm)</option>
<option value="B4">B4 (250 × 353 mm)</option>
<option value="B5">B5 (176 × 250 mm)</option>
<option value="B6">B6 (125 × 176 mm)</option>
<option value="B7">B7 (88 × 125 mm)</option>
<option value="B8">B8 (62 × 88 mm)</option>
<option value="B9">B9 (44 × 62 mm)</option>
<option value="B10">B10 (31 × 44 mm)</option>
</optgroup>
<optgroup label="ISO C Series (Envelopes)">
<option value="C0">C0 (917 × 1297 mm)</option>
<option value="C1">C1 (648 × 917 mm)</option>
<option value="C2">C2 (458 × 648 mm)</option>
<option value="C3">C3 (324 × 458 mm)</option>
<option value="C4">C4 (229 × 324 mm)</option>
<option value="C5">C5 (162 × 229 mm)</option>
<option value="C6">C6 (114 × 162 mm)</option>
<option value="C7">C7 (81 × 114 mm)</option>
<option value="C8">C8 (57 × 81 mm)</option>
<option value="C9">C9 (40 × 57 mm)</option>
<option value="C10">C10 (28 × 40 mm)</option>
</optgroup>
<optgroup label="North American">
<option value="Letter">Letter (8.5 × 11 in)</option>
<option value="Legal">Legal (8.5 × 14 in)</option>
<option value="Tabloid">Tabloid (11 × 17 in)</option>
<option value="Ledger">Ledger (17 × 11 in)</option>
<option value="11x17">11×17 (11 × 17 in)</option>
</optgroup>
</select>
</div>
2026-01-02 21:33:06 +05:30
</div>
<p class="text-xs text-gray-500 mt-3">
<i data-lucide="info" class="inline w-3 h-3"></i>
RTL languages (Arabic, Urdu, Persian, etc.) are automatically detected
and text direction is adjusted.
</p>
2026-01-02 21:33:06 +05:30
<button id="process-btn" class="btn-gradient w-full mt-6">
Create PDF
</button>
</div>
2026-01-02 21:33:06 +05:30
</div>
<div
id="loader-modal"
class="hidden fixed inset-0 bg-black bg-opacity-75 flex items-center justify-center z-50"
>
<div
class="bg-gray-800 p-8 rounded-lg flex flex-col items-center gap-4 border border-gray-700 shadow-xl"
>
<div class="solid-spinner"></div>
<p
id="loader-text"
class="text-white text-lg font-medium"
data-i18n="loader.processing"
data-i18n="loader.processing"
>
Processing...
</p>
</div>
2026-01-02 21:33:06 +05:30
</div>
<div
id="alert-modal"
class="fixed inset-0 bg-gray-900 bg-opacity-90 flex items-center justify-center z-50 hidden"
>
<div
class="bg-gray-800 rounded-lg shadow-xl p-6 max-w-sm w-full border border-gray-700"
>
<h3
id="alert-title"
class="text-xl font-bold text-white mb-2"
data-i18n="alert.title"
data-i18n="alert.title"
>
Alert
</h3>
<p id="alert-message" class="text-gray-300 mb-6"></p>
<button
id="alert-ok"
class="w-full bg-indigo-600 hover:bg-indigo-700 text-white font-semibold py-2 px-4 rounded-lg transition-colors duration-200"
data-i18n="alert.ok"
data-i18n="alert.ok"
>
OK
</button>
</div>
</div>
<!-- How It Works Section -->
<section class="max-w-4xl mx-auto px-4 py-12">
<h2 class="text-2xl md:text-3xl font-bold text-white mb-8 text-center">
How It Works
</h2>
<div class="space-y-6">
<div class="flex items-start gap-4">
<div
class="flex-shrink-0 w-10 h-10 bg-indigo-600 rounded-full flex items-center justify-center text-white font-bold"
>
1
</div>
<div class="flex-1">
<h3 class="text-lg font-semibold text-white mb-1">Upload File</h3>
<p class="text-gray-400">
Click or drag and drop your file to begin
</p>
</div>
2025-12-30 12:36:30 +05:30
</div>
<div class="flex items-start gap-4">
<div
class="flex-shrink-0 w-10 h-10 bg-indigo-600 rounded-full flex items-center justify-center text-white font-bold"
>
2
</div>
<div class="flex-1">
<h3 class="text-lg font-semibold text-white mb-1">Process</h3>
<p class="text-gray-400">Click the process button to start</p>
</div>
2026-01-02 21:33:06 +05:30
</div>
<div class="flex items-start gap-4">
<div
class="flex-shrink-0 w-10 h-10 bg-indigo-600 rounded-full flex items-center justify-center text-white font-bold"
>
3
</div>
<div class="flex-1">
<h3 class="text-lg font-semibold text-white mb-1">Download</h3>
<p class="text-gray-400">Save your processed file instantly</p>
</div>
2026-01-02 21:33:06 +05:30
</div>
</div>
</section>
<!-- Related Tools Section -->
<section class="max-w-6xl mx-auto px-4 py-12">
<h2 class="text-2xl md:text-3xl font-bold text-white mb-6 text-center">
Related PDF Tools
</h2>
<div class="grid grid-cols-2 md:grid-cols-3 lg:grid-cols-6 gap-4">
<a
href="merge-pdf.html"
class="block bg-gray-800 p-4 rounded-lg hover:bg-gray-700 transition-colors border border-gray-700"
>
<h3 class="text-white font-semibold mb-1">Merge Pdf</h3>
<p class="text-gray-400 text-sm">Free online merge pdf tool</p>
</a>
<a
href="compress-pdf.html"
class="block bg-gray-800 p-4 rounded-lg hover:bg-gray-700 transition-colors border border-gray-700"
>
<h3 class="text-white font-semibold mb-1">Compress Pdf</h3>
<p class="text-gray-400 text-sm">Free online compress pdf tool</p>
</a>
<a
href="split-pdf.html"
class="block bg-gray-800 p-4 rounded-lg hover:bg-gray-700 transition-colors border border-gray-700"
>
<h3 class="text-white font-semibold mb-1">Split Pdf</h3>
<p class="text-gray-400 text-sm">Free online split pdf tool</p>
</a>
<a
href="edit-pdf.html"
class="block bg-gray-800 p-4 rounded-lg hover:bg-gray-700 transition-colors border border-gray-700"
>
<h3 class="text-white font-semibold mb-1">Edit Pdf</h3>
<p class="text-gray-400 text-sm">Free online edit pdf tool</p>
</a>
<a
href="rotate-pdf.html"
class="block bg-gray-800 p-4 rounded-lg hover:bg-gray-700 transition-colors border border-gray-700"
>
<h3 class="text-white font-semibold mb-1">Rotate Pdf</h3>
<p class="text-gray-400 text-sm">Free online rotate pdf tool</p>
</a>
2026-01-02 21:33:06 +05:30
</div>
</section>
<!-- FAQ Section -->
<section class="max-w-4xl mx-auto px-4 py-12">
<h2 class="text-2xl md:text-3xl font-bold text-white mb-6 text-center">
Frequently Asked Questions
</h2>
<div class="space-y-4">
<details class="bg-gray-800 p-5 rounded-lg border border-gray-700">
<summary
class="cursor-pointer font-semibold text-white flex items-center justify-between"
>
Is txt to pdf really free?
<i data-lucide="chevron-down" class="w-5 h-5"></i>
</summary>
<p class="mt-3 text-gray-400">
Yes! BentoPDF is 100% free with no hidden fees, no signup required,
and unlimited file processing.
</p>
</details>
<details class="bg-gray-800 p-5 rounded-lg border border-gray-700">
<summary
class="cursor-pointer font-semibold text-white flex items-center justify-between"
>
Are my files private and secure?
<i data-lucide="chevron-down" class="w-5 h-5"></i>
</summary>
<p class="mt-3 text-gray-400">
Absolutely! All processing happens in your browser. Your files never
leave your device, ensuring complete privacy.
</p>
</details>
<details class="bg-gray-800 p-5 rounded-lg border border-gray-700">
<summary
class="cursor-pointer font-semibold text-white flex items-center justify-between"
>
Is there a file size limit?
<i data-lucide="chevron-down" class="w-5 h-5"></i>
</summary>
<p class="mt-3 text-gray-400">
No! Process files of any size, as many times as you want, completely
free.
</p>
</details>
</div>
</section>
{{> footer }}
<script type="module" src="/src/js/utils/lucide-init.ts"></script>
<script type="module" src="/src/js/utils/full-width.ts"></script>
<script type="module" src="/src/js/utils/simple-mode-footer.ts"></script>
<script type="module" src="/src/version.ts"></script>
<script type="module" src="/src/js/logic/txt-to-pdf-page.ts"></script>
<script type="module" src="/src/js/mobileMenu.ts"></script>
<script type="module" src="/src/js/main.ts"></script>
<!-- JSON-LD Structured Data -->
<script type="application/ld+json">
2025-12-30 12:36:30 +05:30
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "Txt To Pdf - BentoPDF",
"applicationCategory": "PDF Tool",
"operatingSystem": "Any - Web Browser",
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "USD"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.9",
"ratingCount": "2303"
}
2025-12-30 12:36:30 +05:30
}
</script>
2026-01-02 21:33:06 +05:30
<script type="application/ld+json">
2025-12-30 12:36:30 +05:30
{
"@context": "https://schema.org",
"@type": "HowTo",
"name": "How to txt to pdf online",
"description": "Learn how to txt to pdf using BentoPDF",
"step": [
{
"@type": "HowToStep",
"position": 1,
"name": "Upload File",
"text": "Click or drag and drop your file"
},
{
"@type": "HowToStep",
"position": 2,
"name": "Process",
"text": "Click the process button"
},
{
"@type": "HowToStep",
"position": 3,
"name": "Download",
"text": "Download your processed file"
}
]
2025-12-30 12:36:30 +05:30
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://www.bentopdf.com"
},
{
"@type": "ListItem",
"position": 2,
"name": "Txt To Pdf",
"item": "https://www.bentopdf.com/txt-to-pdf"
}
]
}
</script>
</body>
</html>