Beispiel #1
0
 private void OpenDdlClick(object sender, RoutedEventArgs e)
 {
     try
     {
         var dialog = new OpenFileDialog
         {
             CheckFileExists  = true,
             CheckPathExists  = true,
             Filter           = "MigraDoc DDL (*.mdddl)|*.mdddl|All Files (*.*)|*.*",
             FilterIndex      = 1,
             InitialDirectory = Path.GetFullPath(Path.Combine(GetProgramDirectory(), "..\\..\\..\\..\\assets\\ddl"))
         };
         //dialog.RestoreDirectory = true;
         if (dialog.ShowDialog() == true)
         {
             var document = DdlReader.DocumentFromFile(dialog.FileName);
             var folder   = Path.GetDirectoryName(dialog.FileName);
             Environment.CurrentDirectory = folder;
             var ddl = DdlWriter.WriteToString(document);
             Preview.Ddl = ddl;
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, Title);
         Preview.Ddl = null; // TODO has no effect
     }
     finally
     {
         //if (dialog != null)
         //  dialog.Dispose();
     }
     //UpdateStatusBar();
 }
        public MigraDocPrintDocument(string ddl)
            : this()
        {
            var document = DdlReader.DocumentFromString(ddl);

            _renderer = MakeRenderer(document);
        }
Beispiel #3
0
        private void OpenDDL_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog dialog = null;

            try
            {
                dialog = new OpenFileDialog();
                dialog.CheckFileExists  = true;
                dialog.CheckPathExists  = true;
                dialog.Filter           = "MigraDoc DDL (*.mdddl)|*.mdddl|All Files (*.*)|*.*";
                dialog.FilterIndex      = 1;
                dialog.InitialDirectory = System.IO.Path.Combine(GetProgramDirectory(), "..\\..");
                //dialog.RestoreDirectory = true;
                if (dialog.ShowDialog() == true)
                {
                    Document document = DdlReader.DocumentFromFile(dialog.FileName);
                    string   ddl      = DdlWriter.WriteToString(document);
                    preview.Ddl = ddl;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, Title);
                preview.Ddl = null; // TODO has no effect
            }
            finally
            {
                //if (dialog != null)
                //  dialog.Dispose();
            }
            //UpdateStatusBar();
        }
Beispiel #4
0
        private Document ClonedDocument()
        {
#if MIGRADOC132
            // Workaround for bug in Clone() implementation (fixed with PDFsharp 1.50 beta 2).
            var str    = DdlWriter.WriteToString(Document);
            var result = DdlReader.DocumentFromString(str);
            return(result);
#else
            return(Document.Clone());
#endif
        }
Beispiel #5
0
 private void button12_Click(object sender, System.EventArgs e)
 {
     if (this.tbxDdlFile.Text != "")
     {
         try
         {
             Document   doc        = DdlReader.DocumentFromFile(tbxDdlFile.Text);
             PdfPrinter pdfPrinter = new PdfPrinter();
             pdfPrinter.Document = doc;
             pdfPrinter.PrintDocument();
             pdfPrinter.PdfDocument.Save("egal.pdf");
             System.Diagnostics.Process.Start("egal.pdf");
         }
         catch (Exception exc)
         {
             MessageBox.Show(exc.Message);
         }
     }
 }
Beispiel #6
0
        private Document GetDocument()
        {
            var       s      = GetMDDLStream();
            var       errors = new DdlReaderErrors();
            DdlReader rd     = new DdlReader(s, errors);

            try
            {
                var doc = rd.ReadDocument();
                LogErrors(errors, null, s);
                ReportErrors(errors, null, s);
                return(doc);
            }
            catch (Exception ex)
            {
                LogErrors(errors, ex, s);
                ReportErrors(errors, ex, s);
                throw;
            }
        }
Beispiel #7
0
        private DocumentPreview createPreview(string devSerial, string devFilename)
        {
            if (prepareData(devSerial, devFilename) == false)
            {
                return(null);
            }

            Protocol protocol = prepareProtocol();

            if (protocol == null)
            {
                return(null);
            }

            // This renders the document; takes a while for big documents
            DocumentPreview preview = new DocumentPreview();

            preview.Document = DdlReader.DocumentFromString(protocol.GetDocumentDDL());

            return(preview);
        }
