Comment se débarrasser des pages vierges dans un PDF exporté de SSRS

194

J'ai un rapport SSRS de deux pages. Lorsque je l'ai exporté au format PDF, il prenait 4 pages en raison de sa largeur, où les 2e et 4e pages affichaient l'un de mes champs du tableau. J'ai essayé de définir la taille de la mise en page dans les propriétés du rapport comme largeur = 18 pouces et hauteur = 8,5 pouces.

Il m'a donné tout le tableau dans une seule page de PDF, mais je suis toujours vierge des 2e et 4e pages.

La façon dont je le fais est-elle incorrecte? Sinon, comment puis-je me débarrasser de ces pages blanches?

Mark Hions
la source

Réponses:

344

Dans BIDS ou SSDT-BI, procédez comme suit:

  1. Cliquez sur Rapport> Propriétés du rapport> onglet Disposition (onglet Mise en page dans SSDT-BI)
  2. Prenez note des valeurs de largeur page , Marge gauche , Marge droite
  3. Fermer et revenir à la surface de conception
  4. Dans la fenêtre Propriétés, sélectionnez Corps
  5. Cliquez sur le symbole + pour développer le nœud Taille
  6. Notez la valeur de la largeur

Pour un rendu correct au format PDF, la largeur du corps + la marge gauche + la marge droite doivent être inférieures ou égales à la largeur de la page. Lorsque vous voyez des pages vierges rendues, c'est presque toujours parce que la largeur du corps plus les marges sont supérieures à la largeur de la page.

Rappelez-vous: (largeur du corps + marge gauche + marge droite) <= (largeur de page)

Nathan Griffiths
la source
14
Ça ne marche pas. La largeur de mon corps est inférieure à "Largeur du rapport - marges". Et j'ai encore une tonne de pages blanches là-dedans.
adolf garlic
2
@adolfgarlic J'ai constaté que les paramètres de largeur de page ne fonctionnent pas toujours correctement sous les propriétés du rapport. Avez-vous essayé de faire glisser manuellement la largeur du rapport dans Visual Studio? Cela a résolu ce problème pour moi aujourd'hui après m'être cogné la tête contre le mur pendant un bon moment. Il serait également utile de vérifier les largeurs de vos en-têtes / pieds de page, elles pourraient être légèrement trop grandes.
Michael A
15
J'ai trouvé que la règle qui fonctionnait ici n'était pas (largeur du corps + marge gauche + marge droite) <= (largeur de page) mais plus comme (largeur du corps + marge gauche + marge droite) <(largeur de page-1 cm)
Jafin
3
Une autre chose à noter est également la hauteur de l'en-tête + corps + pied de page + haut + marge inférieure <Hauteur de la page sinon la page va couler sur plusieurs pages.
desiguy
4
Lorsque vous créez un rapport pour la première fois, le générateur exécute une zone blanche (le «corps» mentionné par Nathan) sur toute la largeur de l'écran pour y ajouter des éléments. En règle générale, cette zone blanche mesure 17 pouces de large sur un écran de boîte aux lettres plus récent. Ce qui n'est pas intuitivement évident, c'est que cela est considéré comme un objet imprimable et doit être réduit à la largeur de la substance que vous y mettez. Si vous ne le faites pas, vous obtiendrez des pages blanches, peu importe toutes les autres choses que tout le monde mentionne.
BobRodes
112

Une autre chose à faire est de définir la propriété de rapport appelé ConsumeContainerWhitespaceà True(la valeur par défaut est false). C'est comme ça que ça s'est résolu pour moi.

Chrysalide
la source
2
Oui, ça a marché pour moi aussi. J'ai un conteneur avec un tablix avec des groupes de colonnes. Clairement, le conteneur grandissait pour contenir les groupes de colonnes et sans consommer l'espace blanc du conteneur, il déborderait la limite de la page.
Ciarán
4
C'était certainement la clé pour moi. J'utilise toujours la réponse acceptée par Nathan, avec des résultats mitigés. Dans chaque cas où la solution de Nathan n'a pas résolu le problème, celle-ci a fait l'affaire. Sachez que vous devez toujours utiliser ce que suggère Nathan.
bojingo
OUI x100! Il est dommage que vous ne puissiez pas avoir 2 "réponses acceptées", car il semble que le bon cours soit un combo à la fois celui-ci et celui accepté. Bravo à vous!
NateJ
2
Oups, reprenez-le. J'utilise VS 2017 SSRS / SSDT; m'a pris un certain temps pour comprendre que vous devez utiliser la fenêtre Propriétés pour trouver cette fonctionnalité, pas la Report Properties...boîte de dialogue.
codeMonkey
1
qui a fonctionné pour moi après avoir lutté pendant un certain temps ... merci beaucoup
Joel_J
28

