Skip to content

Commit d2a19a3

Browse files
AssuncaoAndrefuscati
and
fuscati
authored
doc: add Portuguese tutorial (#284)
Co-authored-by: fuscati <[email protected]>
1 parent a329267 commit d2a19a3

6 files changed

+199
-0
lines changed

docs/Tutorial-de.md

+2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ Versión en español: [Tutorial-es](Tutorial-es.md)
88

99
Versione in italiano: [Tutorial-it](Tutorial-it.md)
1010

11+
Versão em português: [Tutorial-pt](Tutorial-pt.md)
12+
1113
Vollständige Dokumentation der Methoden: [`fpdf.FPDF` API doc](https://pyfpdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF)
1214

1315
[TOC]

docs/Tutorial-es.md

+2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ Deutsche Version: [Tutorial-de](Tutorial-de.md)
88

99
Versione in italiano: [Tutorial-it](Tutorial-it.md)
1010

11+
Versão em português: [Tutorial-pt](Tutorial-pt.md)
12+
1113
[TOC]
1214

1315
## Ejemplo básico ##

docs/Tutorial-it.md

+2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ Versión en español: [Tutorial-es](Tutorial-es.md)
88

99
हिंदी संस्करण: [Tutorial-हिंदी](Tutorial-हिंदी.md)
1010

11+
Versão em português: [Tutorial-pt](Tutorial-pt.md)
12+
1113
Documentazione completa dei metodi: [`fpdf.FPDF` API doc](https://pyfpdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF)
1214

1315
[TOC]

docs/Tutorial-pt.md

+189
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,189 @@
1+
# Tutorial #
2+
3+
Deutsche Version: [Tutorial-de](Tutorial-de.md)
4+
5+
Versión en español: [Tutorial-es](Tutorial-es.md)
6+
7+
हिंदी संस्करण: [Tutorial-हिंदी](Tutorial-हिंदी.md)
8+
9+
Versione in italiano: [Tutorial-it](Tutorial-it.md)
10+
11+
Methods full documentation: [`fpdf.FPDF` API doc](https://pyfpdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF)
12+
13+
[TOC]
14+
15+
## Tuto 1 - Exemplo Mínimo ##
16+
17+
Vamos começar com um exemplo clássico:
18+
19+
```python
20+
{% include "../tutorial/tuto1.py" %}
21+
```
22+
23+
[PDF resultante](https://github.com/PyFPDF/fpdf2/raw/master/tutorial/tuto1.pdf)
24+
25+
Após incluirmos o ficheiro da biblioteca, criamos um objeto `FPDF`. O
26+
[FPDF](fpdf/fpdf.html#fpdf.fpdf.FPDF) construtor é construído com os seguintes parâmetros por omissão:
27+
Páginas são em formato A4 vertical e a unidade de medida é o milímetro.
28+
Pode ser especificado explicitamente através de:
29+
30+
```python
31+
pdf = FPDF(orientation="P", unit="mm", format="A4")
32+
```
33+
34+
É possível colocar o PDF em modo horizontal (`L`) ou em outros formatos de página
35+
(como `Letter` e `Legal`) e em outras unidades de medida (`pt`, `cm`, `in`).
36+
37+
Neste momento, não há nenhuma página, então temos que adicionar uma com
38+
[add_page](fpdf/fpdf.html#fpdf.fpdf.FPDF.add_page). A origem está no canto superior esquerdo e a posição atual é, por padrão, colocada a 1 cm das bordas; as margens podem ser alteradas com [set_margins](fpdf/fpdf.html#fpdf.fpdf.FPDF.set_margins).
39+
40+
Antes de imprimirmos o texto, é obrigatório selecionar uma fonte com
41+
[set_font](fpdf/fpdf.html#fpdf.fpdf.FPDF.set_font), caso contrário, o documento será inválido.
42+
Nós escolhemos Helvetica bold 16:
43+
44+
```python
45+
pdf.set_font('helvetica', 'B', 16)
46+
```
47+
Podemos formatar em itálico com `I`, sublinhar com` U` ou uma fonte normal
48+
com uma string vazia (ou qualquer combinação). Observe que o tamanho da fonte é fornecido em pontos, não milímetros (ou outra unidade do utilizador); esta é a única exceção.
49+
As outras fontes integradas são `Times`,` Courier`, `Symbol` e` ZapfDingbats`.
50+
51+
Agora podemos imprimir uma célula com [cell](fpdf/fpdf.html#fpdf.fpdf.FPDF.cell). Uma célula é uma área retangular, possivelmente emoldurada, que contém algum texto. É renderizado na posição atual. Nós especificamos as suas dimensões, o seu texto (centrado ou alinhado), se as bordas devem ser desenhadas, e para onde a posição atual se deve mover depois desta alteração (para a direita, abaixo ou no início da próxima linha). Para adicionar uma moldura, temos de fazer o seguinte:
52+
53+
```python
54+
pdf.cell(40, 10, 'Hello World!', 1)
55+
```
56+
57+
Para adicionar uma nova célula ao lado desta, com texto centralizado e ir para a próxima linha, teríamos de fazer:
58+
59+
```python
60+
pdf.cell(60, 10, 'Powered by FPDF.', ln=1, align='C')
61+
```
62+
63+
**Nota**: a quebra de linha também pode ser feita com [ln](fpdf/fpdf.html#fpdf.fpdf.FPDF.ln). Esse método permite especificar, adicionalmente, a altura da quebra.
64+
65+
Finalmente, o documento é fechado e guardado no caminho do arquivo fornecido utilizando
66+
[output](fpdf/fpdf.html#fpdf.fpdf.FPDF.output). Sem termos qualquer parâmetro fornecido, `output ()` retorna o buffer PDF `bytearray`.
67+
68+
## Tuto 2 - Cabeçalho, rodapé, quebra de página e imagem##
69+
70+
Aqui temos um exemplo de duas páginas com cabeçalho, rodapé e logótipo:
71+
72+
```python
73+
{% include "../tutorial/tuto2.py" %}
74+
```
75+
76+
[PDF resultante](https://github.com/PyFPDF/fpdf2/raw/master/tutorial/tuto2.pdf)
77+
78+
Este exemplo usa os [header](fpdf/fpdf.html#fpdf.fpdf.FPDF.header) e o [footer](fpdf/fpdf.html#fpdf.fpdf.FPDF.footer) para processar cabeçalhos e rodapés de página. Estes são chamados automaticamente. Eles já existem na classe FPDF, mas não fazem nada, portanto, temos que os estender a classe e substituí-los.
79+
80+
O logótipo é impresso utilizando o método [image](fpdf/fpdf.html#fpdf.fpdf.FPDF.image), especificando o seu canto superior esquerdo e sua largura. A altura é calculada automaticamente para respeitar as proporções da imagem.
81+
82+
Para imprimir o número da página, um valor nulo é passado como a largura da célula. Isso significa que a célula deve se estender até a margem direita da página; é útil para centralizar texto. O número da página atual é retornado pelo método [page_no](fpdf/fpdf.html#fpdf.fpdf.FPDF.page_no); quanto ao número total de páginas, é obtido por meio do valor especial `{nb}` que será substituído quando se fecha o documento (desde que use primeiro o [alias_nb_pages](fpdf/fpdf.html#fpdf.fpdf.FPDF.alias_nb_pages)).
83+
Observe que o uso do método [set_y](fpdf/fpdf.html#fpdf.fpdf.FPDF.set_y) permite definir a posição em um local absoluto da página, começando do início ou do fim.
84+
85+
Outro recurso interessante que se usa aqui é a quebra de página automática. Desde do momento em que uma célula cruza o limite da página (a 2 centímetros da parte inferior por
86+
padrão), uma pausa é executada e a fonte restaurada. Embora o cabeçalho e rodapés selecionam a sua própria fonte (`helvetica`), o corpo continua com` Times`.
87+
Este mecanismo de restauração automática também se aplica a cores e largura de linha.
88+
O limite que dispara quebras de página pode ser definido com
89+
[set_auto_page_break](fpdf/fpdf.html#fpdf.fpdf.FPDF.set_auto_page_break).
90+
91+
## Tuto 3 - Quebras de linha e cores ##
92+
93+
Vamos continuar com um exemplo que imprime parágrafos justificados e o uso de cores.
94+
95+
```python
96+
{% include "../tutorial/tuto3.py" %}
97+
```
98+
99+
[PDF resultante](https://github.com/PyFPDF/fpdf2/raw/master/tutorial/tuto3.pdf)
100+
101+
[Texto de Júlio Verne](https://github.com/PyFPDF/fpdf2/raw/master/tutorial/20k_c1.txt)
102+
103+
O método [get_string_width](fpdf/fpdf.html#fpdf.fpdf.FPDF.get_string_width) permite determinar o comprimento de uma string na fonte atual, e que é usada aqui para calcular a posição e a largura do quadro ao redor do título. Em seguida, as cores são definidas (via [set_draw_color](fpdf/fpdf.html#fpdf.fpdf.FPDF.set_draw_color), [set_fill_color](fpdf/fpdf.html#fpdf.fpdf.FPDF.set_fill_color) e [set_text_color](fpdf/fpdf.html#fpdf.fpdf.FPDF.set_text_color)) e a espessura da linha é definida como 1 mm (contra 0,2 por padrão) com [set_line_width](fpdf/fpdf.html#fpdf.fpdf.FPDF.set_line_width). Finalmente, produzimos a célula (se o último parâmetro for verdadeiro, indica que o plano de fundo deve ser preenchido).
104+
105+
O método usado para imprimir os parágrafos é [multi_cell](fpdf/fpdf.html#fpdf.fpdf.FPDF.multi_cell).
106+
Cada vez que uma linha atinge a extremidade direita da célula ou um código de fim de linha é encontrado, uma quebra de linha é emitida e uma nova célula é criada automaticamente sob a atual. O texto é justificado por padrão.
107+
108+
Duas propriedades do documento são definidas: o título
109+
([set_title](fpdf/fpdf.html#fpdf.fpdf.FPDF.set_title)) e o autor
110+
([set_author](fpdf/fpdf.html#fpdf.fpdf.FPDF.set_author)). As propriedades podem ser visualizadas de duas maneiras:
111+
A primeira é abrir o documento diretamente com o Acrobat Reader, vá para o menu Arquivo
112+
e escolha a opção Propriedades do documento.
113+
O segundo, também disponível no plug-in, é clicar com o botão direito e selecionar Propriedades do documento.
114+
115+
## Tuto 4 - Multi Colunas ##
116+
117+
Este exemplo é uma variante do anterior, mostrando como colocar o texto em várias colunas.
118+
119+
```python
120+
{% include "../tutorial/tuto4.py"%}
121+
```
122+
123+
[PDF resultante](https://github.com/PyFPDF/fpdf2/raw/master/tutorial/tuto4.pdf)
124+
125+
[Texto de Júlio Verne](https://github.com/PyFPDF/fpdf2/raw/master/tutorial/20k_c1.txt)
126+
127+
A principal diferença em relação ao tutorial anterior é o uso do [accept_page_break](fpdf/fpdf.html#fpdf.fpdf.FPDF.accept_page_break) e os métodos set_col.
128+
129+
Usando o método [accept_page_break](fpdf/fpdf.html#fpdf.fpdf.FPDF.accept_page_break), quando a célula ultrapassar o limite inferior da página, ela verificará o número da coluna atual. Se isso for menor que 2 (optamos por dividir a página em três colunas), chamando o método set_col, aumentando o número da coluna e alterando a posição da próxima coluna para que o texto continue aí.
130+
131+
Quando o limite inferior da terceira coluna é alcançado, o método [accept_page_break](fpdf/fpdf.html#fpdf.fpdf.FPDF.accept_page_break) será redefinido e vai voltar para a primeira coluna e adicionar uma quebra de página.
132+
133+
134+
## Tuto 5 - Criar Tabelas ##
135+
136+
Este tutorial irá explicar como criar tabelas facilmente.
137+
138+
O código seguinte cria três tabelas diferentes para explicar o que pode ser alcançado com alguns ajustes simples.
139+
140+
```python
141+
{% include "../tutorial/tuto5.py"%}
142+
```
143+
144+
[PDF resultante](https://github.com/PyFPDF/fpdf2/raw/master/tutorial/tuto5.pdf) -
145+
[Texto dos países](https://github.com/PyFPDF/fpdf2/raw/master/tutorial/countries.txt)
146+
147+
Uma vez que uma tabela é apenas uma coleção de células, é natural construir uma
148+
a partir delas.
149+
150+
O primeiro exemplo é obtido da maneira mais básica possível: moldura simples
151+
células, todas do mesmo tamanho e alinhadas à esquerda. O resultado é rudimentar, mas
152+
muito rápido de obter.
153+
154+
A segunda tabela traz algumas melhorias: cada coluna tem sua largura própria, os títulos estão centrados e as figuras alinhadas à direita. Além disso, as linhas horizontais foram removidas. Isto é feito por meio do parâmetro border do método Cell(), que especifica quais lados da célula devem ser desenhados. Aqui nós queremos os esquerdo (L) e direito (R). Agora apenas o problema da linha horizontal para terminar a mesa permanece. Existem duas possibilidades para resolvê-lo: verificar para a última linha do loop, caso este em que usamos LRB para o parâmetro da borda; ou, como foi feito aqui, adicione a linha assim que o loop terminar.
155+
156+
A terceira tabela é semelhante à segunda, mas usa cores. Preenchimento, texto e as cores das linhas são simplesmente especificadas. Coloração alternativa para linhas é obtida usando células alternativamente transparentes e preenchidas.
157+
158+
## Tuto 6 - Criar links e misturar estilos de texto ##
159+
160+
Este tutorial irá explicar várias maneiras de inserir links dentro de um documento PDF, bem como adicionar links para fontes externas.
161+
162+
Também mostrará várias maneiras de usar diferentes estilos de texto, (negrito, itálico, sublinhado) no mesmo texto.
163+
164+
```python
165+
{% include "../tutorial/tuto6.py"%}
166+
```
167+
168+
[PDF resultante](https://github.com/PyFPDF/fpdf2/raw/master/tutorial/tuto6.pdf) -
169+
[fpdf2-logo](https://raw.githubusercontent.com/PyFPDF/fpdf2/master/docs/fpdf2-logo.png)
170+
171+
172+
173+
O novo método mostrado aqui para imprimir texto é [write()](https://pyfpdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.write). É muito parecido com [multi_cell ()](https://pyfpdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.multi_cell), sendo as principais diferenças:
174+
175+
- O fim da linha está na margem direita e a próxima linha começa na
176+
margem esquerda.
177+
- A posição atual move-se para o final do texto.
178+
179+
O método, portanto, nos permite escrever um pedaço de texto, alterar o estilo da fonte, e continuar do ponto exato em que paramos.
180+
Por outro lado, a sua principal desvantagem é que não podemos justificar o texto como nós fazemos com o método [multi_cell()(https://pyfpdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.multi_cell) .
181+
182+
Na primeira página do exemplo, usámos [write()](https://pyfpdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.write)
183+
para este propósito. O início da frase está escrita no estilo de texto normal, depois usando o método [set_font()](https://pyfpdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.set_font), trocamos para sublinhado e acabámos a frase.
184+
185+
Para adicionar o link externo a apontar para a segunda página, nós usámos o método [add_link()](https://pyfpdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.add_link), que cria uma área clicável à qual demos o nome de “link” que direciona para outra parte do documento. Na segunda página, usámos [set_link()](https://pyfpdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.set_link) para definir uma área de destino para o link que acabámos de criar.
186+
187+
Para criar o link externo usando uma imagem, usámos [image()](https://pyfpdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.image). O método tem a opção de passar um link como um dos seus argumentos. O link pode ser interno ou externo.
188+
189+
Como alternativa, outra opção para mudar o estilo da fonte e adicionar links é usar o método `write_html()`. É um “parser” que permite adicionar texto, mudar o estilo da fonte e adicionar links usando html.

docs/Tutorial-हिंदी.md

+2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ Versión en español: [Tutorial-es](Tutorial-es.md)
88

99
Versione in italiano: [Tutorial-it](Tutorial-it.md)
1010

11+
Versão em português: [Tutorial-pt](Tutorial-pt.md)
12+
1113
Methods full documentation / तरीके पूर्ण प्रलेखन: [`fpdf.FPDF` API doc](https://pyfpdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF)
1214

1315
[TOC]

docs/Tutorial.md

+2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ Versión en español: [Tutorial-es](Tutorial-es.md)
88

99
Versione in italiano: [Tutorial-it](Tutorial-it.md)
1010

11+
Versão em português: [Tutorial-pt](Tutorial-pt.md)
12+
1113
Methods full documentation: [`fpdf.FPDF` API doc](https://pyfpdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF)
1214

1315
[TOC]

0 commit comments

Comments
 (0)