Recebi muita ajuda neste site em minhas tarefas específicas e agora percebo que estou usando algo errado para meu propósito.
Preciso de uma decisão (componente ou conjunto de componentes) que forneça poucas colunas, quebrável de página, valign/halign, altura mínima e nenhum espaçamento de parágrafo entre os componentes. aquiComo fazer uma caixa com altura mínima e alinhamento vertical dentro da caixa?Eu tenho uma boa resposta para o cabeçalho. Mas não funciona longtable
, portanto não suporta quebra de página.
Talvez eu precise usar não uma mesa - mas alguma combinação de caixas para essa finalidade?
Exemplo, o usuário cria um modelo como este:
Pego o template, pego o texto do DB e coloco na mesma ordem que o usuário deseja.
Então não sei quanto texto terá no layout. Agora eu tenho uma versão funcional usando longtables
. Altura mínima fornecida \parbox
(se os dados forem curtos e o layout for alto). Mas então eu tenho um problema com o valign - como valignar a tabela no parbox? Se o texto no layout for maior - o layout deve ser esticado e dividido em páginas.
Eu uso essa construção agora (cada linha na placa - um parbox com tabela longa), ela não fornece quebra de página e não é validada:
E obtive o PDF resultante (o texto não é validado e tem um grande espaço de parágrafo, portanto não começa de cima):
O código que eu uso é o seguinte:
\documentclass{book}
\usepackage{fancybox,fancyhdr}
\usepackage[T1]{fontenc}
\usepackage[dvipsnames]{xcolor}
\usepackage{graphicx}
\usepackage{fixltx2e}
\usepackage[normalem]{ulem}
\usepackage[left=72pt,right=72pt,
headheight=72pt,
top=\dimexpr72pt+\headsep\relax,
textheight =592pt
]{geometry}
\usepackage{array}
\usepackage{longtable}
\usepackage[export]{adjustbox}
\newcolumntype{R}[2]{>{\raggedleft \arraybackslash \hspace{0pt}}{#2}{#1}}
\newcolumntype{L}[2]{>{\raggedright\arraybackslash}{#2}{#1}}
\newcolumntype{C}[2]{>{\center\arraybackslash}{#2}{#1}}
\fancyhf{} \fancyhead[C]{\raisebox{\dimexpr\headheight-\height}[\headheight][0pt] {\begin{tabular}{L{\textwidth}{p}}Non-disclosure agreement (NDA)\end{tabular}}}\begin{document}
\pagestyle{fancy}
\noindent\sbox{0}{\parbox{\textwidth}{\noindent\begin{longtable}{C{\textwidth}{m}}Text\end{longtable}}}
\ifdim\dimexpr\ht0+\dp0<517pt
\dp0\dimexpr517pt-\ht0\fi
\makebox{\usebox{0}}\\ \noindent\sbox{0}{\parbox{\textwidth}{\noindent\begin{longtable}{L{\textwidth}{p}}Text\end{longtable}}}
\ifdim\dimexpr\ht0+\dp0<27pt
\dp0\dimexpr27pt-\ht0\fi
\makebox{\usebox{0}}
\end{document}