Como criar arquivos PDF com texto e imagens em Python
Na era digital em que vivemos, a necessidade de gerar documentos PDF com conteúdo dinâmico, incluindo texto e imagens, é uma exigência comum. Python é uma linguagem de programação popular que facilita a automatização de processos rotineiros, economizando tempo e energia. Ter uma biblioteca versátil para criar arquivos PDF com texto e imagens em Python pode ser muito útil para a geração automática de relatórios, recibos ou faturas. IronPDF , uma biblioteca Python versátil, simplifica o processo de criação de PDFs com conteúdo rico.
Neste artigo, exploraremos como usar o IronPDF para gerar PDFs que incluam texto e imagens em um projeto Python.
Como criar arquivos PDF com texto e imagens em Python
- Instale a biblioteca IronPDF for Python.
- Instanciar ChromePdfRenderer
- Adicionar conteúdo de texto
- Adicionar imagem como dados binários
- Crie uma string HTML com texto e imagens.
- Renderizar HTML para PDF usando RenderHtmlAsPdf
- Salve o arquivo PDF usando o método Salvar como
Introdução ao IronPDF
IronPDF é uma biblioteca Python rica em recursos que fornece aos desenvolvedores ferramentas poderosas para criar , manipular e processar documentos PDF. Com o IronPDF, você pode facilmente incorporar texto, imagens, tabelas e outros elementos em seus PDFs, tornando-o um recurso valioso para uma ampla gama de aplicações, desde a geração de relatórios até a criação de documentos.

