天天看點

arcgis開發筆記【列印】

從網上找了一些關于asp.net列印的資料,參考“關于Web列印”,參考

<a href="http://cid-56b433ad3d1871e3.skydrive.live.com/self.aspx/.Public/%E5%85%B3%E4%BA%8EWEB%E6%89%93%E5%8D%B0.docx">http://cid-56b433ad3d1871e3.skydrive.live.com/self.aspx/.Public/%e5%85%b3%e4%ba%8eWEB%e6%89%93%e5%8d%b0.docx</a>

最後選擇了使用ReportViewer實作列印功能

實作思路:

silveilight程式中把頁面中需要列印的對象轉換成圖形base64編碼的字元流,送出到服務端

服務端處理程式把這些二進制字元流邦定到ReportViewer控件上,然後由ReportViewer實作列印的展現功能,具體如下:

<b>HOST silverlight</b><b>的頁面</b>

<b>SilverLight</b><b>送出列印請求</b>

  <b>列印頁面和處理邏輯:</b>

<b>print .RDLC</b><b>檔案</b>

&lt;?xml version="1.0" encoding="utf-8"?&gt;

&lt;Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner"&gt;

&lt;DataSources&gt;

&lt;DataSource Name="DummyDataSource"&gt;

&lt;rd:DataSourceID&gt;6dde20a2-6fdf-4054-a23d-0135e6a9e8a4&lt;/rd:DataSourceID&gt;

&lt;ConnectionProperties&gt;

&lt;DataProvider&gt;SQL&lt;/DataProvider&gt;

&lt;ConnectString /&gt;

&lt;/ConnectionProperties&gt;

&lt;/DataSource&gt;

&lt;/DataSources&gt;

&lt;InteractiveHeight&gt;11in&lt;/InteractiveHeight&gt;

&lt;rd:DrawGrid&gt;true&lt;/rd:DrawGrid&gt;

&lt;InteractiveWidth&gt;8.5in&lt;/InteractiveWidth&gt;

&lt;rd:SnapToGrid&gt;true&lt;/rd:SnapToGrid&gt;

&lt;RightMargin&gt;1in&lt;/RightMargin&gt;

&lt;LeftMargin&gt;1in&lt;/LeftMargin&gt;

&lt;BottomMargin&gt;1in&lt;/BottomMargin&gt;

&lt;rd:ReportID&gt;66b0e21f-4a8d-4b4e-b652-d28cb44e05e4&lt;/rd:ReportID&gt;

&lt;DataSets&gt;

&lt;DataSet Name="DSReportPrintImage_ImageData"&gt;

&lt;Fields&gt;

&lt;Field Name="ImageId"&gt;

&lt;DataField&gt;ImageId&lt;/DataField&gt;

&lt;rd:TypeName&gt;System.Int32&lt;/rd:TypeName&gt;

&lt;/Field&gt;

&lt;Field Name="ImageName"&gt;

&lt;DataField&gt;ImageName&lt;/DataField&gt;

&lt;rd:TypeName&gt;System.String&lt;/rd:TypeName&gt;

&lt;Field Name="ImageBytes"&gt;

&lt;DataField&gt;ImageBytes&lt;/DataField&gt;

&lt;rd:TypeName&gt;System.Byte[]&lt;/rd:TypeName&gt;

&lt;/Fields&gt;

&lt;Query&gt;

&lt;DataSourceName&gt;DummyDataSource&lt;/DataSourceName&gt;

&lt;CommandText /&gt;

&lt;rd:UseGenericDesigner&gt;true&lt;/rd:UseGenericDesigner&gt;

&lt;/Query&gt;

&lt;rd:DataSetInfo&gt;

&lt;rd:DataSetName&gt;DSReportPrintImage&lt;/rd:DataSetName&gt;

&lt;rd:TableName&gt;ImageData&lt;/rd:TableName&gt;

&lt;/rd:DataSetInfo&gt;

&lt;/DataSet&gt;

&lt;/DataSets&gt;

&lt;Width&gt;6.5in&lt;/Width&gt;

&lt;Body&gt;

&lt;ReportItems&gt;

&lt;List Name="list1"&gt;

&lt;Left&gt;0.125in&lt;/Left&gt;

&lt;DataSetName&gt;DSReportPrintImage_ImageData&lt;/DataSetName&gt;

&lt;Image Name="image1"&gt;

&lt;Sizing&gt;AutoSize&lt;/Sizing&gt;

&lt;Top&gt;0.125in&lt;/Top&gt;

&lt;Width&gt;5.875in&lt;/Width&gt;

&lt;MIMEType&gt;image/png&lt;/MIMEType&gt;

&lt;Source&gt;Database&lt;/Source&gt;

&lt;Style /&gt;

&lt;Height&gt;1.625in&lt;/Height&gt;

&lt;Value&gt;=Fields!ImageBytes.Value&lt;/Value&gt;

&lt;/Image&gt;

&lt;/ReportItems&gt;

&lt;Width&gt;6.125in&lt;/Width&gt;

&lt;Height&gt;1.875in&lt;/Height&gt;

&lt;/List&gt;

&lt;Height&gt;2in&lt;/Height&gt;

&lt;/Body&gt;

&lt;Language&gt;en-US&lt;/Language&gt;

&lt;TopMargin&gt;1in&lt;/TopMargin&gt;

&lt;/Report&gt;