Olá, em
https://archive.sap.com/discussions/thread/1180851
há um comentário de 2010 de Ludek Uher que diz:
A solução está sendo rastreada pelo QA sob ADAPT01383393.
Comportamento observado:
Se a largura do relatório for maior que a altura e a orientação da página estiver configurada como vertical, a função PrintToPrinter() troca as medidas para que a altura seja maior que a largura (como em uma configuração vertical normal). Isso significa que o texto é cortado, pois o papel não é largo o suficiente. [...]
Fix Pack 2.8 ETA: final de maio de 2010
E em
https://archive.sap.com/discussions/thread/3152950
o comentário de Don Williams de 2012 diz "CR tem lógica (e isso é discutível) quando a largura do papel é mais estreita que o comprimento da página, então você tem uma página em vertical".
Os dois comentários falam sobre o mesmo problema? Se sim, parece que o FP2.8 de 2010 na verdade não alterou o comportamento, pois continua o mesmo em 2012! E pelo que posso ver, ainda é o mesmo com CR Developer para VS SP21: se eu adicionar um novo relatório em branco e for para Crystal Reports -> Design -> Configuração da página, marco a caixa de tamanho de página de formato dissociado... e insiro um tamanho horizontal de 3 e um tamanho vertical de 1, o botão de orientação muda para horizontal. E se eu mudar de volta para vertical, o tamanho horizontal muda para 1 e o tamanho vertical muda para 3.
Acredito que a lógica descrita em "CR tem lógica (e isso é discutível) quando a largura do papel é mais estreita que o comprimento da página, então você tem uma página em vertical." está incorreta e gostaria de discuti-la
?
Enquanto o significado em inglês de orientação vertical vs. horizontal se refere a se a largura da página é maior que a altura ou não, em um contexto de computação se refere a se o texto deve ser rotacionado ao ser impresso/exibido ou não. Por isso existe uma configuração separada de vertical vs. horizontal; se sempre pudesse ser inferido a partir da largura e altura da página, não seria necessário especificá-lo separadamente.
Portanto, em um contexto de computação, orientação vertical significa não rotacionar ao imprimir no dispositivo de saída, e horizontal significa rotacionar por 90 ou 270 graus (veja por exemplo,
https://docs.microsoft.com/en-us/dotnet/api/system.drawing.printing.printersettings.landscapeangle?v...
. No caso comum de uma página tamanho carta de 8.5x11 polegadas (ou A4), a vertical é 8.5x11 e a horizontal é 11x8.5 e a definição em inglês coincide com a definição de computação. Mas ao lidar com uma etiqueta de 3x1, isso é horizontal segundo a definição em inglês, mas geralmente quero que o texto vá horizontalmente nela, ou seja, vertical segundo a definição de computação. Portanto, o fato de o Crystal não me permitir configurar uma página de 3x1 em vertical é um problema.
Como alguns outros tópicos mencionaram sobre esse problema, funciona se um tamanho de formulário personalizado de 3x1 for definido nas propriedades do driver da impressora e a caixa de tamanho de página de formato dissociado... não estiver marcada. Mas não acredito que isso deveria ser necessário (e de fato, tenho bastante certeza de que não era necessário no CR XI R2 com a antiga interface ActiveX).
Não consigo dizer se ADAPT01383393 deveria mudar o CR para que a orientação vertical vs. horizontal não estivesse mais relacionada às dimensões horizontais e verticais da página, mas atualmente estão vinculadas no CR para VS, e como disse, acredito que isso está incorreto. Não há maneira de imprimir texto horizontal (sem rotacionar) em uma etiqueta de 3x1 sem definir um formulário personalizado nas configurações do driver da impressora? Se não, gostaria de sugerir que o CR permita definir a orientação da página independentemente do tamanho da página.