Beispiel #8
0
        /// <summary>
        /// Called when the Ddl property has changed.
        /// </summary>
        void DdlUpdated()
        {
            if (_ddl != null)
            {
                _document = DdlReader.DocumentFromString(_ddl);
                _renderer = new DocumentRenderer(_document);

                //this.renderer.PrivateFonts = this.privateFonts;
                _renderer.PrepareDocument();

                //IDocumentPaginatorSource source = this.documentViewer.Document;

                //IDocumentPaginatorSource source = this.documentViewer.Document;

                int pageCount = _renderer.FormattedDocument.PageCount;
                if (pageCount == 0)
                {
                    return;
                }

                // HACK: hardcoded A4 size
                //double pageWidth = XUnit.FromMillimeter(210).Presentation;
                //double pageHeight = XUnit.FromMillimeter(297).Presentation;
                //Size a4 = new Size(pageWidth, pageHeight);

                XUnit pageWidth, pageHeight;
                Size  size96 = GetSizeOfPage(1, out pageWidth, out pageHeight);

                FixedDocument fixedDocument = new FixedDocument();
                fixedDocument.DocumentPaginator.PageSize = size96;

                for (int pageNumber = 1; pageNumber <= pageCount; pageNumber++)
                {
                    try
                    {
                        size96 = GetSizeOfPage(1, out pageWidth, out pageHeight);

                        DrawingVisual  dv = new DrawingVisual();
                        DrawingContext dc = dv.RenderOpen();
                        //XGraphics gfx = XGraphics.FromDrawingContext(dc, new XSize(XUnit.FromMillimeter(210).Point, XUnit.FromMillimeter(297).Point), XGraphicsUnit.Point);
                        XGraphics gfx = XGraphics.FromDrawingContext(dc, new XSize(pageWidth.Point, pageHeight.Presentation), XGraphicsUnit.Point);
                        _renderer.RenderPage(gfx, pageNumber, PageRenderOptions.All);
                        dc.Close();

                        // Create page content
                        PageContent pageContent = new PageContent();
                        pageContent.Width  = size96.Width;
                        pageContent.Height = size96.Height;
                        FixedPage fixedPage = new FixedPage();
                        fixedPage.Background = new SolidColorBrush(System.Windows.Media.Color.FromRgb(0xFE, 0xFE, 0xFE));

                        UIElement visual = new DrawingVisualPresenter(dv);
                        FixedPage.SetLeft(visual, 0);
                        FixedPage.SetTop(visual, 0);

                        fixedPage.Width  = size96.Width;
                        fixedPage.Height = size96.Height;

                        fixedPage.Children.Add(visual);

                        fixedPage.Measure(size96);
                        fixedPage.Arrange(new Rect(new Point(), size96));
                        fixedPage.UpdateLayout();

                        ((IAddChild)pageContent).AddChild(fixedPage);

                        fixedDocument.Pages.Add(pageContent);
                    }
                    catch (Exception)
                    {
                        // eat exception
                    }

                    viewer.Document = fixedDocument;
                }
            }
            else
            {
                viewer.Document = null;
            }
        }
        public static async Task <HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "POST", Route = "Documents/RenderDdl")] HttpRequestMessage req, TraceWriter log)
        {
            PdfDocument         doc      = null;
            PdfDocumentRenderer renderer = null;
            string ddl = await req.Content.ReadAsStringAsync();

            //----------------------------------------------------------------------------------------------------------
            // Parse the DDL and render it to a PDF document object.
            await Task.Run(() =>
            {
                renderer = new PdfDocumentRenderer(true)
                {
                    Document = DdlReader.DocumentFromString(ddl)
                };
            });

            await Task.Run(() =>
            {
                renderer.RenderDocument();
                doc = renderer.PdfDocument;
            });

            //----------------------------------------------------------------------------------------------------------


            //----------------------------------------------------------------------------------------------------------
            // Save the rendered document to a byte array.
            byte[] buffer = null;
            using (var strm = new MemoryStream())
            {
                doc.Save(strm, false);
                strm.Position = 0;

                buffer = new byte[strm.Length];
                await strm.ReadAsync(buffer, 0, buffer.Length);
            }
            //----------------------------------------------------------------------------------------------------------

            var title = doc?.Info?.Title;

            if (string.IsNullOrEmpty(title))
            {
                title = "document";
            }

            title = System.Web.HttpUtility.UrlEncode(title);

            //----------------------------------------------------------------------------------------------------------
            // Construct the response from the generated byte array.

            var response = new HttpResponseMessage();

            try
            {
                response.Content = new ByteArrayContent(buffer);
                response.Content.Headers.ContentDisposition = ContentDispositionHeaderValue.Parse($"attachment; filename={title}.pdf");
                response.Content.Headers.ContentType        = new MediaTypeHeaderValue("application/pdf");
            }
            catch (Exception ex)
            {
                var msg = ex.Message;
            }
            //----------------------------------------------------------------------------------------------------------

            return(response);
        }