web-dev-qa-db-fra.com

Comment limiter le rapport RDLC pour une page dans un PDF?

J'ai un rapport RDLC et je l'affiche sur le contrôle de la visionneuse de rapports dans mon application frontale. Je suis en mesure de visualiser parfaitement le rapport.

Mais le problème se pose lorsque j'essaye d'exporter le rapport vers un PDF (en utilisant l'option intégrée).

J'imprime le rapport en 3 pages alors que mon client souhaite qu'il soit en une seule page. Je ne peux pas en comprendre la raison car dans ma visionneuse de rapports, je ne vois qu'une page mais dans un PDF il y a 3 pages.

Puis-je faire quelque chose pour que je puisse contrôler la taille du rapport?

28
Arvind

La réponse est assez similaire à ce que Dugan a dit, mais ce n'est pas toujours juste les marges. C'est assez simple cependant:

Lorsque vous éditez le fichier rdlc en mode conception, cliquez d'abord sur une partie vide de la zone BODY de votre conception. Appuyez sur F4 pour voir l'onglet des propriétés. Ici, vous verrez une propriété "Size". Cela peut être étendu pour la largeur et la hauteur. La largeur que vous voyez ici représente la largeur requise par le corps de votre rapport comme zone imprimable. Même si vous avez un espace blanc partout, la page sait qu'elle doit la conserver en tant que zone imprimable. Il réserve l'espace, dans un certain sens. En ce qui concerne la hauteur, le système sait généralement qu'il peut s'agrandir ou rétrécir selon les besoins, à moins que vous n'ayez spécifié le contraire dans vos commandes. La largeur est donc ce qui jouera généralement le rôle le plus important.

Ensuite, cliquez sur une zone vide du rapport (en dehors de l'en-tête, du corps et du pied de page; essentiellement la zone grise autour de la conception), puis appuyez sur F4 pour afficher le panneau des propriétés. Dans la catégorie "Mise en page" des propriétés, vous verrez 3 options différentes: InteractiveSize, Margins, PageSize. Chacun de ces attributs de taille peut être développé pour afficher la largeur et la hauteur. L'attribut Margins peut être développé pour la gauche/droite/haut/bas.

Fondamentalement, l'exportation au format PDF fonctionne à partir de la taille de la page (bien que j'essaie généralement de garder la taille de la page interactive et de la page égale). Lorsque le fichier pdf est rendu via la fonction d'exportation intégrée de ReportViewer, la largeur et la hauteur de chaque "page" dans le pdf seront déterminées par la largeur et la hauteur de l'attribut PageSize du rapport (vous pouvez remplacer cela si vous avez utilisé votre propre code personnalisé pour le rendu pdf). Quant aux marges, elles précisent combien d'espace DOIT être laissé vide et non imprimable entre la zone imprimable réservée à votre rapport et le bord de la page.

En d'autres termes: la largeur du corps de votre rapport, plus la marge gauche du rapport, plus la marge droite du rapport, DOIT être inférieure ou égale à la largeur de pageSize du rapport!

Donc ... si vos marges sont trop larges, ou si le corps de votre rapport est trop large, ou si la largeur de PageSize est trop étroite, le résultat rendu est forcé d'être décomposé en plusieurs pages pour s'adapter!

Par exemple: si le corps de mon rapport a une largeur de 7,75 ", ma marge de gauche est de 0,5", ma marge de droite est de 0,5 "et la largeur spécifiée dans PageSize est de 8,5", mon rapport utilisera toujours 2 pages pour chaque page de données . Les 7,75 "de largeur du corps, plus 0,5" +0,5 "pour les marges ajoutent jusqu'à 8,75", ce qui est plus grand que les 8,5 "disponibles sur ma page. Donc, le premier 7,5" (environ) de chaque page de mon rapport Le corps sera affiché dans la première page, et le reste sera divisé à la page suivante. Cela ne sera pas fait dans la visionneuse de rapport, car cela permet au rapport de dépasser la taille de la page en ajoutant simplement une barre de défilement, mais cela sera perceptible de manière ennuyeuse dans l'exportation PDF. Pour que mon exemple de rapport tienne sur 1 page, je peux essayer de réduire le corps de mon rapport à 7,5 "ou moins, ou je peux réduire les marges gauche et droite d'un total de 0,25" ou plus (par exemple, définissez-les sur 0,3 "pour une réduction totale de 0,4"), ou je peux augmenter la taille de page à quelque chose de plus grand que 8,75 ". Remarque: Acrobat Reader est assez intelligent et connaît différents formats de papier. Par conséquent, même si des tailles de page arbitraires fonctionnent, il Il est généralement préférable d'utiliser des tailles de page réelles. En tant que tel, dans mon dernier exemple, je préfère définir la taille de la page sur une largeur = 11 "et une hauteur = 8,5", qui est une vraie taille de lettre dans le paysage! Adobe comprendra généralement cela et Imprimez correctement. Remarque également: certaines imprimantes, en particulier les plus anciennes, ont des problèmes d'impression avec des marges inférieures à 0,3 ". Si vous voulez être gentil avec vos utilisateurs, vous devriez mieux garder les marges suffisamment grandes pour ces imprimantes plus anciennes;)

J'espère que ça aide.

72
Paris

Maintenez toujours la largeur du corps: 7,5 ou moins

Largeur de la marge gauche, droite inférieure à 0,5 Définissez d'abord la largeur de la marge -> aller au menu principal Rapports-> Propriétés du rapport-> Disposition-> modifier la marge gauche et la marge droite

Largeur totale de la page: 8,5

Ramana

6
Ramana

En plus de regarder vos largeurs, j'ai trouvé d'autres choses non liées qui peuvent causer une page vierge supplémentaire dans le PDF.

Si le tableau matriciel contient un champ avec Word wrap, cela peut en être la cause. Vous souhaiterez peut-être réduire la taille de la police si vous disposez de données longues. Rendez la propriété de taille de police égale à quelque chose comme ceci:

  =iif(len(Fields!RepGroupName.Value) > 25, "6pt","8pt")

Une autre chose que vous devrez peut-être faire. Et cela m'a aidé quand je n'avais aucune raison apparente pour la page supplémentaire. Dans la page de propriétés du rapport, définissez: ConsumeContainerWhitespace = true

Encore une autre chose à surveiller. La taille du corps peut augmenter sans que vous le sachiez tout en apportant des modifications à la mise en page. Vous devrez peut-être le faire tomber à nouveau.

Ce problème est très ennuyeux pour l'utilisateur final s'il n'est pas résolu et ennuyeux à résoudre.

3
user985595

Si quelqu'un d'autre rencontre ce problème et se retrouve ici, c'est probablement un problème avec vos marges. Si les marges ne sont pas correctement définies, vous obtiendrez souvent des pages "supplémentaires" qui s'affichent lorsque vous essayez d'imprimer, alors que lorsque vous affichez le document, tout va bien.

2
Dugan