Files
bentopdf/src/pages/txt-to-pdf.html
alam00000 88260c26ab Refactor color input fields and enhance watermark functionality
- Updated color input fields in various HTML pages to remove unnecessary classes for improved styling consistency.
- Modified the watermark node to include options for positioning and flattening watermarks.
- Enhanced the addTextWatermark function to support customizable positioning and page selection for watermarks.
- Added new controls for text and image watermarks in the UI, allowing users to specify text, font size, color, opacity, angle, and image scaling.
- Updated the WASM provider to use the latest version of pymupdf-wasm.
2026-02-26 19:40:22 +05:30

599 lines
22 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!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" data-i18n="tools.backToTools">
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>
<!-- 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" data-i18n="upload.clickToSelect"
>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>
<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>
</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" />
</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>
</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>
<button id="process-btn" class="btn-gradient w-full mt-6">
Create PDF
</button>
</div>
</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>
</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"
data-i18n="howItWorks.title"
>
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" data-i18n="howItWorks.step1">
Click or drag and drop your file to begin
</p>
</div>
</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" data-i18n="howItWorks.step2">
Click the process button to start
</p>
</div>
</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" data-i18n="howItWorks.step3">
Save your processed file instantly
</p>
</div>
</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"
data-i18n="relatedTools.title"
>
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>
</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"
data-i18n="faq.sectionTitle"
>
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">
{
"@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"
}
}
</script>
<script type="application/ld+json">
{
"@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"
}
]
}
</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>