Après des heures de lutte avec ce problème, je suis tombé sur une solution qui a fonctionné pour moi:

Dans SSDT (2012), j'avais à l'origine défini mes unités de mise en page / page sur Centimètres. Quand j'ai changé cela en pouces, étrangement, j'ai pu exporter mon rapport au format PDF sans que toutes les autres pages soient vides.

entrez la description de l'image ici

sion_corn
la source
Cela a parfaitement fonctionné pour moi. Changer les pouces en Cm fonctionnera ou vice versa, mais il n'est pas nécessaire de coller sur le Cm. Une autre chose est la nécessité de définir des marges d'au moins 1 cm, puis le rapport est généré sans page vide supplémentaire.
Ravi Shankar
21

Il est préférable de le faire sur l'aire de conception ( Visual Studio 2012 est affiché mais peut être fait dans d'autres versions ) avant de calculer les mathématiques lors de la modification d'un document SSRS.

Sous les nombres suivants dans les cercles rouges qui correspondent aux étapes suivantes:

  1. Dans l'aire de conception, parfois l'éditeur crée un page qui est plus grand que les contrôles réels; d'où la zone fantôme imprimée.
  2. Redimensionnez les commandes. Regardez visuellement la largeur / hauteur et voyez si vous ne pouvez pas faire apparaître la page sur la surface de conception pour la dimensionner à l'espace réellement nécessaire par les contrôles et pas plus.
  3. Essayez ensuite de créer un PDF et voyez si cela le corrige.
  4. Si # 3 ne résout pas le problème, il existe des contrôles nécessitant trop de la taille réelle de la page et dépassant en longueur / largeur. Il faudra donc réduire la taille des contrôles pour s'adapter à une taille de page plus petite.

Étapes pour corriger manuellement


Dans certaines circonstances, il est également possible de modifier une propriété de la page de rapport en définissant ConsumeContainerWhitespacesur truepour consommer automatiquement les espaces.

ΩmegaMan
la source
2
Je vous remercie! Je savais que cela devait être plus simple que de passer par des nombres et de faire des mathématiques. Je ne savais pas qu'il imprimait des espaces blancs simplement parce que le corps du rapport était si grand.
Tor
Définir ConsumeContainerWhitespace sur true l'a fait pour moi. J'avais déjà nettoyé mes largeurs de rapport, de corps et de table
Jon Dosmann
18

Le problème pour moi était que SSRS traite exprès votre espace blanc comme si vous vouliez qu'il soit honoré:

entrez la description de l'image ici

En plus de l'espace blanc, assurez-vous qu'il n'y a pas de marge droite.

Jeremy Thompson
la source
1
Salut @ jeremy-thompson, votre conseil est très pratique. Santé
Andy K
1
La suppression de la marge droite a fonctionné pour moi et n'a pas affecté le rendu dans la visionneuse de rapports Web ou au format PDF.
andrej351
1
5 ans plus tard, c'était pour moi.
MPJ567
17

Si les pages vides proviennent de SSRS, vous devez modifier la présentation de votre rapport. Ce sera beaucoup plus efficace que d'exécuter la sortie et le post-traitement pour réparer les effets secondaires d'un problème de mise en page.

SSRS est très capricieux quand il s'agit de repousser les limites des marges. Il est facile d'élargir / d'allonger accidentellement le rapport simplement en ajustant la zone de texte ou tout autre contrôle sur le rapport. Vérifiez soigneusement les propriétés de largeur et de hauteur de la surface du rapport et pressez-les autant que possible. Attention aux grands en-têtes et pieds de page.

