Excel, Word, PDF and PowerPoint dialogs

Does anyone know how to get all this in a C # application that takes the user to the print dialog screen? What I mean is this:
In the gui, the user selects a document, right click on the document, selects Print. Instead of immediately printing the document, the print dialog opens.

Does anyone know the syntax for all of this? I tried to use all hooks for MS Office applications and try printdialogue method ... but no such luck.

Can anyone provide me with the code? I've been doing it seriously for HOURS and can't think of anything.

0


a source to share


1 answer


Maybe take a look at previous Q&A questions: send-document-to-printer-with-C #

Or, for a WPF application that prints a FlowDocument:



    private void DoThePrint(System.Windows.Documents.FlowDocument document)
    {
        // Clone the source document content into a new FlowDocument.
        // This is because the pagination for the printer needs to be 
        // done differently than the pagination for the displayed page. 
        // We print the copy, rather that the original FlowDocument. 
        System.IO.MemoryStream s = new System.IO.MemoryStream();
        TextRange source = new TextRange(document.ContentStart, document.ContentEnd);
        source.Save(s, DataFormats.Xaml);
        FlowDocument copy = new FlowDocument();
        TextRange dest = new TextRange(copy.ContentStart, copy.ContentEnd);
        dest.Load(s, DataFormats.Xaml);

        // Create a XpsDocumentWriter object, implicitly opening a Windows common print dialog, 
        // and allowing the user to select a printer.

        // get information about the dimensions of the seleted printer+media. 
        System.Printing.PrintDocumentImageableArea ia = null;
        System.Windows.Xps.XpsDocumentWriter docWriter = System.Printing.PrintQueue.CreateXpsDocumentWriter(ref ia);

        if (docWriter != null && ia != null)
        {
            DocumentPaginator paginator = ((IDocumentPaginatorSource)copy).DocumentPaginator;

            // Change the PageSize and PagePadding for the document to match the CanvasSize for the printer device.
            paginator.PageSize = new Size(ia.MediaSizeWidth, ia.MediaSizeHeight);
            Thickness t = new Thickness(72);  // copy.PagePadding;
            copy.PagePadding = new Thickness(
                             Math.Max(ia.OriginWidth, t.Left),
                               Math.Max(ia.OriginHeight, t.Top),
                               Math.Max(ia.MediaSizeWidth - (ia.OriginWidth + ia.ExtentWidth), t.Right),
                               Math.Max(ia.MediaSizeHeight - (ia.OriginHeight + ia.ExtentHeight), t.Bottom));

            copy.ColumnWidth = double.PositiveInfinity;
            //copy.PageWidth = 528; // allow the page to be the natural with of the output device

            // Send content to the printer.
            docWriter.Write(paginator);
        }

    }

      

0


a source







All Articles