já lhe respondi seu e-mail mas vou responder aqui para o histórico ficar para outros:
pode ser porque a largura (width) do ObjectValue está curta, mas caso ela já esteja ok, você pode usar o atributo trocate_overflow pra tuncar o campo e evitar que ele faça o salto de linha, assim por exemplo:
<code>
ObjectValue(expression='nome', width=4*cm, truncate_overflow=True)
</code>
----
Marinho Brandão (José Mário)
http://www.marinhobrandao.com/
quando você informa o attribute_name e atribui a ele uma string, com o nome do atributo, o "replace" não se enquadra, pois o replace deve ser aplicado a cada valor de tal atributo, e não ao seu nome.
portanto o correto seria fazer algo como:
ObjectValue(
top=200, left=2*cm, width=16*cm, style={'alignment': TA_JUSTIFY},
get_value=lambda self, objeto: objeto.texto.replace().replace().etc...,
)
Veja que o get_value é uma função (lambda) que recebe o self (ObjectValue) e o objeto em questão (porque uma lista de 100 objetos vai rodar esse widget 100 vezes, uma para cada objeto)
Neste caso, o attribute_name é desnecessário. O display_format também.
Espero que tenha ajudado
----