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

j'ai un rapport RDLC et je l'affiche sur la commande de visionneuse de rapport dans mon application front end. Je suis en mesure d'afficher le rapport de la perfection.

mais le problème se pose quand j'essaie 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 veut qu'il soit en une seule page. Je n'arrive pas à comprendre la raison de cela car dans mon report viewer Je ne vois qu'une page mais dans un PDF il y a 3 pages.

Peut que faire pour que je puisse contrôler la taille du rapport?

27
demandé sur Ryan Gates 2009-01-09 14:19:54

4 réponses

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

lorsque vous éditez le fichier rdlc en mode design, cliquez tout d'abord sur une partie vide de la zone BODY de votre design. Cliquez sur F4 pour voir l'onglet Propriétés. Ici, vous verrez une propriété "taille". Elle peut être élargie pour la largeur et la hauteur. La largeur que vous voyez ici représente la largeur que le corps de votre rapport exige comme zone imprimable. Même si vous avez espace blanc partout, la page sait qu'elle a besoin de le garder comme une 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'elle peut croître ou rétrécir au besoin, à moins que vous n'ayez spécifié le contraire dans vos commandes. Donc la largeur est ce qui, habituellement, jouera le rôle le plus important.

ensuite, cliquez sur une zone vide du rapport (à l'extérieur 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. Sous la catégorie" Layout " des propriétés, Vous verrez 3 options différentes: InteractiveSize, Marge, PageSize. Chacun de ces attributs de taille peut être élargi pour montrer la largeur et la hauteur. L'attribut "marges" peut être étendu pour la gauche/droite/Haut/Bas.

fondamentalement, l'exportation de pdf fonctionne hors de la PageSize (bien que j'essaie généralement de garder Interactive et la taille de Page égale). Lorsque le fichier pdf est rendu via L'export intégré de ReportViewer fonction, la largeur et la hauteur de chaque "page" dans le pdf seront déterminées par la largeur et la hauteur dans l'attribut PageSize du rapport (vous pourriez outrepasser ceci si vous avez utilisé votre propre code personnalisé pour le rendu pdf). En ce qui concerne les 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 le rapport Marge de droite, doit être inférieure ou égale à la largeur de la page du rapport!

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

par exemple: si le corps de mon rapport a une largeur de 7.75", ma marge gauche est de 0.5", mA marge droite est de 0.5", et la largeur spécifiée dans la page est de 8.5", mon rapport utilisera toujours 2 pages pour chaque 1 page de données. La largeur du corps de 7.75", plus 0.5"+0.5" pour les marges totalisent 8.75", ce qui est plus grand que le 8.5" disponible dans ma page. Donc, la première 7.5" (ou si) de chaque page de mon rapport du corps sera montré dans la première page, et le reste est partagé à la page suivante. Cela ne sera pas fait à l'intérieur du lecteur de rapport, car il permet au rapport de dépasser la taille de la page en ajoutant simplement une barre de défilement, mais il sera péniblement perceptible dans l'exportation pdf. Afin faites mon exemple de rapport en 1 page, je peux soit essayer de réduire le corps de mon rapport à 7,5" ou moins, ou je peux réduire les marges de gauche et de droite par un total de 0,25" ou plus (par exemple, les mettre à 0,3" pour une réduction totale de 0,4"), ou je peux augmenter la page à quelque chose de plus grand que 8,75". Note: Acrobat Reader est assez intelligent et connaît les différentes tailles de papier. Par conséquent, alors que les PageSizes arbitraires fonctionneront, 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érerais que la PageSize ait une largeur de 11 po et une hauteur de 8,5 po, ce qui est une vraie taille-lettre dans landscape! Adobe comprendra généralement cela et imprimera correctement. Note: certaines imprimantes, en particulier les plus anciennes, ont des difficultés à imprimer avec des marges inférieures à 0,3". Si vous voulez être gentil avec vos utilisateurs, vous devriez garder les marges assez grandes pour ces vieilles imprimantes ;)

j'espère que cela aidera.

70
répondu 2009-06-25 20:08:01

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

aller au menu principal rapports - >propriétés des rapports - > mise en page - > Modifier la marge de gauche et la marge de droite

largeur totale de la page: 8.5

Ramana

6
répondu 2009-08-20 09:14:01

dans le cas où quelqu'un d'autre se heurte à ce problème et finit ici, c'est très probablement un problème avec vos marges. Si les marges sont mal définies, vous obtiendrez souvent des pages "supplémentaires" qui apparaissent lorsque vous tentez d'imprimer, alors que lorsque vous visualisez le document, tout va bien.

2
répondu Dugan 2009-03-19 20:05:10

en plus de regarder vos largeurs, j'ai trouvé d'autres choses sans rapport qui peuvent causer la page blanche supplémentaire dans le PDF.

si le tablix a n'importe quel champ avec le mot wrap, cela peut en être la cause. Vous pourriez vouloir rendre la police plus petite si vous avez des données longues. Faites la propriété font size égale à quelque chose comme ceci:

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

autre chose que vous pourriez avoir à faire. Et cela m'a aidé quand je n'avais aucune raison apparente pour la page supplémentaire. Dans la page Report property, 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 disposition. Vous pourriez avoir à le frapper vers le bas encore.

Ce problème est très gênant pour l'utilisateur final si ce n'est pas résolu et ennuyeux comme diable pour nous de résoudre.

2
répondu user985595 2011-10-15 17:27:45