Pasar al contenido principal
Inicio
Tecnología y creación al alcance de todos

Navegación principal

  • Inicio
  • Sobre nosotros
言語の切り替え
  • Japnese
  • English
  • Español

Ruta de navegación

  1. Inicio

Hasta que construí un entorno de Python en Ubuntu 24.04 y generé archivos PDF

Por techfan , 9 Noviembre, 2025
Table of contents

🐍 Generar PDFs con Python (incluyendo japonés) en AWS Lightsail / Ubuntu 24.04

En este artículo se explica cómo preparar un entorno Python en AWS Lightsail (Ubuntu 24.04) y cómo generar archivos PDF —incluyendo soporte para texto japonés— utilizando ReportLab. En el ejemplo, el directorio de trabajo se llama testpy.

🪜 1. Crear un directorio de trabajo

Primero, generamos una carpeta dentro del home del usuario ubuntu:

mkdir -p ~/testpy && cd ~/testpy

Aquí colocaremos el entorno virtual de Python y los scripts necesarios.

🧠 2. Configurar Python y el entorno virtual

Ubuntu 24.04 incluye Python 3.12, pero actualizamos los paquetes y preparamos el entorno:

sudo apt update sudo apt install -y python3 python3-pip python3-venv

Crear entorno virtual:

python3 -m venv .venv

Activarlo:

source .venv/bin/activate

Si aparece (.venv) al inicio del prompt, la activación fue exitosa. A partir de ese momento, Python y pip utilizarán el entorno virtual.

🧩 3. Verificar funcionamiento

echo 'print("Hola, TechFan! Python funciona correctamente.")' > test.py python test.py

Si muestra Hola, TechFan!, todo está bien.

🖋️ 4. Instalar librerías para PDF

Instalamos las librerías necesarias para generar y manipular PDFs:

pip install reportlab pypdf pillow

🧾 5. Prueba de PDF (solo texto en inglés/español)

 

python - <<'PY'
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import A4
from reportlab.lib.units import mm

c = canvas.Canvas("test_reportlab.pdf", pagesize=A4)
w,h = A4
c.setFont("Helvetica-Bold", 20)
c.drawCentredString(w/2, h-40*mm, "TechFan PDF Test")
c.setFont("Helvetica", 12)
c.drawString(20*mm, h-60*mm, "ReportLab generated this page.")
c.showPage()
c.save()
print("OK: test_reportlab.pdf")
PY

 

Si se genera el archivo test_reportlab.pdf, la prueba fue exitosa.

6. Instalar fuentes japonesas

Para poder mostrar correctamente texto japonés en los PDFs, instalamos una fuente japonesa:

sudo apt install -y fonts-ipaexfont fontconfig fc-list | grep -i ipaex

Ejemplo de salida:

/usr/share/fonts/opentype/ipaexfont-gothic/ipaexg.ttf: IPAexGothic,IPAexゴシック:style=Regular

7. Prueba de PDF con texto de certificado (en español)

A continuación, un ejemplo de generación de PDF que utiliza la fuente IPAexGothic y muestra un modelo de certificado en español.

python - <<'PY' from reportlab.pdfgen import canvas from reportlab.lib.pagesizes import A4 from reportlab.pdfbase import pdfmetrics from reportlab.pdfbase.ttfonts import TTFont FONT_PATH = "/usr/share/fonts/opentype/ipaexfont-gothic/ipaexg.ttf" pdfmetrics.registerFont(TTFont("IPAexGothic", FONT_PATH)) c = canvas.Canvas("test_japanese.pdf", pagesize=A4) c.setFont("IPAexGothic", 18) c.drawString(72, 780, "Prueba: Ejemplo de certificado TechFan") c.drawString(72, 752, "Nombre: Taro Yamada") c.drawString(72, 724, "Nombre del examen: Certificación básica de Python") c.drawString(72, 696, "¡Felicidades por tu logro!") c.showPage() c.save() print("OK: test_japanese.pdf") PY

Si el PDF test_japanese.pdf se genera y el texto se ve correctamente, la configuración de la fuente y de ReportLab está funcionando.

🔁 8. Activar y desactivar el entorno virtual

Para activar el entorno virtual más adelante:

source ~/testpy/.venv/bin/activate

Para desactivarlo cuando termine de trabajar:

deactivate

Puede imaginarlo como abrir y cerrar un entorno de trabajo de Python de forma aislada para cada proyecto.

✅ Resumen

  • Entorno virtual de Python preparado en ~/testpy.
  • Bibliotecas instaladas para generar y editar PDFs (reportlab, pypdf, pillow).
  • Fuente IPAexGothic configurada para poder usarla en certificados y documentos.

A partir de esta base, puede construir un sistema de emisión de certificados con Python (por ejemplo, certificados de exámenes) de forma flexible.

カテゴリー
programación
Python

BlogCategory

programación

  • HSP3
  • Python

Experimentos de Ciencia

  • Condensadores

Linux

  • chrome os
  • Lubuntu

eventos

  • juegos
RSSフィード
Funciona con Drupal