Criando um arquivo pdf com várias páginas
Nos tutoriais anteriores aprendemos como criar um gráfico com vários gráficos. Assim criamos um gráfico com várias imagens utilizando a biblioteca matplotlib. Desse modo podemos criar gráficos cada vez mais complexos. Desse modo é compreensível pensar que, se utilizamos a biblioteca matplotlib para exportar esse gráfico composto para um arquivo pdf, teríamos um arquivo pdf com uma pagina com vários gráficos. Mas com apenas um pouco de esforço podemos mudar essa realidade e criar um arquivo pdf com algumas páginas. Uma coisa importante de se ter em mente é que o matplotlib é uma biblioteca de plotagem cientifica e não um sistema de composição de documentos como é o caso do LaTeX. Nesse tutorial vamos aprender como criar um documento pdf com algumas páginas.
import numpy as np
from matplotlib.backends.backend_pdf import PdfPages
import matplotlib.pyplot as plt
# Cria um objeto PdfPages com o qual salvaremos as páginas:
# A instrução with garantimos que o objeto PdfPages seja fechado corretamente
# no final, mesmo que ocorra uma exceção.
with PdfPages('multiplas_paginas_pdf.pdf') as pdf:
plt.figure(figsize = (3, 3))
plt.plot(range(7), [3, 1, 4, 1, 5, 9, 2], 'r-o')
plt.title('Página Um')
pdf.savefig() # salva a imagem atual numa pagina do pdf
plt.close()
# Se LaTeX não estiver instalado vai causar um erro
# Nesse caso mude usetex para False
plt.rc('text', usetex = True)
plt.figure(figsize = (8, 6))
x = np.arange(0, 5, 0.1)
plt.plot(x, np.sin(x), 'b-')
plt.title('Página Dois')
pdf.attach_note("Curva de sin(x)") # você pode adicionar uma nota ao pdf
pdf.savefig()
plt.close()
plt.rc('text', usetex = True)
fig = plt.figure(figsize = (4, 5))
plt.plot(x, x ** 2, 'ko')
plt.title('Página Três')
pdf.savefig(fig) # Você pode passar um objeto figure para o método savefig
plt.close()
# tambem podemos adicionar metadados do arquivo pdf com o objeto PdfPages
d = pdf.infodict()
d['Title'] = 'Exemplo Com Múltiplas páginas'
d['Author'] = 'Acervo Lima'
d['Subject'] = 'Como criar um arquivo pdf com mútiplas páginas'
d['Keywords'] = 'PdfPages multipage keywords'
d['CreationDate'] = datetime.datetime(2020, 5, 13)
d['ModDate'] = datetime.datetime.today()
Executando o código acima um arquivo pdf com três páginas deve ser criado na pasta do script.
0 comentários:
Postar um comentário