Hola, en
https://archive.sap.com/discussions/thread/1180851
hay un comentario de 2010 de Ludek Uher que dice:
La solución está siendo rastreada por QA bajo ADAPT01383393.
Comportamiento observado:
Si el ancho del informe es mayor que la altura y la orientación de la página está configurada en vertical, la función PrintToPrinter() intercambia las medidas para que la altura sea mayor que el ancho (como en una configuración de vertical normal). Esto significa que el texto se corta ya que el papel no es lo suficientemente ancho. [...]
Fix Pack 2.8 ETA: fin de mayo de 2010
Y en
https://archive.sap.com/discussions/thread/3152950
el comentario de Don Williams de 2012 dice "CR tiene lógica (y eso es discutible) cuando el ancho del papel es más estrecho que la longitud de la página, entonces tienes una página en vertical".
¿Los dos comentarios hablan sobre el mismo problema? Si es así, parece que el FP2.8 de 2010 en realidad no cambió el comportamiento, ¡ya que sigue siendo el mismo en 2012! Y según lo que puedo ver, sigue siendo lo mismo con CR Developer para VS SP21: si agrego un nuevo informe en blanco y voy a Crystal Reports -> Diseño -> Configuración de página, marco la casilla de tamaño de página de formato disociado... e ingreso un tamaño horizontal de 3 y un tamaño vertical de 1, el botón de orientación se cambia a horizontal. Y si lo cambio de nuevo a vertical, el tamaño horizontal cambia a 1 y el tamaño vertical cambia a 3.
Creo que la lógica descrita en "CR tiene lógica (y eso es discutible) cuando el ancho del papel es más estrecho que la longitud de la página, entonces tienes una página en vertical." es incorrecta y me gustaría discutirla
🙂
Mientras que el significado en inglés de la orientación vertical vs. horizontal se refiere a si el ancho de la página es mayor que la altura o no, en un contexto informático se refiere a si el texto debe rotarse al imprimirse/mostrarse o no. Por eso existe una configuración separada de vertical vs. horizontal; si siempre se pudiera inferir a partir del ancho y la altura de la página, no sería necesario especificarlo por separado.
Entonces, en un contexto informático, la orientación vertical significa no rotar al imprimir en el dispositivo de salida, y la horizontal significa rotar por 90 o 270 grados (ver por ejemplo,
https://docs.microsoft.com/en-us/dotnet/api/system.drawing.printing.printersettings.landscapeangle?v...
. En el caso común de una página tamaño carta de 8.5x11 pulgadas (o A4), la vertical es 8.5x11 y la horizontal es 11x8.5 y la definición en inglés coincide con la definición informática. Pero al tratar con una etiqueta de 3x1, eso es horizontal según la definición en inglés, pero generalmente quiero que el texto vaya horizontalmente en ella, es decir, vertical según la definición informática. Por lo tanto, el hecho de que Crystal no me permita configurar una página de 3x1 en vertical es un problema.
Como han mencionado algunos otros hilos que hablan sobre este problema, funciona si se define un tamaño de formulario personalizado de 3x1 en las propiedades del controlador de la impresora y la casilla de tamaño de página de formato disociado... no está marcada. Pero no creo que esto debería ser necesario (y de hecho, estoy bastante seguro de que no era necesario en CR XI R2 con la antigua interfaz ActiveX).
No puedo decir si ADAPT01383393 se suponía que cambiaría CR para que la orientación vertical vs. horizontal ya no estuviera relacionada con las dimensiones horizontales y verticales de la página, pero actualmente están vinculadas en CR para VS, y como dije, creo que eso es incorrecto. ¿No hay forma de imprimir texto horizontal (sin rotar) en una etiqueta de 3x1 sin definir un formulario personalizado en la configuración del controlador de la impresora? Si no es así, me gustaría sugerir que CR permita establecer la orientación de la página de forma independiente del tamaño de la página.