Exemplo n.º 1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="T:Dt.Pdf.BaseObject.PdfStream" /> class.
        /// </summary>
        /// <param name="filter">The filter.</param>
        public PdfStream(PdfFilter filter)
        {
            this.data = new MemoryStream();
            PdfDictionary dictionary = new PdfDictionary {
                IsLabeled = false,
                IsFix     = true
            };

            this.properties = dictionary;
            if (filter == null)
            {
                throw new PdfArgumentNullException("filter");
            }
            this.Filters.Enqueue(filter);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Write Pdf object to Pdf writer
        /// </summary>
        /// <param name="writer">Pdf Writer</param>
        public override void ToPdf(PdfWriter writer)
        {
            MemoryStream data = this.data;

            if ((this.filters != null) && (this.filters.Count > 0))
            {
                data = new MemoryStream();
                this.data.WriteTo(data);
                PdfArray array = new PdfArray();
                while (this.filters.Count > 0)
                {
                    using (MemoryStream stream2 = new MemoryStream())
                    {
                        data.Seek(0L, SeekOrigin.Begin);
                        data.WriteTo(stream2);
                        stream2.Seek(0L, SeekOrigin.Begin);
                        data.Dispose();
                        data.Dispose();
                        data = new MemoryStream();
                        PdfFilter filter = this.filters.Dequeue();
                        filter.Encode(stream2, data, null);
                        array.Insert(0, filter.GetName());
                        continue;
                    }
                }
                if (array.Count == 1)
                {
                    this.properties.Add(PdfName.Filter, array[0]);
                }
                else
                {
                    this.properties.Add(PdfName.Filter, array);
                }
            }
            this.properties[PdfName.Length] = new PdfNumber((double)data.Length);
            PdfStreamWriter psw = writer.Psw;

            this.properties.ToPdf(writer);
            psw.WriteLineEnd();
            psw.WriteBytes(streamPrefix).WriteLineEnd();
            data.WriteTo(psw.Stream);
            psw.WriteLineEnd().WriteBytes(streamSuffix);
            psw.WriteLineEnd();
            if (data != this.data)
            {
                data.Dispose();
            }
        }
Exemplo n.º 3
0
        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);
            }
        }
        private async void btnSave_Click(object sender, RoutedEventArgs e)
        {
            FileSavePicker savePicker = new FileSavePicker();

            savePicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;
            savePicker.FileTypeChoices.Add(Strings.PdfFile, new List <string>()
            {
                ".pdf"
            });
            savePicker.DefaultFileExtension = ".pdf";
            StorageFile file = await savePicker.PickSaveFileAsync();

            if (file != null)
            {
                var pdf = new C1PdfDocument(PaperKind.Custom);
                pdf.ConformanceLevel = PdfAConformanceLevel.PdfA2b;
                var layout = rtb.ViewManager.PresenterInfo as C1PageLayout;
                PdfFilter.PrintDocument(rtb.Document, pdf, layout.Padding);
                await pdf.SaveAsync(file);

                MessageDialog dlg = new MessageDialog(Strings.SaveMessage + file.Path, Strings.RtbSample);
                await dlg.ShowAsync();
            }
        }
Exemplo n.º 5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="T:PdfVersionDependStream" /> class.
 /// </summary>
 /// <param name="filter">The filter.</param>
 public PdfVersionDependStream(PdfFilter filter) : base(filter)
 {
 }
Exemplo n.º 6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RenderPageAction"/> class.
 /// </summary>
 /// <param name="reader">
 /// The reader.
 /// </param>
 /// <param name="stamper">
 /// The stamper.
 /// </param>
 /// <param name="filter">
 /// The filter.
 /// </param>
 /// <param name="render">
 /// The render.
 /// </param>
 public RenderPageAction(PdfReader reader, PdfStamper stamper, PdfFilter filter, IPdfRender render)
     : base(reader, stamper, filter)
 {
     this.render = render;
 }