2009-01-09 10 views
27

J'ai un rapport RDLC et je l'affiche sur le contrôle Report Viewer dans mon application frontale. Je suis capable de voir le rapport parfaitement.Comment limiter le rapport RDLC pour une page dans un fichier PDF?

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

J'imprime le rapport en 3 pages alors que mon client le souhaite en une seule page. Je n'arrive pas à comprendre la raison pour laquelle, dans mon visualiseur de rapports, je ne vois qu'une page, mais dans un fichier PDF il y a 3 pages.

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

Répondre

2

Si quelqu'un d'autre rencontre ce problème et se retrouve ici, il est très probable que ce soit un problème avec vos marges. Si les marges ne sont pas correctement définies, vous obtiendrez souvent des pages "supplémentaires" qui apparaîtront lorsque vous essaierez d'imprimer, tandis que lorsque vous visualiserez le document, tout ira bien.

69

La réponse est assez similaire à ce que dit Dugan, mais ce n'est pas toujours juste les marges. Il 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 Propriétés. Ici, vous verrez une propriété "Taille". Cela peut être étendu pour la largeur et la hauteur. La largeur que vous voyez ici représente la largeur que le corps de votre rapport nécessite comme zone imprimable. Même si vous avez des espaces blancs partout, la page sait qu'elle doit être conservée 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 croître ou rétrécir si nécessaire, à moins que vous n'en ayez spécifié autrement dans vos commandes. Donc, la largeur est ce qui, habituellement, joue 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, en gros la zone grise autour de la conception), puis appuyez sur F4 pour afficher le panneau des propriétés. Sous la catégorie "Mise en page" des propriétés, vous verrez 3 options différentes: InteractiveSize, Marges, PageSize. Chacun de ces attributs de taille peut être développé pour afficher la largeur et la hauteur. L'attribut Marges peut être étendu pour la gauche/droite/haut/bas. Fondamentalement, l'exportation pdf fonctionne à partir de PageSize (bien que j'essaie généralement de garder l'égalité et la taille de la page égale). Lorsque le fichier pdf est rendu via la fonction d'exportation intégrée du ReportViewer, la largeur et la hauteur de chaque "page" du pdf seront déterminées par la largeur et la hauteur de l'attribut PageSize du rapport (vous pouvez le remplacer si vous avez code personnalisé pour le rendu pdf). Quant aux marges, elles spécifient combien d'espace DOIT être laissé vide et non imprimable entre la zone imprimable réservée pour 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 du PageSize du rapport! Par conséquent, si vos marges sont trop larges ou si le corps de votre rapport est trop large ou si la largeur de la page est trop étroite, le résultat rendu doit être divisé en plusieurs pages afin de 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 le PageSize est de 8,5", mon rapport utilisera toujours 2 pages pour chaque 1 page de données. La largeur de 7,75 "du corps, plus 0,5" + 0,5 "pour les marges s'ajoutent à 8,75", ce qui est plus grand que le 8,5 "disponible dans ma page.5 "(ou plus) de chaque page du corps de mon rapport sera affiché dans la première page, et le reste sera divisé à la page suivante.Cela ne sera pas fait dans le visualiseur de rapport, car il permet au rapport de agrandir la page au-delà de la taille de la page en ajoutant simplement une barre de défilement, mais cela sera très gênant dans l'export PDF Pour que mon exemple figure dans une page, je peux soit essayer de réduire le corps de mon rapport à 7.5 "ou moins, ou je peux réduire les marges gauche et 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 le PageSize à quelque chose de plus de 8,75". Remarque: Acrobat Reader est très intelligent et connaît différentes tailles de papier. Par conséquent, alors que PageSizes arbitraire fonctionne, 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 le PageSize ait Width = 11 "et Height = 8.5", ce qui est une vraie taille de lettre dans le paysage! Adobe le comprend généralement et imprime correctement. Remarque: Certaines imprimantes, en particulier les plus anciennes, ont des problèmes d'impression avec des marges de moins de 0.3 "Si vous voulez être gentil avec vos utilisateurs, mieux vaut garder les marges assez grandes pour ces anciennes imprimantes;)

I espérons que cette aide

+2

Bonne explication. Solution limpide. – JPReddy

+0

Des mots magiques Paris, merci beaucoup, m'a sauvé des heures! –

+0

J'ai utilisé cette réponse pour corriger mes rapports ayant le même problème, mais tenez également compte du fait que si vous avez un pied de page ou un en-tête, ils ne vont pas dans les marges ... donc si le mode paysage est 11x8.5 et 1 les marges tout autour, vous avez vraiment 9 x 6.5 pour travailler avec. Si votre pied de page est de 0,5 po de hauteur, maintenant vous travaillez avec 9 x 6. Si votre entête est de 0,5 po de hauteur, maintenant vous travaillez avec 9 x 5,5. Garde cela à l'esprit! –

6

toujours maintenir la largeur du corps:. 7.5 ou moins

gauche, largeur droite marge inférieure à 0,5 Régler la largeur de la marge première -> goto menu principal Rapports-> Rapport Propriétés-> Format-> changement marge de gauche et marge de droite

Largeur totale de la page: 8.5

Ramana

+0

vs par défaut devrait avoir ces choses setuo –

2

addtion à regarder dans vos largeurs, je l'ai trouvé d'autres choses sans rapport qui peuvent causer page supplémentaire vide dans le PDF.

Si le tableau matriciel contient un champ avec retour à la ligne, cela peut le provoquer. Vous pourriez vouloir réduire la taille de la police si vous avez des données longues. Faire 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 pourriez avoir à 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 croître sans que vous le sachiez lorsque vous modifiez la mise en page. Vous devrez peut-être le faire retomber.

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