HectorMac
la source
5

En plus des marges, le problème le plus courant de loin, j'ai également vu deux possibilités supplémentaires:

  1. Utilisation +pour concaténer du texte. Vous devez utiliser à la &place.
  2. Texte dépassant la largeur de la zone de texte spécifiée. Donc, si votre zone de texte ne contient que 30 caractères et que vous essayez d'en entasser 300, vous pourriez vous retrouver avec des pages supplémentaires.
Joshua Drake
la source
5

Je travaille avec SSRS depuis plus de 10 ans et les réponses ci-dessus sont les réponses incontournables. MAIS. Si rien ne fonctionne et que vous êtes complètement bourré ... supprimez les éléments du rapport jusqu'à ce que le problème disparaisse. Une fois que vous avez identifié la ligne ou l'élément de rapport à l'origine du problème, placez-le dans un conteneur rectangulaire. C'est tout. Cela nous a aidés plusieurs fois! Les pages supplémentaires sont principalement causées par des éléments de rapport passant par la marge de droite. Lorsque tout le reste échoue, mettre des choses à l'intérieur d'un rectangle ou d'un rectangle vide à droite d'un élément peut empêcher cela de se produire. Bonne chance!

LucasF
la source
Cela a fonctionné pour moi.en ajoutant une colonne vide supplémentaire dans le tableau, mon rapport au format pdf n'affiche pas les pages vierges supplémentaires ..!
luciole
4

Avez-vous essayé de voir s'il y a un espace blanc à droite de votre rapport? Si tel est le cas, vous pouvez le faire glisser à la fin de votre rapport, puis faire glisser l'arrière-plan du rapport au même endroit.

user2585349
la source
4

Sous l'onglet Propriétés du rapport (myReport.rdlc), remplacez l'attribut "Keep Together" par False. Je me bats avec ce problème depuis un certain temps et cela semble avoir résolu mon problème. entrez la description de l'image ici

Omar
la source
2

Si votre rapport comprend un sous-rapport, la largeur du sous-rapport pourrait repousser les limites du corps si le sous-rapport et la hiérarchie sont autorisés à croître. J'ai eu un problème similaire avec un sous-rapport qui pourrait être placé dans une cellule (s'étendant sur 2 colonnes). Il semblait que l'envergure pouvait le contenir dans le concepteur et il s'affichait correctement dans un winform ou un navigateur et, à l'origine, il pouvait générer une sortie d'imprimante (ou un fichier pdf) sans déborder sur les pages excédentaires.
Ensuite, après avoir modifié d'autres largeurs de colonne (et sans dépasser la largeur du corps plus les marges), les rendus de Winform et du navigateur semblaient toujours bien, mais lorsque la sortie (imprimante ou pdf) était générée, elle dépassait les marges et écrivait le côté droit de chaque page comme 2e (4e, etc.) page. Je pouvais éliminer mon problème en augmentant le colspan où le sous-rapport était placé.
Que vous utilisiez ou non des sous-rapports, si vous avez un débordement de page et que la conception de votre corps s'inscrit dans les marges de la page, recherchez quelque chose autorisé à se développer qui repousse la largeur du corps.

Bill1260231
la source
2

J'ai récemment hérité d'un rapport dont j'avais besoin pour apporter quelques modifications. Après avoir suivi toutes les recommandations ci-dessus, cela n'a pas aidé. Historiquement, le rapport avait cette page supplémentaire, et personne ne pouvait comprendre pourquoi.

J'ai fait un clic droit sur le tablix et les propriétés sélectionnées. Une case à cocher a été cochée pour indiquer l'ajout d'un saut de page après. Après avoir supprimé cela, il s'imprime sur une page maintenant.

entrez la description de l'image ici

crh225
la source
-3

J'ai utilisé avec succès pdftk pour supprimer les pages dont je ne voulais pas / dont j'avais besoin dans pdfs. Vous pouvez télécharger le programme ici

Vous pourriez essayer quelque chose comme ce qui suit. Extrait d' ici sous des exemples

Supprimez la page 13 de in1.pdf pour créer out1.pdf pdftk in.pdf cat 1-12 14-end output out1.pdf

ou:

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

vinc456
la source