Cómo deshacerse de las páginas en blanco en PDF exportadas desde SSRS

194

Tengo un informe SSRS de dos páginas. Cuando lo exporté a PDF, ocupaba 4 páginas debido a su ancho, donde las páginas 2 y 4 mostraban uno de mis campos de la tabla. Traté de establecer el tamaño del diseño en las propiedades del informe como ancho = 18 pulgadas y altura = 8.5 pulgadas.

Me dio toda la tabla en una sola página de PDF, pero todavía tengo en blanco la segunda y la cuarta páginas.

¿La forma en que lo estoy haciendo es incorrecta? ¿De qué otra forma puedo deshacerme de esas páginas en blanco?

Mark Hions
fuente

Respuestas:

344

En BIDS o SSDT-BI, haga lo siguiente:

  1. Haga clic en Informe> Propiedades del informe> pestaña Diseño (pestaña Configuración de página en SSDT-BI)
  2. Tome nota de los valores de ancho de página , margen izquierdo , margen derecho
  3. Cierra y vuelve a la superficie de diseño
  4. En la ventana Propiedades, seleccione Cuerpo
  5. Haga clic en el símbolo + para expandir el nodo Tamaño
  6. Tome nota del valor de Ancho

Para renderizar correctamente en PDF Ancho del cuerpo + Margen izquierdo + El margen derecho debe ser menor o igual que el ancho de la página. Cuando ve que se representan páginas en blanco, casi siempre se debe a que el ancho del cuerpo más los márgenes es mayor que el ancho de la página.

Recuerde: (Ancho del cuerpo + margen izquierdo + margen derecho) <= (ancho de página)

Nathan Griffiths
fuente
14
No funciona El ancho de mi cuerpo es menor que "Informe ancho - márgenes". Y todavía tengo un montón de páginas en blanco allí.
adolf ajo
2
@adolfgarlic He descubierto que la configuración del ancho de página no siempre funciona correctamente en las propiedades del informe. ¿Has intentado arrastrar manualmente el ancho del informe en Visual Studio? Eso resolvió este problema para mí hoy después de golpear mi cabeza contra la pared por un buen rato. Valdría la pena comprobar también los anchos de encabezado / pie de página, pueden ser un poco demasiado grandes.
Michael A
15
Descubrí que la regla que funcionaba aquí no era (Ancho del cuerpo + Margen izquierdo + Margen derecho) <= (Ancho de página) sino más bien (Ancho del cuerpo + Margen izquierdo + Margen derecho) <(Ancho de página-1cm)
Jafin
3
También otra cosa a tener en cuenta es la altura del encabezado + cuerpo + pie de página + margen superior + inferior <Altura de la página; de lo contrario, la página fluirá en varias páginas.
desiguy
44
Cuando crea un informe por primera vez, el constructor ejecuta un área blanca (el "Cuerpo" que Nathan menciona) en todo el ancho de la pantalla para poner cosas. Por lo general, esta área blanca mide 17 pulgadas de ancho en una pantalla de buzón más nueva. Lo que no es intuitivamente obvio es que este se considera un objeto imprimible y debe reducirse al ancho de las cosas que le pones. Si no hace esto, obtendrá páginas en blanco, sin importar todas las demás cosas que todos mencionen.
BobRodes
112

Otra cosa para intentar es establecer la propiedad del informe llamadaConsumeContainerWhitespace a True(el valor predeterminado es false). Así fue como se resolvió para mí.

