Files
bentopdf/src/pages/markdown-to-pdf.html
T
2026-09-04 16:26:08 +05:30

421 lines
15 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<!-- Primary Meta Tags -->
<meta
name="title"
content="Markdown to PDF Online Free - Markdown to PDF Tool | BentoPDF"
/>
<meta
name="description"
content="Write or paste Markdown and export it as a beautifully formatted PDF. Free, no uploads, no signup. Runs entirely in your browser."
/>
<meta name="keywords" content="markdown 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/markdown-to-pdf" />
<!-- Open Graph / Facebook / LinkedIn -->
<meta property="og:type" content="website" />
<meta
property="og:url"
content="https://www.bentopdf.com/markdown-to-pdf"
/>
<meta
property="og:title"
content="Markdown to PDF Online Free - Markdown to PDF Tool | BentoPDF"
/>
<meta
property="og:description"
content="Write or paste Markdown and export it as a beautifully formatted PDF. Free, no uploads, no signup. Runs entirely in your browser."
/>
<meta
property="og:image"
content="https://www.bentopdf.com/images/og-markdown-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/markdown-to-pdf"
/>
<meta name="twitter:title" content="Markdown to PDF Free" />
<meta
name="twitter:description"
content="Write or paste Markdown and export it as a beautifully formatted PDF. Free, no uploads, no signup. Runs entirely in your browser."
/>
<meta
name="twitter:image"
content="https://www.bentopdf.com/images/twitter-markdown-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="Markdown to PDF" />
<title>Markdown to PDF - BentoPDF</title>
<link href="/src/css/styles.css" rel="stylesheet" />
<link href="/src/css/markdown-editor.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 class="min-h-screen py-8 px-4">
<div class="max-w-7xl mx-auto">
<div
class="bg-gray-800 rounded-xl shadow-xl p-6 border border-gray-700"
>
<button
id="back-to-tools"
class="flex items-center gap-2 text-indigo-300 hover:text-indigo-400 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:markdownToPdf.name"
>
Markdown to PDF
</h1>
<p
class="text-gray-400 mb-6"
data-i18n="tools:markdownToPdf.subtitle"
>
Write or paste Markdown and export it as a beautifully formatted
PDF.
</p>
<!-- Editor container -->
<div id="markdown-editor-container"></div>
</div>
</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="faq-list">
<details class="faq-d">
<summary class="faq-d-q">
How do I convert a Markdown file to PDF?
<i data-lucide="plus" class="faq-d-icon"></i>
</summary>
<p class="faq-d-a">
Click Upload and pick a .md, .markdown, or .txt file, or paste the
text into the left pane, and the rendered preview appears on the
right. Click Export PDF or press Ctrl+S (Cmd+S on a Mac), then
choose Save as PDF as the destination in the print dialog that
opens.
</p>
</details>
<details class="faq-d">
<summary class="faq-d-q">
Can I change the page size or margins of the PDF?
<i data-lucide="plus" class="faq-d-icon"></i>
</summary>
<p class="faq-d-a">
Set those in the print dialog: choose Letter, A4, or another paper
size, adjust the margins, and lower the scale if a wide table gets
cut off. Turn off Headers and footers there too if you don't want
the date and URL printed on each page.
</p>
</details>
<details class="faq-d">
<summary class="faq-d-q">
Does it support code blocks, tables, and diagrams?
<i data-lucide="plus" class="faq-d-icon"></i>
</summary>
<p class="faq-d-a">
Fenced code blocks get syntax highlighting for JavaScript,
TypeScript, Python, Go, Rust, Java, C#, C++, SQL, Bash, YAML, JSON,
HTML, and CSS, and standard pipe tables render as tables. Mermaid
code blocks are drawn as flowcharts, sequence diagrams, and other
chart types in both the preview and the PDF.
</p>
</details>
<details class="faq-d">
<summary class="faq-d-q">
Which Markdown extensions work beyond the basics?
<i data-lucide="plus" class="faq-d-icon"></i>
</summary>
<p class="faq-d-a">
Task lists, footnotes, definition lists, abbreviations, subscript
and superscript, ==highlight== and ++insert++ marks, emoji
shortcodes like :smile:, and automatic linking of bare URLs. The
settings dialog has switches for raw HTML, line breaks, autolinking,
and typographic quotes.
</p>
</details>
<details class="faq-d">
<summary class="faq-d-q">
Does the dark theme affect the exported PDF?
<i data-lucide="plus" class="faq-d-icon"></i>
</summary>
<p class="faq-d-a">
No. The theme toggle only changes the editor colors on screen; the
print stylesheet forces a white background and dark text, so the PDF
looks the same either way.
</p>
</details>
<details class="faq-d">
<summary class="faq-d-q">
Can I add a table of contents to the PDF?
<i data-lucide="plus" class="faq-d-icon"></i>
</summary>
<p class="faq-d-a">
Put ${toc} on its own line where you want it and a table of contents
is generated from your headings when the document renders. Headings
also get anchor IDs, so in-document links to a heading work in the
preview.
</p>
</details>
<details class="faq-d">
<summary class="faq-d-q">
Can I include images in the PDF?
<i data-lucide="plus" class="faq-d-icon"></i>
</summary>
<p class="faq-d-a">
Use standard Markdown image syntax with a full image URL or a data
URI and the image renders in the preview and prints into the PDF.
Relative paths to files on your disk won't load, because the editor
has no access to your local folders.
</p>
</details>
<details class="faq-d">
<summary class="faq-d-q">
Is my Markdown text uploaded to a server to make the PDF?
<i data-lucide="plus" class="faq-d-icon"></i>
</summary>
<p class="faq-d-a">
No. The Markdown is rendered to HTML by markdown-it in your browser
and the PDF is created by the browser's print function, so neither
the text nor the finished PDF touches a server. Notes, drafts, and
internal docs stay on your machine.
</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/js/logic/markdown-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": "Markdown to PDF - BentoPDF",
"applicationCategory": "PDF Tool",
"operatingSystem": "Any - Web Browser",
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "USD"
}
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "HowTo",
"name": "How to markdown to pdf online",
"description": "Learn how to markdown 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": "Markdown to PDF",
"item": "https://www.bentopdf.com/markdown-to-pdf"
}
]
}
</script>
</body>
</html>