Beispiel #1
0
        /// <summary>
        /// Sets the form in the state FormState.Finished.
        /// </summary>
        internal virtual void Finish()
        {
#if GDI
            if (_formState == FormState.NotATemplate || _formState == FormState.Finished)
            {
                return;
            }

            if (Gfx.Metafile != null)
            {
                _gdiImage = Gfx.Metafile;
            }

            Debug.Assert(_formState == FormState.Created || _formState == FormState.UnderConstruction);
            _formState = FormState.Finished;
            Gfx.Dispose();
            Gfx = null;

            if (PDFRenderer != null)
            {
                //pdfForm.CreateStream(PDFEncoders.RawEncoding.GetBytes(PDFRenderer.GetContent()));
                PDFRenderer.Close();
                Debug.Assert(PDFRenderer == null);

                if (_document.Options.CompressContentStreams)
                {
                    _pdfForm.Stream.Value        = Filtering.FlateDecode.Encode(_pdfForm.Stream.Value, _document.Options.FlateEncodeMode);
                    _pdfForm.Elements["/Filter"] = new PDFName("/FlateDecode");
                }
                int length = _pdfForm.Stream.Length;
                _pdfForm.Elements.SetInteger("/Length", length);
            }
#endif
#if WPF
#endif
        }