Principais funcionalidades do IronPDF:
- Fácil integração: o IronPDF integra-se perfeitamente com os ambientes de desenvolvimento Python mais populares, tornando-o acessível a desenvolvedores que utilizam ferramentas como o PyCharm.
- Suporte a texto formatado: Suporta formatação de texto avançada, permitindo que os desenvolvedores criem documentos PDF visualmente atraentes com facilidade.
- Manipulação de imagens: O IronPDF permite a inclusão de imagens em PDFs, proporcionando flexibilidade no design e na personalização de documentos.
- Compatibilidade entre plataformas: O IronPDF funciona em diferentes plataformas, garantindo que os PDFs gerados possam ser visualizados e utilizados de forma consistente.
Pré-requisitos
Antes de começar a criar documentos PDF com o IronPDF, certifique-se de que você possui os seguintes pré-requisitos:
- Python instalado: O Python precisa estar instalado no seu computador. Você pode baixar e instalar a versão mais recente no site oficial do Python ( https://www.python.org/ ).
- IDE PyCharm: Utilize o PyCharm ou qualquer outra IDE Python de sua preferência. O PyCharm é um ambiente de desenvolvimento integrado popular que oferece um espaço de trabalho confortável para o desenvolvimento em Python.
- IronPDF: Biblioteca IronPDF baixada daqui ou instalada usando o PIP (Gerenciador de Pacotes Python). O ambiente de execução Microsoft .NET também é necessário para usar com sucesso as funcionalidades do IronPDF . Usuários de Linux, Mac e Windows podem baixar a versão .NET 6.0 através deste link.
Criar projeto Python no PyCharm
Após cumprir os pré-requisitos, abra o PyCharm e crie um novo projeto em Python. Configure um ambiente virtual para o seu projeto para gerenciar as dependências de forma eficaz.
- Clique em Arquivo > Novo Projeto .
- Na janela "Novo Projeto":
- Insira um nome para o seu projeto no campo "Localização".
- Escolha o local onde deseja salvar os arquivos do seu projeto.
- Em "Interpretador do Projeto", selecione o interpretador Python. Ele detectará automaticamente o interpretador Python se você tiver o Python instalado.
-
Escolha o tipo de projeto. Para um projeto simples em Python, você pode manter as configurações padrão.
![Como criar arquivos PDF com texto e imagens em Python: Figura 2 - Abra o PyCharm IDE. Vá ao menu Arquivo - clique em Novo Projeto.] Insira o nome e a localização do seu projeto Python. Em seguida, selecione o interpretador Python em "Interpretador do Projeto". Clique no botão "Criar" para criar o projeto. Depois de criar o projeto Python, abra um novo arquivo Python e use-o para escrever o código para gerar arquivos PDF usando o IronPDF.
- Clique em Criar para criar o projeto.
- Abra um novo arquivo Python e salve-o para escrever o código que irá gerar arquivos PDF usando a biblioteca Python - IronPDF .
Instale o IronPDF for Python usando o PIP.
Para instalar o IronPDF, utilize o seguinte comando PIP no terminal ou prompt de comando do seu projeto:
pip install ironpdf
Este comando fará o download e a instalação automáticos da biblioteca IronPDF , juntamente com suas dependências.

Criando um PDF simples com texto e imagens.
Vamos percorrer os passos para criar um documento PDF de página única que inclua texto e imagem usando o IronPDF:
Passo 1: Importar IronPDF
Nesta etapa, importamos todos os módulos necessários do IronPDF. Importamos o ChromePdfRenderer para renderizar PDFs e o base64 para codificar dados de imagem.
from ironpdf import ChromePdfRenderer
import base64
from ironpdf import ChromePdfRenderer
import base64
Etapa 2: Instanciar ChromePdfRenderer
Aqui, criaremos uma instância do ChromePdfRenderer , que será usada para renderizar o conteúdo HTML em um PDF.
# Instantiate Renderer
renderer = ChromePdfRenderer()
# Instantiate Renderer
renderer = ChromePdfRenderer()
Etapa 3: Adicionar conteúdo de texto
Nesta etapa, definiremos uma string HTML ( html_content ) que inclui a estrutura do documento HTML, incluindo o cabeçalho, o corpo e uma seção com conteúdo de texto que será posteriormente convertida em um único arquivo PDF. O estilo CSS é usado para posicionar o texto e a imagem.
# HTML String with Text
html_content = """
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>PDF Generation Example</title>
<style>
body {
margin: 0; /* Remove default margin */
padding: 20px; /* Add padding for better visibility */
position: relative; /* Set the body as a relative position */
}
header {
text-align: center;
}
section {
margin-top: 20px; /* Add margin to separate sections */
}
img {
position: absolute;
top: 20px; /* Adjust the top position */
right: 20px; /* Adjust the right position */
}
</style>
</head>
<body>
<header>
<h1>PDF Generation Example</h1>
</header>
<section id="contentSection">
<h2>Text and Image in PDF</h2>
<p>This PDF includes both text and an embedded image:</p>
<p>IronPDF developed by Ironsoftware is a great PDF creating library for .NET, Python, JAVA, Node.JS.</p>
"""
# HTML String with Text
html_content = """
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>PDF Generation Example</title>
<style>
body {
margin: 0; /* Remove default margin */
padding: 20px; /* Add padding for better visibility */
position: relative; /* Set the body as a relative position */
}
header {
text-align: center;
}
section {
margin-top: 20px; /* Add margin to separate sections */
}
img {
position: absolute;
top: 20px; /* Adjust the top position */
right: 20px; /* Adjust the right position */
}
</style>
</head>
<body>
<header>
<h1>PDF Generation Example</h1>
</header>
<section id="contentSection">
<h2>Text and Image in PDF</h2>
<p>This PDF includes both text and an embedded image:</p>
<p>IronPDF developed by Ironsoftware is a great PDF creating library for .NET, Python, JAVA, Node.JS.</p>
"""
Passo 4: Adicionar Imagem
Aqui, vamos abrir e ler um arquivo de imagem ( ironpdf-logo.png ) em modo binário, convertê-lo em um URI de dados codificado em base64 e incorporá-lo na string HTML. A imagem é então posicionada usando estilos CSS para aparecer no canto superior direito.
# Read image and convert to base64 string
with open("ironpdf-logo.png", "rb") as f:
pngBinaryData = f.read()
imgDataUri = "data:image/png;base64," + base64.b64encode(pngBinaryData).decode("utf-8")
imgHtml = f"""
<img src='{imgDataUri}' width=100px height=100px
alt="IronPDF Logo">
</section>
</body>
</html>
"""
# Read image and convert to base64 string
with open("ironpdf-logo.png", "rb") as f:
pngBinaryData = f.read()
imgDataUri = "data:image/png;base64," + base64.b64encode(pngBinaryData).decode("utf-8")
imgHtml = f"""
<img src='{imgDataUri}' width=100px height=100px
alt="IronPDF Logo">
</section>
</body>
</html>
"""
Passo 5: Unir as strings HTML de texto e imagem
Esta etapa concatena as strings HTML de texto e imagem para criar o conteúdo HTML completo ( full_html_content ) que será renderizado em um arquivo PDF de saída.
full_html_content = html_content + imgHtml
full_html_content = html_content + imgHtml
Etapa 6: Renderizar o conteúdo HTML como arquivo PDF
Aqui, o método RenderHtmlAsPdf é usado para converter o HTML em PDF usando o ChromePdfRenderer .
# Create a PDF from the HTML string
pdf = renderer.RenderHtmlAsPdf(full_html_content)
# Create a PDF from the HTML string
pdf = renderer.RenderHtmlAsPdf(full_html_content)
Passo 7: Salvar arquivo PDF
Por fim, o PDF resultante é salvo como "output_with_text_and_image_top_right.pdf". Este arquivo conterá o texto formatado e a imagem incorporada, posicionada no canto superior direito.
# Save the PDF to a file
pdf.SaveAs("output_with_text_and_image_top_right.pdf")
# Save the PDF to a file
pdf.SaveAs("output_with_text_and_image_top_right.pdf")
Documento PDF de saída
Após a execução do programa, o arquivo PDF resultante é o seguinte:

Da mesma forma, é possível adicionar facilmente várias páginas a um arquivo PDF.
Uso avançado: Personalizando o posicionamento de texto e imagem
O IronPDF oferece recursos adicionais para ajustar o posicionamento e o estilo de texto e imagens no PDF usando um arquivo CSS/ JavaScript externo. O caminho base pode ser enviado como um argumento opcional para o método RenderHtmlAsPdf, conforme demonstrado no código a seguir:
# Advanced Example with HTML Assets
# Load external HTML assets: Images, CSS, and JavaScript.
# An optional BasePath 'C:\site\assets\' is set as the file location to load assets from.
myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", r"C:\site\assets")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
# Advanced Example with HTML Assets
# Load external HTML assets: Images, CSS, and JavaScript.
# An optional BasePath 'C:\site\assets\' is set as the file location to load assets from.
myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", r"C:\site\assets")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
Neste exemplo de código avançado, estamos aprofundando o conceito de incorporação de imagens por meio de fontes externas. O conteúdo HTML dentro do método RenderHtmlAsPdf inclui um tag apontando para um arquivo de imagem ( iron.png ) localizado no diretório de ativos especificado ( C:\site\assets\ ). Além disso, este diretório está definido como o parâmetro BasePath .
Em RenderHtmlAsPdf, você pode enviar uma página web HTML completa, conforme mostrado nas etapas acima. O arquivo CSS pode ser referenciado usando o caminho base como segundo parâmetro opcional. Para obter informações mais detalhadas sobre outras maneiras de gerar o formato PDF ou modificar um arquivo PDF existente, visite a página de exemplos de código e documentação .
Conclusão
Neste artigo, exploramos como usar o IronPDF para criar arquivos PDF com texto e imagens em um projeto Python. Com sua API intuitiva e recursos poderosos, o IronPDF permite que os desenvolvedores gerem documentos PDF dinâmicos e visualmente atraentes sem esforço. Seja para criar relatórios, documentação ou qualquer outro tipo de conteúdo, o IronPDF oferece uma solução confiável e flexível para geração de PDFs em Python. Experimente as opções de personalização para adaptar seus PDFs a requisitos de design específicos, tornando o IronPDF uma ferramenta valiosa para suas necessidades de geração de documentos.
Para obter mais informações sobre a licença do IronPDF , entre em contato com o suporte .

Você pode baixar e instalar a biblioteca no site da IronPDF.
Perguntas frequentes
Como posso criar um PDF com texto e imagens usando Python?
Você pode usar ChromePdfRenderer do IronPDF para criar um PDF com texto e imagens em Python. Primeiro, instale a biblioteca IronPDF e, em seguida, crie uma string HTML com o conteúdo desejado. Use o método RenderHtmlAsPdf para renderizar o HTML em um PDF e, finalmente, salve o PDF usando o método SaveAs .
Quais são os passos para instalar a biblioteca PDF para uso em Python?
Para instalar a biblioteca IronPDF for Python, você pode usar o gerenciador de pacotes PIP. Execute o comando pip install ironpdf na linha de comando ou terminal para baixar e instalar a biblioteca juntamente com suas dependências.
Quais são os pré-requisitos necessários para usar uma biblioteca de criação de PDFs em Python?
Você precisará ter o Python instalado em sua máquina, uma IDE como o PyCharm para desenvolvimento e a biblioteca IronPDF. Além disso, o IronPDF requer o ambiente de execução .NET da Microsoft para funcionar.
É possível personalizar PDFs usando CSS ou JavaScript externos com bibliotecas Python?
Sim, o IronPDF permite usar arquivos CSS e JavaScript externos para personalizar o layout e o design dos seus PDFs. Esse recurso oferece opções avançadas de personalização para o posicionamento de texto e imagem.
A biblioteca PDF em Python consegue lidar com a compatibilidade entre plataformas?
O IronPDF foi projetado para ser compatível com diversas plataformas, garantindo que os PDFs gerados possam ser visualizados e utilizados de forma consistente em diferentes sistemas operacionais.
Por que a codificação base64 é usada para imagens na geração de PDFs com Python?
A codificação Base64 é usada para converter dados binários de imagens em um formato de string que pode ser incorporado diretamente no HTML. Isso permite que as imagens sejam incluídas no PDF sem a necessidade de referenciar arquivos externos.
Quais são as principais funcionalidades do IronPDF for Python?
O IronPDF oferece recursos como fácil integração com ambientes Python, suporte para texto formatado e imagens, além de compatibilidade multiplataforma. Esses recursos o tornam uma ferramenta versátil para gerar PDFs com conteúdo dinâmico.
Como o IronPDF pode auxiliar na geração de documentos PDF dinâmicos?
O IronPDF oferece uma API poderosa que permite aos desenvolvedores gerar PDFs com conteúdo dinâmico, como texto e imagens. Ele suporta HTML e CSS para formatação, facilitando a criação de documentos visualmente atraentes em Python.