Crisálida
fuente
2
Sí, también funcionó para mí. Tengo un contenedor con un tablix con grupos de columnas. Claramente, el contenedor estaba creciendo para contener los grupos de columnas y sin consumir el espacio en blanco del contenedor desbordaría el límite de la página.
Ciarán
44
Esta fue sin duda la clave para mí. Siempre utilizo la respuesta aceptada por Nathan, con resultados mixtos. En cada caso donde la solución de Nathan no resolvió el problema, este fue el truco. Tenga en cuenta que aún debe utilizar lo que sugiere Nathan.
bojingo
SÍ x100! Es una pena que no pueda tener 2 "respuestas aceptadas", porque parece que el curso adecuado es una combinación de esto y el aceptado. ¡Felicitaciones a usted!
NateJ
2
Vaya, retíralo. Estoy usando VS 2017 SSRS / SSDT; Me llevó un tiempo descubrir que tienes que usar la ventana Propiedades para encontrar esta función, no el Report Properties...diálogo.
codeMonkey
1
eso funcionó para mí después de luchar por un tiempo ... muchas gracias
Joel_J
28

Después de horas de luchar con este problema, me topé con una solución que funcionó para mí:

En SSDT (2012), originalmente había configurado mis Unidades de página / Unidades de página en Centímetros. Cuando cambié esto a pulgadas, curiosamente, pude exportar mi informe a PDF sin tener ninguna otra página en blanco.

ingrese la descripción de la imagen aquí

sion_corn
fuente
Esto funcionó para mí perfectamente. Cambiar pulgadas a Cm funcionará o viceversa, pero no es necesario pegarse en Cm. Una cosa más es que es necesario establecer márgenes de al menos 1 cm para que el informe se genere sin una página vacía adicional.
Ravi Shankar
21

Es mejor hacer esto en la superficie de diseño ( se muestra Visual Studio 2012, pero se puede hacer en otras versiones ) primero antes de calcular las matemáticas al editar un documento SSRS.

Debajo de los siguientes números en círculos rojos que corresponden a los siguientes pasos:

  1. En la superficie de diseño, a veces el editor creará un page que sea más grande que los controles reales; de ahí que se imprima el área fantasma.
  2. Cambiar el tamaño a los controles. Mire visualmente el ancho / alto y vea si no puede traer la página en la superficie de diseño para ajustarla al espacio que realmente necesitan los controles y nada más.
  3. Luego intente crear un PDF y ver si eso lo soluciona.
  4. Si el n. ° 3 no resuelve el problema, entonces hay controles que requieren demasiado del tamaño real de la página y se extienden en longitud / ancho. Por lo tanto, será necesario reducir el tamaño de los controles para acomodar un tamaño de página más pequeño.

Pasos para remediar manualmente


Además, en algunas circunstancias, se puede cambiar una propiedad de la página del informe configurando ConsumeContainerWhitespacepara trueque consuma automáticamente los espacios.

ΩmegaMan
fuente
2
¡Gracias! Sabía que tenía que ser más simple que pasar por números y hacer matemáticas. No sabía que estaba imprimiendo espacios en blanco solo porque el cuerpo del informe era tan grande.
Tor
Establecer ConsumeContainerWhitespace en true lo hizo por mí. Sin embargo
Jon Dosmann el
18

El problema para mí fue que SSRS trata deliberadamente su espacio en blanco como si tuviera la intención de honrarlo:

ingrese la descripción de la imagen aquí

Además del espacio en blanco, asegúrese de que no haya margen derecho.

Jeremy Thompson
fuente
1
Hola @ jeremy-thompson, tu propina resulta muy útil. Saludos
Andy K
1
Eliminar el margen derecho funcionó para mí y no afectó el renderizado ni en el visor de informes web ni en PDF.
andrej351
1
5 años después, este fue el indicado para mí.
MPJ567
17

Si las páginas están en blanco provenientes de SSRS, debe ajustar el diseño de su informe. Esto será mucho más eficiente que ejecutar el resultado y el proceso posterior para reparar los efectos secundarios de un problema de diseño.

SSRS es muy quisquilloso cuando se trata de empujar los límites de los márgenes. Es fácil ampliar / alargar accidentalmente el informe simplemente ajustando el cuadro de texto u otro control en el informe. Verifique cuidadosamente la propiedad de ancho y alto de la superficie del informe y exprímalos tanto como sea posible. Cuidado con los encabezados y pies de página grandes.

