Ajustes de leiaute e correção de dados no motor FPDF do DAMDFE
Contexto
O motor FPDF de impressão do DAMDFE (TACBrMDFeDAMDFeFPDF) ainda está em ajuste de leiaute (como já indicado no changelog do componente). Ao usar esse motor em produção, foram identificadas divergências em relação ao leiaute oficial e também bugs de dados incorretos sendo impressos. Este PR corrige ambos, comparando cada campo com o Manual de Orientação do Contribuinte (MOC) — Anexo II: Manual de Especificações Técnicas do DAMDFE, versão 3.00b.
Testado com um MDF-e real (modal Rodoviário, emissão normal) e, para os demais modais/contingência, com cópias do mesmo XML alterando manualmente <modal>, <tpEmis> e o bloco de dados do modal (<aereo>/<aquav>/<ferrov>).
Resumo
3 bugs de dados corrigidos (Vale-Pedágio, RNTRC do cabeçalho, quebra de linha nas Observações) — o layout estava usando a fonte errada ou a configuração errada do componente TextBox, não um problema visual.
2 bugs de "sempre vazio" corrigidos nos modais Aéreo/Aquaviário/Ferroviário (condição de guarda usando um campo que só existe no modal Rodoviário).
Dados fictícios/hardcoded substituídos por dados reais do XML nos modais Aquaviário e Ferroviário (Embarcação, Terminal de Carregamento/Descarregamento, Composição do trem, tabela de vagões).
Campo novo: "Valor Total da Carga" foi cogitado e revertido — não faz parte do leiaute oficial do Anexo II.
Feature nova: rodapé com a mensagem do sistema (MensagemRodape/Sistema), espelhando o que a DANFE FPDF (ACBrNFeDANFeFPDF.pas, TBlocoRodape) já tem — no MDF-e a propriedade já existia e já era preenchida, mas nenhuma band nunca desenhava esse valor na página.
Regra nova: "Informações da Composição da Carga" agora só é adicionada quando Ide.tpEmis <> teNormal (emissão em contingência), conforme os mockups do Anexo II.
Linhas separadoras abaixo dos títulos de coluna, presentes nos mockups do manual e ausentes na implementação atual.
Bug de leiaute — logomarca sobrepondo o título. A logo era desenhada em Image(x, y, 40, 30, ...) com y = -20, ou seja, com a borda inferior em y = +10 — 10mm além do limite inferior do band do cabeçalho (fixo em y = 0), invadindo visualmente a área do título "DAMDFE..." desenhado no band seguinte. Corrigido deslocando a logo (e o placeholder de "sem logo") 10mm para cima.
@Daniel Simões de Almeida acredito que as alterações e a adaptação dos modelos de impressão para fpdf seja útil para retirar dependência de projetos externos como fastreport/fortesreport e necessário para utilizar com API.
ACBrMDFeDAMDFeFPDF.pas