Converter EPUB em PDF
O EPUB é ótimo no leitor digital, mas péssimo para imprimir ou abrir em tela grande sem programa dedicado. Converter EPUB em PDF congela o livro em páginas fixas: dá para ler em qualquer aparelho, imprimir os capítulos que interessam e marcar trechos com a ferramenta que você já usa.
Rode online
Rode nos nossos servidores com a sua conta. As ferramentas grátis rodam no seu navegador; esta aqui é descontada do seu saldo do KIT pelo preço acima.
Texto que flui virando página que fica parada
O EPUB não tem páginas: o texto flui e se reorganiza conforme a tela e o tamanho da letra — por isso o “número de páginas” muda de aparelho para aparelho. Na conversão, esse fluxo é paginado de uma vez em formato fixo. Consequência honesta: a contagem de páginas do PDF não vai bater com a que seu leitor mostrava, e não há como bater. O conteúdo, capítulos e imagens saem completos e na ordem.
Quando o PDF ganha do e-book
Estudo sério pede papel e caneta para muita gente: apostilas de concurso, materiais de curso e manuais técnicos rendem mais impressos ou anotados em tela grande. O PDF também resolve o problema do compartilhamento de trecho — mandar o capítulo 4 para o grupo de estudos — e o do arquivamento: um PDF aberto hoje abre igual daqui a dez anos, sem depender de aplicativo de leitura específico.
DRM, beta e o que já está definido
Dois avisos francos. Primeiro: livros protegidos por DRM não podem ser convertidos — a proteção impede a leitura do arquivo, e não a contornamos; a conversão serve para EPUBs livres, seus ou de distribuição aberta. Segundo: a capacidade está em beta e em fase de implantação, ainda sem aceitar execuções. O preço já é público: US$ 0,052 por chamada mais US$ 0,003 por página gerada, com limites de 25 MB e 200 páginas.
Casos de uso
Apostila de concurso impressa para estudar
Um concurseiro de Porto Alegre compra a apostila em EPUB sem DRM e converte para PDF. Imprime os capítulos de direito administrativo, grifa no papel e leva para revisar no ônibus — método que tela nenhuma substitui para ele.
Capítulo distribuído em sala de aula
Uma professora universitária converte o e-book de distribuição aberta usado na disciplina e disponibiliza o PDF do capítulo da semana na plataforma da turma, com as páginas fixas que ela cita em aula: “abram na página 87”.
Autor independente entregando dois formatos
Um autor que vende o próprio e-book gera, além do EPUB, a versão PDF paginada. Parte dos leitores prefere assim — para ler no computador do trabalho ou imprimir — e a conversão de cada edição custa centavos.
Manual técnico anotado no tablet
Um técnico de manutenção converte o manual do equipamento, publicado em EPUB pelo fabricante, e o anota no aplicativo de PDF do tablet — riscos, setas e marcadores que o leitor de e-book não oferece.
Perguntas frequentes
O total de páginas do PDF bate com o do meu leitor de e-book?
Não vai bater, e é esperado: o EPUB não tem páginas fixas — cada aparelho pagina de um jeito. O PDF cria uma paginação própria, estável a partir daí.
Consigo converter um livro comprado com DRM?
Não. A proteção DRM bloqueia a leitura do arquivo e não é contornada aqui. A conversão atende EPUBs sem proteção: obras próprias, de domínio público ou de distribuição livre.
Capa, imagens e sumário do e-book aparecem no PDF?
Sim — capa, ilustrações e a estrutura de capítulos saem no documento final, na ordem original do livro.
Um livro que rende 150 páginas custa quanto para converter?
US$ 0,052 + 150 × US$ 0,003 = US$ 0,502. Cobrado por uso, em dólar; converter uma biblioteca pessoal inteira segue sendo questão de poucos dólares.
O e-book enviado fica em posse de vocês?
Fica apenas o tempo de processar e de você baixar o PDF; depois é apagado, sem cópia retida. Prática de tratamento de dados alinhada à LGPD.
Quando as execuções abrem?
A capacidade está em beta e em implantação — ainda não aceita chamadas. O preço e os limites publicados aqui já são os que valerão na abertura.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/doc/epub-to-pdf \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/doc/epub-to-pdf", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/doc/epub-to-pdf",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/doc/epub-to-pdf", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/doc/epub-to-pdf", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"input": "…"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "doc.epub_to_pdf",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_mb | 25 |
max_pages | 200 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
413 | input_too_large | A entrada passou do tamanho máximo desta tarefa. Confira os limites publicados. |