コード例 #1
0
ファイル: MainPage.xaml.cs プロジェクト: yuuya45/codezine
        private async void PdfButton_Click(object sender, RoutedEventArgs e)
        {
            // 現在、FlexGrid に表示されている順のデータ
            var currentData = this.flexgrid1.Rows.Select(r => r.DataItem).Cast <Book>();

            // FlexReportの定義を読み込む
            var rpt = new C1FlexReport();

            using (var stream = File.OpenRead("Assets/BooksReport.flxr"))
                rpt.Load(stream, "BooksReport");
            // データを連結
            rpt.DataSource.Recordset = currentData.ToList(); // IEnumerable<T>は不可
            // レポートを生成
            await rpt.RenderAsync();

            // 印刷する場合
            //await rpt.ShowPrintUIAsync();

            // PDF ファイルに直接保存する場合
            var picker = new FileSavePicker()
            {
                SuggestedStartLocation = PickerLocationId.DocumentsLibrary
            };

            picker.FileTypeChoices.Add("PDF ファイル", new string[] { ".pdf", });
            picker.SuggestedFileName = "BarCodeControlSample";
            var file = await picker.PickSaveFileAsync();

            if (file != null)
            {
                // 出力先となる PdfFilter オブジェクトを作成
                var filter = new PdfFilter();
                filter.StorageFile = file;
                // Windows Forms 等では、filter.FileName = file.Path; とする

                // ファイルへ出力
                await rpt.RenderToFilterAsync(filter);
            }
        }