Convert text to PDF with your page layout

Paste text, choose a page layout and download a PDF ready to share. Set the paper size, margins and page numbers before checking the finished file.

Create a PDF from text

Create files in your browser Ready
01

Write content

0 words
03

Choose an output format

tai-lieu.docxCheck the file after downloading.

Create a PDF from text in three steps

01

Paste text and preview

Add a document title if you want to name the file. Start a line with #, ## or ### for a heading, or - and 1. for lists. Review the content in the preview.

Choose a layout for the PDF you need

When Settings to try Check after download
You need portrait pages for reading or printingChoose A4 or Letter for the paper you will use, Portrait and Normal margins.Open the PDF and check that content stays clear of the edges.
You want wider linesTry Landscape; choose Narrow margins if you need more room.Review line width and the final page before sharing.
The document has more pages than expectedReduce font size or line spacing slightly, then recreate it.Compare the actual page count and text readability.

This PDF places its document text as an image to preserve the page appearance, so you cannot select or search the body text. If you need to keep editing, use Text to Word.

If the PDF differs from what you expected

A page breaks in an awkward place
Open the downloaded file to find the break; adjust margins, font size or spacing, then recreate it. Do not rely on the preview page estimate.
The document title appears twice
If you already added the title to the text with #, turn off “Include document title” before recreating the PDF.
The PDF will not generate or download
Enter a title or some text. If the file library cannot load, check your connection and retry; split very long text into smaller parts.

Your draft on this device

Your text and settings are saved in this browser when allowed and shared with the document generator and Word pages. Choose “Clear” on a shared device; keep the downloaded file because clearing browser data can remove the draft.

Comments & feedback

Rate this tool

Loading ratings…

Write a commentNo account needed

Do not share passwords, sensitive information or the contents of files you are processing.

Reviewed before posting. Email stays private.

Embed this tool on your websiteFree · Copy once, receive tool updates automatically

Paste the iframe into HTML, WordPress or any platform that supports embeds. The tool runs in the visitor’s browser; adjust its height and theme as needed.

View the embed guide and supported platforms →

<div style="max-width:900px">
  <iframe data-kitotool-embed src="https://kitotool.com/embed/en/text-to-pdf/" title="Text to PDF — KitoTool" width="100%" height="1200" style="display:block;width:100%;border:1px solid #dbe3ee;border-radius:12px" loading="lazy" referrerpolicy="strict-origin-when-cross-origin"></iframe>
  <p style="margin:6px 2px 0;text-align:right;font:12px/1.5 system-ui,sans-serif;color:#64748b">Free tool by <a href="https://kitotool.com/en/text-to-pdf/" target="_blank" rel="nofollow noopener noreferrer" style="color:#2359d4;text-decoration:underline">KitoTool</a></p>
</div>

The code includes a visible credit below the iframe; its link uses nofollow for a widely distributed widget.

Optional: automatically resize the iframe

Add this script once to the page containing the iframe.

<script>
(function(){var origin="https://kitotool.com";function frames(){return document.querySelectorAll("iframe[data-kitotool-embed]")}function measure(f){if(f.contentWindow&&new URL(f.src).origin===origin)f.contentWindow.postMessage({type:"kitotool:measure"},origin)}window.addEventListener("message",function(e){if(e.origin!==origin||!e.data||e.data.type!=="kitotool:resize"||!Number.isFinite(e.data.height))return;frames().forEach(function(f){if(f.contentWindow===e.source&&new URL(f.src).origin===origin)f.style.height=Math.max(320,Math.min(12000,Math.ceil(e.data.height)))+"px";});});function connect(){frames().forEach(function(f){f.addEventListener("load",function(){measure(f)});measure(f)})}if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",connect,{once:true});else connect()})();
</script>