Blog Stats
  • Posts - 171
  • Articles - 1
  • Comments - 197
  • Trackbacks - 5

 

Generate PDF with predefinite page size with Reporting Services

Ogni report prodotto con Reporting Services può essere esportato in diversi formati grazie ai "renderer" resi disponibili da Reporting Services oppure alla possibilità di crearne di propri.

Il "renderer" si occupa di esportare nel proprio formato ciò che rappresenta il report disegnato tramite il Report Designer.

Il layout del report deve essere impostato in modo tale che le dimensioni rispecchino ciò che si vuole rendere stampabile, quindi se si sta producendo un report per un formato A4 è necessario iniziare il report impostando le dimensioni di paginazione dell' A4 nelle proprietà del report.

Non è però possibile dal designer di Reporting Services impostare le proprietà dei vari "renderer", come per esempio stabilire le dimensioni di  paginazione nel caso in cui il report debba essere generato in PDF.

Per esempio potremmo avere un report che occupa in larghezza ben più del classico A4(29,7cm), ma vogliamo che il PDF generato lo contenga tutto all'interno di un unica pagina in modalità landscape, mentre di default il PDF generato spezzetterebbe su più pagine verticali il report stesso.

Per ottenere questo un modo è quello di intervenire sulla configurazione del Report Server tramite la parametrizzazione di quelle che si chiamano Rendering Extension:

http://msdn.microsoft.com/en-us/library/ms156281.aspx

Nell'esempio  che ho citato sopra mi basterebbe introdurre una nuova Extension che estende la extension del PDF, ma con dei parametri diversi in modo tale che il PDF venga

generato con dimensioni di pagina specificati:

 

<Extension Name="PDFLandscape" Type="Microsoft.ReportingServices.Rendering.ImageRenderer.PdfReport,Microsoft.ReportingServices.ImageRendering">
<OverrideNames>
    <Name Language="it-IT">(Acrobat) PDF file in Landscape Mode</Name>
</OverrideNames>
<Configuration>
    <DeviceInfo>
        <OutputFormat>PDF</OutputFormat>
        <PageHeight>21cm</PageHeight>
        <PageWidth>50cm</PageWidth>
    </DeviceInfo>
</Configuration>
</Extension>

 

Ovviamente è anche possibile modificare l'extension prefedinità, ma cosi facendo modifichiamo il rendering per tutti i pdf esportati da questo server di reporting.

Da notare che ogni voce di extension aggiunta corrisponde ad una nuova voce che comparirà nella tendina di export visibile quando usufruiamo dei reports in modalità url.

del.icio.us Tags:

Comments have been closed on this topic.
 

 

Copyright © Luca Mauri