HectorMac
fuente
5

Además de los márgenes, el problema más común hasta ahora, también he visto dos posibilidades adicionales:

  1. Utilizando +para concatenar texto. Deberías usar &en su lugar.
  2. Texto que desborda el ancho del cuadro de texto especificado. Entonces, si su cuadro de texto solo tiene 30 caracteres e intenta meter 300 allí, podría terminar con páginas adicionales.
Joshua Drake
fuente
5

He trabajado con SSRS durante más de 10 años y las respuestas anteriores son las respuestas a las respuestas. PERO. Si nada funciona y está completamente lleno ... elimine los elementos del informe hasta que el problema desaparezca. Una vez que haya identificado qué fila o elemento de informe está causando el problema, colóquelo dentro de un contenedor rectangular. Eso es. ¡Nos ha ayudado muchas, muchas veces! Las páginas adicionales se deben principalmente a elementos de informes que fluyen sobre el margen derecho. Cuando todo lo demás falla, poner cosas dentro de un rectángulo o un rectángulo vacío a la derecha de un elemento, puede evitar que esto suceda. Buena suerte por ahi!

LucasF
fuente
Me funcionó. Al agregar una columna vacía adicional en la tabla, ¡mi informe en formato pdf no muestra las páginas en blanco adicionales ...!
luciérnaga
4

¿Ha intentado ver si hay algún espacio en blanco a la derecha de su informe? Si es así, puede arrastrarlo de regreso al final de su informe y luego arrastrar el fondo del informe nuevamente al mismo lugar.

usuario2585349
fuente
4

En la pestaña de propiedades del informe (myReport.rdlc), cambie el atributo "Mantener juntos" a Falso. He estado luchando con este problema por un tiempo y esto parece haber resuelto mi problema. ingrese la descripción de la imagen aquí

Omar
fuente
2

Si su informe incluye un subinforme, el ancho del subinforme podría empujar los límites del cuerpo si se permite que el subinforme y la jerarquía crezcan. Tuve un problema similar con un subinforme que podría colocarse en una celda (que abarca 2 columnas). Parecía que el lapso podía contenerlo en el diseñador y funcionaba bien en un winform o un navegador y, originalmente, podía generar resultados de la impresora (o archivo pdf) sin extenderse a páginas en exceso.
Luego, después de cambiar algunos otros anchos de columna (y sin exceder el ancho del cuerpo más los márgenes), las representaciones de winform y del navegador aún se veían bien, pero cuando se generó la salida (impresora o pdf), creció más allá de los márgenes y escribió el lado derecho de cada página como segunda página (cuarta, etc.). Podría eliminar mi problema aumentando el colspan donde se colocó el subinforme.
Ya sea que esté utilizando subinformes o no, si tiene un desbordamiento de página y el diseño de su cuerpo se ajusta a los márgenes de la página, busque algo que pueda crecer y que empuje el ancho del cuerpo hacia afuera.

Bill1260231
fuente
2

Recientemente heredé un informe que necesitaba hacer algunos cambios. Después de seguir todas las recomendaciones anteriores, no sirvió de nada. El informe históricamente tenía esta página extra, y nadie podía entender por qué.

Hice clic derecho en el tablix y las propiedades seleccionadas. Había una casilla marcada que decía agregar un salto de página después. Después de eliminar esto, ahora se imprime en una página.

ingrese la descripción de la imagen aquí

crh225
fuente
-3

He utilizado con éxito pdftk para eliminar páginas que no quería / necesitaba en archivos PDF. Puedes descargar el programa aquí

Puede intentar algo como lo siguiente. Tomado de aquí bajo ejemplos

Elimine la 'página 13' de in1.pdf para crear out1.pdf pdftk in.pdf cat 1-12 Salida de 14 extremos out1.pdf

o:

pdftk A = in1.pdf cat A1-12 A14-end salida out1.pdf

vinc456
fuente