Esempio n. 1
0
        private static void _printmodel(ReceiptModel model)
        {
            var _visual = GetVisual(model);


            //var queue = new LocalPrintServer().DefaultPrintQueue;

            //Printer Assignment Fix by Amjad - 6/14
            var queue = new LocalPrintServer().GetPrintQueue(BaseAppUI.Properties.Settings.Default.POSMainPrinter);

            //queue.DefaultPrintTicket = new PrintTicket { PageMediaSize = new PageMediaSize(PageMediaSizeName.NorthAmericaNumber10Envelope) };

            //var defaultpapersize = queue.DefaultPrintTicket.PageMediaSize;
            var defaultpapersize = new PageMediaSize(279, 0);


            _visual.Measure(new Size(defaultpapersize.Width.Value, double.PositiveInfinity));
            _visual.Arrange(new Rect(_visual.DesiredSize));
            _visual.UpdateLayout();

            Size psize = new Size(defaultpapersize.Width.Value, _visual.ActualHeight);

            queue.UserPrintTicket.PageMediaSize = new PageMediaSize(psize.Width, psize.Height);
            //queue.UserPrintTicket.PageMediaSize = new PageMediaSize(279, 900);
            var writer = PrintQueue.CreateXpsDocumentWriter(queue);

            writer.Write(_visual);

            //with flow document
            //FlowDocument doc = new FlowDocument(new BlockUIContainer(_visual));
            //IDocumentPaginatorSource idpSource = doc;
            //writer.Write(idpSource.DocumentPaginator);
        }
                public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
                {
                    string        strValue = value as string;
                    PageMediaSize retval   = null;

                    if (strValue != null)
                    {
                        try {
                            var pageMediaSizeName = (PageMediaSizeName)Enum.Parse(typeof(PageMediaSizeName), strValue);
                            retval = new PageMediaSize(pageMediaSizeName);
                        }
                        catch (Exception) {}
                        if (retval == null)
                        {
                            var tokens = strValue.Split('x');
                            if (tokens.Length == 2)
                            {
                                try {
                                    double height = Double.Parse(tokens[0], CultureInfo.InvariantCulture);
                                    double width  = Double.Parse(tokens[1], CultureInfo.InvariantCulture);
                                    retval = new PageMediaSize(width, height);
                                } catch (Exception) {
                                }
                            }
                        }
                    }
                    return(retval ?? DependencyProperty.UnsetValue);
                }
Esempio n. 3
0
        public PrintTicket GetPrintTicket(string printerName, PageMediaSize paperSize, PageOrientation pageOrientation)
        {
            using (var printQueue = GetPrintQueue(printerName))
            {
                if (printQueue != null)
                {
                    var myTicket = new PrintTicket
                    {
                        CopyCount       = 1,
                        PageOrientation = pageOrientation,
                        OutputColor     = OutputColor.Color,
                        PageMediaSize   = paperSize
                    };

                    var mergeTicketResult = printQueue.MergeAndValidatePrintTicket(printQueue.DefaultPrintTicket, myTicket);

                    var isValid = ValidateMergedPrintTicket(myTicket, mergeTicketResult.ValidatedPrintTicket);
                    if (isValid)
                    {
                        return(mergeTicketResult.ValidatedPrintTicket);
                    }
                    else
                    {
                        throw new Exception($"PrintTicket settings are incompatible with printer.");
                    }
                }
            }

            throw new Exception($"Printer name \"{printerName}\" not found in local or network queues.");
        }
 /*
  *  PageMediaSizeName.BusinessCard	Business card
  *  PageMediaSizeName.CreditCard	Credit card
  *  PageMediaSizeName.ISOA0	A0
  *  PageMediaSizeName.ISOA1	A1
  *  PageMediaSizeName.ISOA10	A10
  *  PageMediaSizeName.ISOA2	A2
  *  PageMediaSizeName.ISOA3	A3
  *  PageMediaSizeName.ISOA3Extra	A3 Extra
  *  PageMediaSizeName.ISOA3Rotated	A3 Rotated
  *  PageMediaSizeName.ISOA4	A4
  *  PageMediaSizeName.ISOA4Extra	A4 Extra
  *  PageMediaSizeName.ISOA4Rotated	A4 Rotated
  *  PageMediaSizeName.ISOA5	A5
  *  PageMediaSizeName.ISOA5Extra	A5 Extra
  *  PageMediaSizeName.ISOA5Rotated	A5 Rotated
  *  PageMediaSizeName.ISOA6	A6
  *  PageMediaSizeName.ISOA6Rotated	A6 Rotated
  *  PageMediaSizeName.ISOA7	A7
  *  PageMediaSizeName.ISOA8	A8
  *  PageMediaSizeName.PageMediaSizeName.ISOA9	A9
  *  PageMediaSizeName.ISOB0	B0
  *  PageMediaSizeName.ISOB1	B1
  *  PageMediaSizeName.ISOB10	B10
  *  PageMediaSizeName.ISOB2	B2
  *  PageMediaSizeName.ISOB3	B3
  *  PageMediaSizeName.ISOB4	B4
  *  PageMediaSizeName.ISOB4Envelope	B4 Envelope
  *  PageMediaSizeName.ISOB5Envelope	B5 Envelope
  *  PageMediaSizeName.ISOB5Extra	B5 Extra
  *  PageMediaSizeName.ISOB7	B7
  *  PageMediaSizeName.ISOB8	B8
  *  PageMediaSizeName.ISOB9	B9
  *  PageMediaSizeName.ISOC0	C0
  *  PageMediaSizeName.ISOC1	C1
  *  PageMediaSizeName.ISOC10	C10
  *  PageMediaSizeName.ISOC2	C2
  *  PageMediaSizeName.ISOC3	C3
  *  PageMediaSizeName.ISOC3Envelope	C3 Envelope
  *  PageMediaSizeName.ISOC4	C4
  *  PageMediaSizeName.ISOC4Envelope	C4 Envelope
  *  PageMediaSizeName.ISOC5	C5
  *  PageMediaSizeName.ISOC5Envelope	C5 Envelope
  *  PageMediaSizeName.ISOC6	C6
  *  PageMediaSizeName.ISOC6C5Envelope	C6C5 Envelope
  *  PageMediaSizeName.ISOC6Envelope	C6 Envelope
  *  PageMediaSizeName.ISOC7	C7
  *  PageMediaSizeName.ISOC8	C8
  *  PageMediaSizeName.ISOC9	C9
  *  PageMediaSizeName.ISODLEnvelope	DL Envelope
  *  PageMediaSizeName.ISODLEnvelopeRotated	DL Envelope Rotated
  *  PageMediaSizeName.ISOSRA3	SRA 3
  *  PageMediaSizeName.Japan2LPhoto	2L Photo
  *  PageMediaSizeName.JapanChou3Envelope	Chou 3 Envelope
  *  PageMediaSizeName.JapanChou3EnvelopeRotated	Chou 3 Envelope Rotated
  *  PageMediaSizeName.JapanChou4Envelope	Chou 4 Envelope
  *  PageMediaSizeName.JapanChou4EnvelopeRotated	Chou 4 Envelope Rotated
  *  PageMediaSizeName.JapanDoubleHagakiPostcard	Double Hagaki Postcard
  *  PageMediaSizeName.JapanDoubleHagakiPostcardRotated	Double Hagaki Postcard Rotated
  *  PageMediaSizeName.JapanHagakiPostcard	Hagaki Postcard
  *  PageMediaSizeName.JapanHagakiPostcardRotated	Hagaki Postcard Rotated
  *  PageMediaSizeName.JapanKaku2Envelope	Kaku 2 Envelope
  *  PageMediaSizeName.JapanKaku2EnvelopeRotated	Kaku 2 Envelope Rotated
  *  PageMediaSizeName.JapanKaku3Envelope	Kaku 3 Envelope
  *  PageMediaSizeName.JapanKaku3EnvelopeRotated	Kaku 3 Envelope Rotated
  *  PageMediaSizeName.JapanLPhoto	L Photo
  *  PageMediaSizeName.JapanQuadrupleHagakiPostcard	Quadruple Hagaki Postcard
  *  PageMediaSizeName.JapanYou1Envelope	You 1 Envelope
  *  PageMediaSizeName.JapanYou2Envelope	You 2 Envelope
  *  PageMediaSizeName.JapanYou3Envelope	You 3 Envelope
  *  PageMediaSizeName.JapanYou4Envelope	You 4 Envelope
  *  PageMediaSizeName.JapanYou4EnvelopeRotated	You 4 Envelope Rotated
  *  PageMediaSizeName.JapanYou6Envelope	You 6 Envelope
  *  PageMediaSizeName.JapanYou6EnvelopeRotated	You 6 Envelope Rotated
  *  PageMediaSizeName.JISB0	Japanese Industrial Standard B0
  *  PageMediaSizeName.JISB1	Japanese Industrial Standard B1
  *  PageMediaSizeName.JISB10	Japanese Industrial Standard B10
  *  PageMediaSizeName.JISB2	Japanese Industrial Standard B2
  *  PageMediaSizeName.JISB3	Japanese Industrial Standard B3
  *  PageMediaSizeName.JISB4	Japanese Industrial Standard B4
  *  PageMediaSizeName.JISB4Rotated	Japanese Industrial Standard B4 Rotated
  *  PageMediaSizeName.JISB5	Japanese Industrial Standard B5
  *  PageMediaSizeName.JISB5Rotated	Japanese Industrial Standard B5 Rotated
  *  PageMediaSizeName.JISB6	Japanese Industrial Standard B6
  *  PageMediaSizeName.JISB6Rotated	Japanese Industrial Standard B6 Rotated
  *  PageMediaSizeName.JISB7	Japanese Industrial Standard B7
  *  PageMediaSizeName.JISB8	Japanese Industrial Standard B8
  *  PageMediaSizeName.JISB9	Japanese Industrial Standard B9
  *  PageMediaSizeName.NorthAmerica10x11	10 x 11
  *  PageMediaSizeName.NorthAmerica10x12	10 x 12
  *  PageMediaSizeName.NorthAmerica10x14	10 x 14
  *  PageMediaSizeName.NorthAmerica11x17	11 x 17
  *  PageMediaSizeName.NorthAmerica14x17	14 x 17
  *  PageMediaSizeName.NorthAmerica4x6	4 x 6
  *  PageMediaSizeName.NorthAmerica4x8	4 x 8
  *  PageMediaSizeName.NorthAmerica5x7	5 x 7
  *  PageMediaSizeName.NorthAmerica8x10	8 x 10
  *  PageMediaSizeName.NorthAmerica9x11	9 x 11
  *  PageMediaSizeName.NorthAmericaArchitectureASheet	Architecture A Sheet
  *  PageMediaSizeName.NorthAmericaArchitectureBSheet	Architecture B Sheet
  *  PageMediaSizeName.NorthAmericaArchitectureCSheet	Architecture C Sheet
  *  PageMediaSizeName.NorthAmericaArchitectureDSheet	Architecture D Sheet
  *  PageMediaSizeName.NorthAmericaArchitectureESheet	Architecture E Sheet
  *  PageMediaSizeName.NorthAmericaCSheet	C Sheet
  *  PageMediaSizeName.NorthAmericaDSheet	D Sheet
  *  PageMediaSizeName.NorthAmericaESheet	E Sheet
  *  PageMediaSizeName.NorthAmericaExecutive	Executive
  *  PageMediaSizeName.NorthAmericaGermanLegalFanfold	German Legal Fanfold
  *  PageMediaSizeName.NorthAmericaGermanStandardFanfold	German Standard Fanfold
  *  PageMediaSizeName.NorthAmericaLegal	Legal
  *  PageMediaSizeName.NorthAmericaLegalExtra	Legal Extra
  *  PageMediaSizeName.NorthAmericaLetter	Letter
  *  PageMediaSizeName.NorthAmericaLetterExtra	Letter Extra
  *  PageMediaSizeName.NorthAmericaLetterPlus	Letter Plus
  *  PageMediaSizeName.NorthAmericaLetterRotated	Letter Rotated
  *  PageMediaSizeName.NorthAmericaMonarchEnvelope	Monarch Envelope
  *  PageMediaSizeName.NorthAmericaNote	Note
  *  PageMediaSizeName.NorthAmericaNumber10Envelope	#10 Envelope
  *  PageMediaSizeName.NorthAmericaNumber10EnvelopeRotated	#10 Envelope Rotated
  *  PageMediaSizeName.NorthAmericaNumber11Envelope	#11 Envelope
  *  PageMediaSizeName.NorthAmericaNumber12Envelope	#12 Envelope
  *  PageMediaSizeName.NorthAmericaNumber14Envelope	#14 Envelope
  *  PageMediaSizeName.NorthAmericaNumber9Envelope	#9 Envelope
  *  PageMediaSizeName.NorthAmericaPersonalEnvelope	Personal Envelope
  *  PageMediaSizeName.NorthAmericaQuarto	Quarto
  *  PageMediaSizeName.NorthAmericaStatement	Statement
  *  PageMediaSizeName.NorthAmericaSuperA	Super A
  *  PageMediaSizeName.NorthAmericaSuperB	Super B
  *  PageMediaSizeName.NorthAmericaTabloid	Tabloid
  *  PageMediaSizeName.NorthAmericaTabloidExtra	Tabloid Extra
  *  PageMediaSizeName.OtherMetricA3Plus	A3 Plus
  *  PageMediaSizeName.OtherMetricA4Plus	A4 Plus
  *  PageMediaSizeName.OtherMetricFolio	Folio
  *  PageMediaSizeName.OtherMetricInviteEnvelope	Invite Envelope
  *  PageMediaSizeName.OtherMetricItalianEnvelope	Italian Envelope
  *  PageMediaSizeName.PRC10Envelope	People's Republic of China #10 Envelope
  *  PageMediaSizeName.PRC10EnvelopeRotated	People's Republic of China #10 Envelope Rotated
  *  PageMediaSizeName.PRC16K	People's Republic of China 16K
  *  PageMediaSizeName.PRC16KRotated	People's Republic of China 16K Rotated
  *  PageMediaSizeName.PRC1Envelope	People's Republic of China #1 Envelope
  *  PageMediaSizeName.PRC1EnvelopeRotated	People's Republic of China #1 Envelope Rotated
  *  PageMediaSizeName.PRC2Envelope	People's Republic of China #2 Envelope
  *  PageMediaSizeName.PRC2EnvelopeRotated	People's Republic of China #2 Envelope Rotated
  *  PageMediaSizeName.PRC32K	People's Republic of China 32K
  *  PageMediaSizeName.PRC32KBig	People's Republic of China 32K Big
  *  PageMediaSizeName.PRC32KRotated	People's Republic of China 32K Rotated
  *  PageMediaSizeName.PRC3Envelope	People's Republic of China #3 Envelope
  *  PageMediaSizeName.PRC3EnvelopeRotated	People's Republic of China #3 Envelope Rotated
  *  PageMediaSizeName.PRC4Envelope	People's Republic of China #4 Envelope
  *  PageMediaSizeName.PRC4EnvelopeRotated	People's Republic of China #4 Envelope Rotated
  *  PageMediaSizeName.PRC5Envelope	People's Republic of China #5 Envelope
  *  PageMediaSizeName.PRC5EnvelopeRotated	People's Republic of China #5 Envelope Rotated
  *  PageMediaSizeName.PRC6Envelope	People's Republic of China #6 Envelope
  *  PageMediaSizeName.PRC6EnvelopeRotated	People's Republic of China #6 Envelope Rotated
  *  PageMediaSizeName.PRC7Envelope	People's Republic of China #7 Envelope
  *  PageMediaSizeName.PRC7EnvelopeRotated	People's Republic of China #7 Envelope Rotated
  *  PageMediaSizeName.PRC8Envelope	People's Republic of China #8 Envelope
  *  PageMediaSizeName.PRC8EnvelopeRotated	People's Republic of China #8 Envelope Rotated
  *  PageMediaSizeName.PRC9Envelope	People's Republic of China #9 Envelope
  *  PageMediaSizeName.PRC9EnvelopeRotated	People's Republic of China #9 Envelope Rotated
  *  PageMediaSizeName.Roll04Inch	4-inch wide roll
  *  PageMediaSizeName.Roll06Inch	6-inch wide roll
  *  PageMediaSizeName.Roll08Inch	8-inch wide roll
  *  PageMediaSizeName.Roll12Inch	12-inch wide roll
  *  PageMediaSizeName.Roll15Inch	15-inch wide roll
  *  PageMediaSizeName.Roll18Inch	18-inch wide roll
  *  PageMediaSizeName.Roll22Inch	22-inch wide roll
  *  PageMediaSizeName.Roll24Inch	24-inch wide roll
  *  PageMediaSizeName.Roll30Inch	30-inch wide roll
  *  PageMediaSizeName.Roll36Inch	36-inch wide roll
  *  PageMediaSizeName.Roll54Inch	54-inch wide roll
  */
 private void InitializePaperSizeGallery()
 {
     this.paperSizeGallery.Gallery.BeginUpdate();
     try {
         GalleryItem   defaultItem = this.paperSizeGallery.Gallery.GetCheckedItem();
         PageMediaSize defaultSize = defaultItem == null ? PicturePrint.PrintTicket.PageMediaSize : (PageMediaSize)defaultItem.Value;
         this.paperSizeGallery.Gallery.Groups[0].Items.Clear();
         PrintCapabilities caps = PicturePrint.PrintQueue.GetPrintCapabilities();
         foreach (PageMediaSize size in caps.PageMediaSizeCapability)
         {
             GalleryItem item = CreatePageMediaSizeItem(size);
             this.paperSizeGallery.Gallery.Groups[0].Items.Add(item);
             if (defaultSize.PageMediaSizeName.HasValue && defaultSize.PageMediaSizeName.Value == ((PageMediaSize)item.Value).PageMediaSizeName)
             {
                 defaultItem = item;
             }
         }
         if (defaultItem == null && this.paperSizeGallery.Gallery.Groups[0].Items.Count > 0)
         {
             defaultItem = this.paperSizeGallery.Gallery.Groups[0].Items[0];
         }
         if (defaultItem != null)
         {
             defaultItem.Checked = true;
         }
     } finally {
         this.paperSizeGallery.Gallery.EndUpdate();
     }
 }
Esempio n. 5
0
        public static DrawingVisual BuildGraphVisual(PageMediaSize pageSize, Visual visual)
        {
            var drawingVisual = new DrawingVisual();

            using (var drawingContext = drawingVisual.RenderOpen())
            {
                var visualContent = visual;
                var rect          = new Rect
                {
                    X      = 0,
                    Y      = 0,
                    Width  = pageSize.Width.Value,
                    Height = pageSize.Height.Value
                };

                var stretch     = Stretch.None;
                var visualBrush = new VisualBrush(visualContent)
                {
                    Stretch = stretch
                };

                drawingContext.DrawRectangle(visualBrush, null, rect);
                drawingContext.PushOpacityMask(Brushes.White);
            }
            return(drawingVisual);
        }
Esempio n. 6
0
        private static void Printmodel(ReceiptModel model)
        {
            var _visual = GetVisual(model);

            //If pinter is not setup receipt can be send to a file....
            var queue = new LocalPrintServer().DefaultPrintQueue;

            try
            {
                //Printer Assignment Fix by Amjad - 6/14
                queue = new LocalPrintServer().GetPrintQueue(BaseAppUI.Properties.Settings.Default.POSMainPrinter);
            }
            catch
            {
                MessageBox.Show("Printer not setup");
                //catch exception
            }
            var defaultpapersize = new PageMediaSize(279, 0);


            _visual.Measure(new Size(defaultpapersize.Width.Value, double.PositiveInfinity));
            _visual.Arrange(new Rect(_visual.DesiredSize));
            _visual.UpdateLayout();

            Size psize = new Size(defaultpapersize.Width.Value, _visual.ActualHeight);

            queue.UserPrintTicket.PageMediaSize = new PageMediaSize(psize.Width, psize.Height);
            var writer = PrintQueue.CreateXpsDocumentWriter(queue);

            writer.Write(_visual);
        }
Esempio n. 7
0
        private bool rotate90(PageMediaSize pageMediaSize, BitmapSource bitmap)
        {
            bool isPageLandscape   = (pageMediaSize.Width / pageMediaSize.Height > 1 ? true : false);
            bool isBitmapLandscape = (bitmap.Width / bitmap.Height > 1 ? true : false);

            // We need to rotate if these don't match.
            return(isPageLandscape ^ isBitmapLandscape);
        }
 private void SetCurrentPaper(PageMediaSize pageMediaSize)
 {
     var widthInInch = Math.Round(pageMediaSize.Width.Value / 96 * 100);
     var heightInInch = Math.Round(pageMediaSize.Height.Value / 96 * 100);
     var paperSize = PaperSizes.FirstOrDefault(p => p.Width == widthInInch && p.Height == heightInInch);
     if (paperSize != null)
         CurrentPaper = PaperSizes[PaperSizes.IndexOf(paperSize)];
 }
        private GalleryItem CreatePageMediaSizeItem(PageMediaSize size)
        {
            GalleryItem res = new GalleryItem();

            res.Caption = Enum.GetName(typeof(PageMediaSizeName), size.PageMediaSizeName);
            res.Value   = size;
            return(res);
        }
Esempio n. 10
0
        private void OnWindowLoaded(object sender, RoutedEventArgs e)
        {
            var pageSize = new PageMediaSize(PageMediaSizeName.ISOA4);

            if (pageSize.Width != null)
            {
                testDetailsDoc.ColumnWidth = pageSize.Width.Value;
            }

            this.CreateDocument();
        }
Esempio n. 11
0
        public static void PrintMedicationLabel(MedicationLabel medicationLabel)
        {
            var dialog = new PrintDialog();

            dialog.PageRangeSelection   = PageRangeSelection.AllPages;
            dialog.UserPageRangeEnabled = false;

            var pageSize = new PageMediaSize(3.5 * INCH, 1.41 * INCH);

            dialog.PrintTicket.PageMediaSize = pageSize;

            PrintTicket ticket          = dialog.PrintTicket;
            Double      printableWidth  = ticket.PageMediaSize.Width.Value;
            Double      printableHeight = ticket.PageMediaSize.Height.Value;

            Log.WriteLine("{0} dip", printableWidth);
            Log.WriteLine("{0} dip", printableHeight);

            // 1cm = 37.8dip
            Log.WriteLine("{0} cm", printableWidth / DIP);
            Log.WriteLine("{0} cm", printableHeight / DIP);

            medicationLabel.Layout();

            // scale
            double xMargin = 0;
            double yMargin = 0;
            Double xScale  = ((printableWidth - xMargin * 2) / printableWidth);
            Double yScale  = ((printableHeight - yMargin * 2) / printableHeight);

            var matrix = new MatrixTransform(xScale, 0, 0, yScale, xMargin, yMargin);

            medicationLabel.RenderTransform = matrix;
            medicationLabel.LayoutTransform = matrix;

            List <MedicationLabel> pages = new List <MedicationLabel>();

            var w = (printableWidth - (medicationLabel.lMargin + medicationLabel.rMargin));
            var h = (printableHeight - (medicationLabel.tMargin + medicationLabel.bMargin));

            Log.WriteLine("ListBox (max) Width: {0}", w);
            Log.WriteLine("ListBox (max) Height: {0}", h);

            pages.Add(medicationLabel);
            Log.WriteLine("pages.Count: {0}", pages.Count);

            var paginator = new Paginator <MedicationLabel>(pages);

            paginator.PageSize = new Size(printableWidth, printableHeight);

            var viewerSize = new Size(336 + 45, 135 + 120);

            PrintPages(paginator, viewerSize);
        }
        private void galleryControlGallery1_ItemCheckedChanged_1(object sender, GalleryItemEventArgs e)
        {
            if (!e.Item.Checked)
            {
                return;
            }
            PageMediaSize size = (PageMediaSize)e.Item.Value;

            PicturePrint.PrintTicket.PageMediaSize = size;
            PicturePrint.PageWidthPixels           = size.Width.Value;
            PicturePrint.PageHeightPixels          = size.Height.Value;
            PicturePrint.PaperText = "Paper: " + size.PageMediaSizeName.Value;
        }
Esempio n. 13
0
        private void btnPrint_Click(object sender, RoutedEventArgs e)
        {
            PrintDialog   pd       = new PrintDialog();
            PageMediaSize pageSize = new PageMediaSize(PageMediaSizeName.ISOA4);

            pd.PrintTicket.PageMediaSize   = pageSize;
            pd.PrintTicket.PageOrientation = System.Printing.PageOrientation.Landscape;
            if (pd.ShowDialog() == true)
            {
                FixedDocument document = PrintHelper.CreateSinglePageDocument(this);
                pd.PrintDocument(document.DocumentPaginator, "Catalouge Detail");
            }
            DialogResult = true;
        }
Esempio n. 14
0
        /* Set up the print ticket */
        private PrintTicket SetUpTicket(PrintQueue queue, Print printcontrol,
                                        FixedDocumentSequence fixdoc, bool tempfile)
        {
            PrintTicket Ticket = new PrintTicket();

            PageMediaSizeName name      = PaperKindToPageMediaSize(printcontrol.m_pagedetails.PaperSize.Kind);
            PageMediaSize     mediasize = new PageMediaSize(name, printcontrol.m_pagedetails.PaperSize.Width, printcontrol.m_pagedetails.PaperSize.Height);

            /* Media size */
            Ticket.PageMediaSize = mediasize;
            /* Scale to fit */
            Ticket.PageScalingFactor = (int)Math.Round(printcontrol.m_page_scale * 100.0);

            System.Windows.Size page_size = new System.Windows.Size(mediasize.Width.Value, mediasize.Height.Value);
            DocumentPaginator   paginator = fixdoc.DocumentPaginator;

            paginator.PageSize = page_size;

            /* Copy Count */
            Ticket.CopyCount = printcontrol.m_numcopies;

            if (printcontrol.m_pagedetails.Landscape)
            {
                Ticket.PageOrientation = PageOrientation.Landscape;
            }
            else
            {
                Ticket.PageOrientation = PageOrientation.Portrait;
            }

            /* Orientation. If we had a tempfile, then gs did a conversion
             * and adjusted everything for us.  Other wise we may need to
             * rotate the document if it was xps to start with. */
            if (printcontrol.m_isrotated && !tempfile)
            {
                if (printcontrol.m_pagedetails.Landscape)
                {
                    Ticket.PageOrientation = PageOrientation.Portrait;
                }
                else
                {
                    Ticket.PageOrientation = PageOrientation.Landscape;
                }
            }

            System.Printing.ValidationResult result = queue.MergeAndValidatePrintTicket(queue.UserPrintTicket, Ticket);
            queue.UserPrintTicket = result.ValidatedPrintTicket;
            queue.Commit();
            return(result.ValidatedPrintTicket);
        }
        public AboutPage()
        {
            InitializeComponent();

            _useConverter = true;

            var pageSize = new PageMediaSize(PageMediaSizeName.ISOA4);

            if (pageSize.Width != null)
            {
                testDetailsDoc.ColumnWidth = pageSize.Width.Value;
            }

            this.Loaded += OnPageLoaded;
        }
    private void Button_Click(object sender, RoutedEventArgs e)
    {
        LocalPrintServer  ps    = new LocalPrintServer();
        PrintQueue        pq    = ps.DefaultPrintQueue;
        XpsDocumentWriter xpsdw = PrintQueue.CreateXpsDocumentWriter(pq);
        PrintTicket       pt    = pq.UserPrintTicket;

        if (xpsdw != null)
        {
            pt.PageOrientation = PageOrientation.Portrait;
            PageMediaSize pageMediaSize = new PageMediaSize(this.ActualWidth, this.ActualHeight);
            pt.PageMediaSize = pageMediaSize;
            xpsdw.Write(MyContent);
        }
    }
Esempio n. 17
0
        public static PageMediaSize GetPageMediaSize(PaperKind paperKind)
        {
            PaperSize pageSize = GetPaperSize(paperKind);

            if (pageSize == null)
            {
                throw new ApplicationException($"Paper kind {paperKind} not supported.");
            }

            double pageWidth = ConvertPaperSizeToPx(pageSize.Width);

            double pageHeight = ConvertPaperSizeToPx(pageSize.Height);

            PageMediaSize result = new PageMediaSize(ConvertPaperKindToPageMediaSize(paperKind), pageWidth, pageHeight);

            return(result);
        }
Esempio n. 18
0
        private void btnPrint_Click(object sender, RoutedEventArgs e)
        {
            PrintDialog   printDialog = new PrintDialog();
            PageMediaSize pageSize    = new PageMediaSize(PageMediaSizeName.ISOA4);

            printDialog.PrintTicket.PageMediaSize   = pageSize;
            printDialog.PrintTicket.PageOrientation = System.Printing.PageOrientation.Landscape;

            bool?pdResult = printDialog.ShowDialog();

            if (pdResult != null && pdResult.Value)
            {
                try
                {
                    FixedDocument document;
                    if (dgResult.SelectedItems.Count > 0)
                    {
                        List <Catlouge> existingList  = (dgResult.ItemsSource as List <Catlouge>).ToList();
                        List <Catlouge> selectedItems = new List <Catlouge>();
                        foreach (var item in dgResult.SelectedItems)
                        {
                            selectedItems.Add(item as Catlouge);
                        }

                        dgResult.ItemsSource = selectedItems;
                        dgResult.UpdateLayout();

                        document = PrintHelper.CreateFixedDocument(dgResult, "Header", 30, 50);
                        printDialog.PrintDocument(document.DocumentPaginator, "Search Results");

                        dgResult.ItemsSource = existingList;
                        dgResult.UpdateLayout();
                    }
                    else
                    {
                        document = PrintHelper.CreateFixedDocument(dgResult, "Header", 30, 50);
                        printDialog.PrintDocument(document.DocumentPaginator, "Search Results");
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message + " : " + ex.InnerException);
                }
            }
        }
Esempio n. 19
0
        /// <summary>
        /// Method to get the PrintingEventArgs to get the printstate and add papar sizes to required printer.
        /// </summary>
        /// <param name="obj"></param>
        private void OnPrintingCommand(object obj)
        {
            var args = obj as PrintingEventArgs;

            // The below code is to add page size for printing
            if (args.PrintState == PrintStatus.Started)
            {
                var customPages = new System.Collections.Generic.Dictionary <string, Size>();
                var printerName = args.PrintDialog.PrintQueue.Name;
                if (printerName.Contains("Microsoft Print to PDF"))
                {
                    customPages.Add("Ansi B", new Size(1055, 1632));
                    customPages.Add("Ansi C", new Size(1632, 2112));
                    customPages.Add("Ansi D", new Size(2112, 3264));
                    customPages.Add("A0", new Size(3179, 4494));
                }
                else if (printerName.Contains("Microsoft XPS Document Writer"))
                {
                    customPages.Add("A0", new Size(3179, 4494));
                    customPages.Add("A1", new Size(2245, 3179));
                }

                foreach (var customPage in customPages)
                {
                    if (args.SelectedPageMediaSizeName.Contains(customPage.Key))
                    {
                        var pageSize  = customPage.Value;
                        var mediaSize = new PageMediaSize(PageMediaSizeName.Unknown, pageSize.Width, pageSize.Height);
                        args.PrintDialog.PrintTicket.PageMediaSize = mediaSize;
                        args.CanUseCustomPageMediaSize             = true;
                        break;
                    }
                }
            }

            if (args.PrintState == PrintStatus.Cancelled)
            {
                MessageBox.Show("Printing Cancelled");
            }
        }
Esempio n. 20
0
        public void Print(Object obj)
        {
            if (obj is UserControl userControl)
            {
                using (LocalPrintServer ps = new LocalPrintServer())
                {
                    PrintQueue    pq            = ps.DefaultPrintQueue;
                    PageMediaSize pageMediaSize = pq.UserPrintTicket.PageMediaSize;

                    FixedDocument document = new FixedDocument();

                    if (pageMediaSize.Width.HasValue && pageMediaSize.Height.HasValue)
                    {
                        document.DocumentPaginator.PageSize = new Size(pageMediaSize.Width.Value, pageMediaSize.Height.Value);
                    }

                    if (userControl.Content is Viewbox viewBox)
                    {
                        viewBox.Width = document.DocumentPaginator.PageSize.Width;
                    }

                    FixedPage page = new FixedPage
                    {
                        Width  = document.DocumentPaginator.PageSize.Width,
                        Height = document.DocumentPaginator.PageSize.Height,
                        HorizontalAlignment = HorizontalAlignment.Center
                    };

                    page.Children.Add(userControl);

                    document.Pages.Add(new PageContent
                    {
                        Child = page
                    });

                    XpsDocumentWriter xpsdw = PrintQueue.CreateXpsDocumentWriter(pq);
                    xpsdw.Write(document.DocumentPaginator);
                }
            }
        }
        public static DrawingVisual BuildGraphVisual(PageMediaSize pageSize, Visual visual)
        {
            var drawingVisual = new DrawingVisual();
            using (var drawingContext = drawingVisual.RenderOpen())
            {

                var visualContent = visual;
                var rect = new Rect
                {
                    X = 0,
                    Y = 0,
                    Width = pageSize.Width.Value,
                    Height = pageSize.Height.Value
                };

                var stretch = Stretch.None;
                var visualBrush = new VisualBrush(visualContent) { Stretch = stretch };

                drawingContext.DrawRectangle(visualBrush, null, rect);
                drawingContext.PushOpacityMask(Brushes.White);
            }
            return drawingVisual;
        }
Esempio n. 22
0
        private static DrawingVisual BuildGraphVisual(PageMediaSize pageSize, Visual visual, double scale, bool applyRtl = true)
        {
            var drawingVisual = new DrawingVisual();

            //drawingVisual.Transform = new ScaleTransform(-1, 1);
            using (var drawingContext = drawingVisual.RenderOpen())
            {
                var visualContent = visual;

                var rect = new Rect
                {
                    X      = 0,
                    Y      = 0,
                    Width  = pageSize.Width.Value,
                    Height = pageSize.Height.Value
                };

                var stretch     = Stretch.Uniform;
                var visualBrush = new VisualBrush(visualContent)
                {
                    Stretch = stretch
                };

                if (applyRtl)
                {
                    TransformGroup group = new TransformGroup();
                    group.Children.Add(new ScaleTransform(-1, 1));
                    group.Children.Add(new TranslateTransform(rect.Width, 0));
                    visualBrush.Transform = group;
                }

                drawingContext.DrawRectangle(visualBrush, null, rect);
                drawingContext.PushOpacityMask(Brushes.White);
            }
            return(drawingVisual);
        }
Esempio n. 23
0
 private void btnPrint_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         PageMediaSize pageSize = null;
         pageSize = new PageMediaSize(PrintLayout.CUTSHEETS.Width, PrintLayout.CUTSHEETS.Height);
         PrintDialog printDlg = new PrintDialog();
         printDlg.PrintTicket.PageMediaSize = pageSize;
         if (printDlg.ShowDialog() == true)
         {
             PrintTicket pt              = printDlg.PrintTicket;
             Double      printableWidth  = pt.PageMediaSize.Width.Value;
             Double      printableHeight = pt.PageMediaSize.Height.Value;
             var         pageSize2       = new Size(printDlg.PrintableAreaWidth, printDlg.PrintableAreaHeight);
             Doc.PageWidth = pageSize2.Width;
             //Doc.PageHeight = pageSize2.Height;
             IDocumentPaginatorSource idpSource = Doc;
             printDlg.PrintDocument(idpSource.DocumentPaginator, "Impression Facture");
         }
     } catch (Exception ex)
     {
         MessageBox.Show(ex.Message + "\n" + ex.StackTrace + "\n" + ex.Source + "\n");
     }
 }
Esempio n. 24
0
        public static void PrintPrescription(Prescription prescription)
        {
            var dialog = new PrintDialog();

            dialog.PageRangeSelection   = PageRangeSelection.AllPages;
            dialog.UserPageRangeEnabled = false;

            // PageMediaSizeName.ISOA4 will be null in some case :'(
            var pageSize = new PageMediaSize(8.29 * INCH, 11.69 * INCH);

            dialog.PrintTicket.PageMediaSize = pageSize;

            PrintTicket ticket          = dialog.PrintTicket;
            Double      printableWidth  = ticket.PageMediaSize.Width.Value;
            Double      printableHeight = ticket.PageMediaSize.Height.Value;

            Log.WriteLine("{0} dip", printableWidth);
            Log.WriteLine("{0} dip", printableHeight);

            // 1cm = 37.8dip
            Log.WriteLine("{0} cm", printableWidth / DIP);
            Log.WriteLine("{0} cm", printableHeight / DIP);

            // scale
            double xMargin = 0;
            double yMargin = 0;
            Double xScale  = ((printableWidth - xMargin * 2) / printableWidth);
            Double yScale  = ((printableHeight - yMargin * 2) / printableHeight);

            var matrix = new MatrixTransform(xScale, 0, 0, yScale, xMargin, yMargin);

            prescription.RenderTransform = matrix;
            prescription.LayoutTransform = matrix;

            List <Prescription> pages = new List <Prescription>();

            prescription.SetAccountPicture();
            prescription.MedicationList.DataContext = prescription;
            prescription.UpdateMedicationList();
            prescription.MedicationList.UpdateLayout();
            prescription.MedicationList.ApplyTemplate();
            prescription.MedicationList.BringIntoView();

            // first page
            var w = (printableWidth - (prescription.lMargin + prescription.rMargin));
            var h = (printableHeight - (prescription.tMargin + prescription.bMargin));

            Log.WriteLine("ListBox (max) Width: {0}", w);
            Log.WriteLine("ListBox (max) Height: {0}", prescription.MedicationListBoxMaxHeight);
            prescription.MedicationList.Measure(new Size(w, h));
            prescription.MedicationList.Arrange(new Rect());

            var aw = prescription.MedicationList.ActualWidth;
            var ah = prescription.MedicationList.ActualHeight;

            Log.WriteLine("ListBox ActualWidth: {0}", aw);
            Log.WriteLine("ListBox ActualHeight: {0}", ah);

            List <Medication> toNext = new List <Medication>();

            while (ah >= prescription.MedicationListBoxMaxHeight)
            {
                var medication = prescription.PopMedication();
                prescription.MedicationList.DataContext = null;
                prescription.MedicationList.DataContext = prescription;
                prescription.UpdateMedicationList();
                prescription.MedicationList.UpdateLayout();
                prescription.MedicationList.ApplyTemplate();
                prescription.MedicationList.BringIntoView();

                prescription.MedicationList.Measure(new Size(w, h));
                prescription.MedicationList.Arrange(new Rect());

                ah = prescription.MedicationList.ActualHeight;
                Log.WriteLine("ListBox ActualHeight: {0}", ah);
                toNext.Add(medication);
            }

            prescription.SetAccountPicture();

            // Without these lines, page losts their elements if the document is
            // oen page ... why?
            prescription.AccountInfo.UpdateLayout();
            prescription.AccountInfo.BringIntoView();
            prescription.AccountInfo.UpdateLayout();
            prescription.AccountInfo.BringIntoView();

            prescription.RenderTransform = matrix;
            prescription.LayoutTransform = matrix;

            pages.Add(prescription);

            var filename  = prescription.FileName.Text;
            var placeDate = prescription.PlaceDate.Text;

            // >= 2 pages
            var i = 2;

            Log.WriteLine("toNext.Count: {0}", toNext.Count);
            while (toNext.Count > 0)
            {
                toNext.Reverse();
                var prescriptionB = new Prescription(filename, placeDate)
                {
                    ActiveContact = prescription.ActiveContact,
                    ActiveAccount = prescription.ActiveAccount,
                    Medications   = toNext,
                    PageNumber    = i
                };
                prescriptionB.Info.Visibility = Visibility.Collapsed;

                prescriptionB.RenderTransform = matrix;
                prescriptionB.LayoutTransform = matrix;

                prescriptionB.MedicationList.MaxHeight   = h;
                prescriptionB.MedicationList.DataContext = prescriptionB;
                prescriptionB.UpdateMedicationList();
                prescriptionB.MedicationList.UpdateLayout();
                prescriptionB.MedicationList.ApplyTemplate();
                prescriptionB.MedicationList.BringIntoView();

                prescriptionB.MedicationList.Measure(new Size(w, h + 1));
                prescriptionB.MedicationList.Arrange(new Rect());

                var aw2 = prescriptionB.MedicationList.ActualWidth;
                var ah2 = prescriptionB.MedicationList.ActualHeight;
                Log.WriteLine("(page {0}) ListBox ActualWidth: {1}", i, aw2);
                Log.WriteLine("(page {0}) ListBox ActualHeight: {1}", i, ah2);
                Log.WriteLine("h: {0}", h);

                var toNextB = new List <Medication>();
                while (ah2 >= h)
                {
                    var medication = prescriptionB.PopMedication();
                    prescriptionB.MedicationList.DataContext = null;
                    prescriptionB.MedicationList.DataContext = prescriptionB;
                    prescriptionB.UpdateMedicationList();
                    prescriptionB.MedicationList.UpdateLayout();
                    prescriptionB.MedicationList.ApplyTemplate();
                    prescriptionB.MedicationList.BringIntoView();

                    prescriptionB.MedicationList.Measure(new Size(w, h + 1));
                    prescriptionB.MedicationList.Arrange(new Rect());

                    ah2 = prescriptionB.MedicationList.ActualHeight;
                    Log.WriteLine("(page {0}) ListBox ActualHeight: {1}", i, ah2);
                    toNextB.Add(medication);
                }
                prescriptionB.UpdateLayout();
                pages.Add(prescriptionB);

                Log.WriteLine("toNextB.Count: {0}", toNextB.Count);
                if (toNextB.Count < 1)
                {
                    toNext.Clear();
                }
                else
                {
                    toNext = toNextB;
                    i++;
                }
            }
            Log.WriteLine("pages.Count: {0}", pages.Count);

            pages = pages.Select(p => {
                p.TotalPages = pages.Count;
                p.Number();
                return(p);
            }).ToList();

            var paginator = new Paginator <Prescription>(pages);

            paginator.PageSize = new Size(printableWidth, printableHeight);
            PrintPages(paginator, Size.Empty);
        }
Esempio n. 25
0
        private void FileCmdExecuted(object sender, ExecutedRoutedEventArgs e)
        {
            RoutedCommand rc = e.Command as RoutedCommand;

            if (rc == null)
            {
                return;
            }

            switch (rc.Name)
            {
            case "Open":
                OpenFileDialog dlg = new OpenFileDialog();
                dlg.Filter = WpfDemoHelperMethods.CreateDialogFilter(true);

                if (dlg.ShowDialog().Value)
                {
                    this.AnnotationViewer.Open(dlg.FileName, 0, null);
                }

                break;

            case "SaveAs":
                SaveFileDialog save = new SaveFileDialog();
                save.Filter = "JPEG (*.jpg)|*.jpg|TIFF (*.tif)|*.tif|PDF (*.pdf)|*.pdf";
                if (save.ShowDialog().Value)
                {
                    if (save.FilterIndex == 1)
                    {
                        SaveImage(save.FileName, new JpegEncoder());
                    }
                    else if (save.FilterIndex == 2)
                    {
                        SaveImage(save.FileName, new TiffEncoder());
                    }
                    else
                    {
                        if (AtalaImage.Edition == LicenseEdition.Document)
                        {
                            SaveImage(save.FileName, new PdfEncoder());
                            SavePdfAnnotations(save.FileName);
                        }
                        else
                        {
                            MessageBox.Show("A 'DotImage Document Imaging' license is required to save as PDF.", "License Required", MessageBoxButton.OK, MessageBoxImage.Information);
                        }
                    }
                }

                break;

            case "Print":
                PrintDialog pdlg = new PrintDialog();
                if (pdlg.ShowDialog().Value)
                {
                    PageMediaSize sz = pdlg.PrintTicket.PageMediaSize;
                    pdlg.PrintVisual(this.AnnotationViewer.CreateVisual(new Size(sz.Width.HasValue ? sz.Width.Value : 0, sz.Height.HasValue ? sz.Height.Value : 0), _printScaleMode, new Thickness(10)), "WPF Annotation Printing");
                }

                break;
            }
        }
 private void SetCurrentPaper(PageMediaSize pageMediaSize)
 {
     var widthInInch = Math.Round(pageMediaSize.Width.Value / 96 * 100);
     var heightInInch = Math.Round(pageMediaSize.Height.Value / 96 * 100);
     var paperSize = PaperSizes.FirstOrDefault(p => p.Width == widthInInch && p.Height == heightInInch);
     if (paperSize != null)
         CurrentPaper = PaperSizes[PaperSizes.IndexOf(paperSize)];
 }
        public static FixedDocumentSequence PaintDrawingVisual(DrawingVisual drawingVisual, PageMediaSize pageMediaSize)
        {
            FixedDocumentSequence document = null;

            using (var xpsStream = new MemoryStream())
            {
                using (var package = Package.Open(xpsStream, FileMode.Create, FileAccess.ReadWrite))
                {
                    var packageUriString = "memorystream://data.xps";
                    var packageUri       = new Uri(packageUriString);

                    PackageStore.AddPackage(packageUri, package);

                    var xpsDocument = new XpsDocument(package, CompressionOption.Maximum, packageUriString);
                    var writer      = XpsDocument.CreateXpsDocumentWriter(xpsDocument);
                    var printTicket = new PrintTicket();
                    printTicket.PageMediaSize = pageMediaSize;

                    writer.Write(drawingVisual, printTicket);

                    document = xpsDocument.GetFixedDocumentSequence();
                    xpsDocument.Close();
                    PackageStore.RemovePackage(packageUri);
                }
            }
            return(document);
        }
        private bool TryGetPaperSize(short devModePaperSizeCode, out PageMediaSize pageMediaSize)
        {
            bool result = false;

            pageMediaSize = null;

            switch (devModePaperSizeCode)
            {
            case DevModePaperSizes.DMPAPER_LETTER: { pageMediaSize = new PageMediaSize(PageMediaSizeName.NorthAmericaLetter); break; }

            case DevModePaperSizes.DMPAPER_LEGAL: { pageMediaSize = new PageMediaSize(PageMediaSizeName.NorthAmericaLegal); break; }

            case DevModePaperSizes.DMPAPER_10X14: { pageMediaSize = new PageMediaSize(PageMediaSizeName.NorthAmerica10x14); break; }

            case DevModePaperSizes.DMPAPER_11X17: { pageMediaSize = new PageMediaSize(PageMediaSizeName.NorthAmerica11x17); break; }

            case DevModePaperSizes.DMPAPER_12X11: break;

            case DevModePaperSizes.DMPAPER_A3: { pageMediaSize = new PageMediaSize(PageMediaSizeName.ISOA3); break; }

            case DevModePaperSizes.DMPAPER_A3_ROTATED: { pageMediaSize = new PageMediaSize(PageMediaSizeName.ISOA3Rotated); break; }

            case DevModePaperSizes.DMPAPER_A4: { pageMediaSize = new PageMediaSize(PageMediaSizeName.ISOA4); break; }

            case DevModePaperSizes.DMPAPER_A4_ROTATED: { pageMediaSize = new PageMediaSize(PageMediaSizeName.ISOA4Rotated); break; }

            case DevModePaperSizes.DMPAPER_A4SMALL: break;

            case DevModePaperSizes.DMPAPER_A5: { pageMediaSize = new PageMediaSize(PageMediaSizeName.ISOA5); break; }

            case DevModePaperSizes.DMPAPER_A5_ROTATED: { pageMediaSize = new PageMediaSize(PageMediaSizeName.ISOA5Rotated); break; }

            case DevModePaperSizes.DMPAPER_A6: { pageMediaSize = new PageMediaSize(PageMediaSizeName.ISOA6); break; }

            case DevModePaperSizes.DMPAPER_A6_ROTATED: { pageMediaSize = new PageMediaSize(PageMediaSizeName.ISOA6Rotated); break; }

            case DevModePaperSizes.DMPAPER_B4: { pageMediaSize = new PageMediaSize(PageMediaSizeName.JISB4); break; }     //  verify may be ISO B4

            case DevModePaperSizes.DMPAPER_B4_JIS_ROTATED: { pageMediaSize = new PageMediaSize(PageMediaSizeName.JISB4Rotated); break; }

            case DevModePaperSizes.DMPAPER_B5: { pageMediaSize = new PageMediaSize(PageMediaSizeName.JISB5); break; }     //  verify may be ISO B5

            case DevModePaperSizes.DMPAPER_B5_JIS_ROTATED: { pageMediaSize = new PageMediaSize(PageMediaSizeName.JISB5Rotated); break; }

            case DevModePaperSizes.DMPAPER_B6_JIS: { pageMediaSize = new PageMediaSize(PageMediaSizeName.JISB6); break; }

            case DevModePaperSizes.DMPAPER_B6_JIS_ROTATED: { pageMediaSize = new PageMediaSize(PageMediaSizeName.JISB6Rotated); break; }

            case DevModePaperSizes.DMPAPER_CSHEET: { pageMediaSize = new PageMediaSize(PageMediaSizeName.NorthAmericaCSheet); break; }

            case DevModePaperSizes.DMPAPER_DBL_JAPANESE_POSTCARD: { pageMediaSize = new PageMediaSize(PageMediaSizeName.JapanDoubleHagakiPostcard); break; }

            case DevModePaperSizes.DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED: { pageMediaSize = new PageMediaSize(PageMediaSizeName.JapanDoubleHagakiPostcardRotated); break; }

            case DevModePaperSizes.DMPAPER_DSHEET: { pageMediaSize = new PageMediaSize(PageMediaSizeName.NorthAmericaDSheet); break; }

            case DevModePaperSizes.DMPAPER_ENV_9: { pageMediaSize = new PageMediaSize(PageMediaSizeName.NorthAmericaNumber9Envelope); break; }

            case DevModePaperSizes.DMPAPER_ENV_10: { pageMediaSize = new PageMediaSize(PageMediaSizeName.NorthAmericaNumber10Envelope); break; }

            case DevModePaperSizes.DMPAPER_ENV_11: { pageMediaSize = new PageMediaSize(PageMediaSizeName.NorthAmericaNumber11Envelope); break; }

            case DevModePaperSizes.DMPAPER_ENV_12: { pageMediaSize = new PageMediaSize(PageMediaSizeName.NorthAmericaNumber12Envelope); break; }

            case DevModePaperSizes.DMPAPER_ENV_14: { pageMediaSize = new PageMediaSize(PageMediaSizeName.NorthAmericaNumber14Envelope); break; }

            case DevModePaperSizes.DMPAPER_ENV_C5: { pageMediaSize = new PageMediaSize(PageMediaSizeName.ISOC5Envelope); break; }

            case DevModePaperSizes.DMPAPER_ENV_C3: { pageMediaSize = new PageMediaSize(PageMediaSizeName.ISOC3Envelope); break; }

            case DevModePaperSizes.DMPAPER_ENV_C4: { pageMediaSize = new PageMediaSize(PageMediaSizeName.ISOC4Envelope); break; }

            case DevModePaperSizes.DMPAPER_ENV_C6: { pageMediaSize = new PageMediaSize(PageMediaSizeName.ISOC6Envelope); break; }

            case DevModePaperSizes.DMPAPER_ENV_C65: { pageMediaSize = new PageMediaSize(PageMediaSizeName.ISOC6C5Envelope); break; }

            case DevModePaperSizes.DMPAPER_ENV_B4: { pageMediaSize = new PageMediaSize(PageMediaSizeName.ISOB4Envelope); break; }

            case DevModePaperSizes.DMPAPER_ENV_B5: { pageMediaSize = new PageMediaSize(PageMediaSizeName.ISOB5Envelope); break; }

            case DevModePaperSizes.DMPAPER_ENV_B6: break;

            case DevModePaperSizes.DMPAPER_ENV_DL: break;

            case DevModePaperSizes.DMPAPER_ENV_ITALY: { pageMediaSize = new PageMediaSize(PageMediaSizeName.OtherMetricItalianEnvelope); break; }

            case DevModePaperSizes.DMPAPER_ENV_MONARCH: { pageMediaSize = new PageMediaSize(PageMediaSizeName.NorthAmericaMonarchEnvelope); break; }

            case DevModePaperSizes.DMPAPER_ENV_PERSONAL: { pageMediaSize = new PageMediaSize(PageMediaSizeName.NorthAmericaPersonalEnvelope); break; }

            case DevModePaperSizes.DMPAPER_ESHEET: { pageMediaSize = new PageMediaSize(PageMediaSizeName.NorthAmericaESheet); break; }

            case DevModePaperSizes.DMPAPER_EXECUTIVE: { pageMediaSize = new PageMediaSize(PageMediaSizeName.NorthAmericaExecutive); break; }

            case DevModePaperSizes.DMPAPER_FANFOLD_US: break;

            case DevModePaperSizes.DMPAPER_FANFOLD_STD_GERMAN: { pageMediaSize = new PageMediaSize(PageMediaSizeName.NorthAmericaGermanStandardFanfold); break; }

            case DevModePaperSizes.DMPAPER_FANFOLD_LGL_GERMAN: { pageMediaSize = new PageMediaSize(PageMediaSizeName.NorthAmericaGermanLegalFanfold); break; }

            case DevModePaperSizes.DMPAPER_FOLIO: { pageMediaSize = new PageMediaSize(PageMediaSizeName.OtherMetricFolio); break; }

            case DevModePaperSizes.DMPAPER_JAPANESE_POSTCARD_ROTATED: { pageMediaSize = new PageMediaSize(PageMediaSizeName.JapanHagakiPostcardRotated); break; }

            case DevModePaperSizes.DMPAPER_JENV_CHOU3: { pageMediaSize = new PageMediaSize(PageMediaSizeName.JapanChou3Envelope); break; }

            case DevModePaperSizes.DMPAPER_JENV_CHOU3_ROTATED: { pageMediaSize = new PageMediaSize(PageMediaSizeName.JapanChou3EnvelopeRotated); break; }

            case DevModePaperSizes.DMPAPER_JENV_CHOU4: { pageMediaSize = new PageMediaSize(PageMediaSizeName.JapanChou4Envelope); break; }

            case DevModePaperSizes.DMPAPER_JENV_CHOU4_ROTATED: { pageMediaSize = new PageMediaSize(PageMediaSizeName.JapanChou4EnvelopeRotated); break; }

            case DevModePaperSizes.DMPAPER_JENV_KAKU2: { pageMediaSize = new PageMediaSize(PageMediaSizeName.JapanKaku2Envelope); break; }

            case DevModePaperSizes.DMPAPER_JENV_KAKU2_ROTATED: { pageMediaSize = new PageMediaSize(PageMediaSizeName.JapanKaku2EnvelopeRotated); break; }

            case DevModePaperSizes.DMPAPER_JENV_KAKU3: { pageMediaSize = new PageMediaSize(PageMediaSizeName.JapanKaku3Envelope); break; }

            case DevModePaperSizes.DMPAPER_JENV_KAKU3_ROTATED: { pageMediaSize = new PageMediaSize(PageMediaSizeName.JapanKaku3EnvelopeRotated); break; }

            case DevModePaperSizes.DMPAPER_JENV_YOU4: { pageMediaSize = new PageMediaSize(PageMediaSizeName.JapanYou4Envelope); break; }

            case DevModePaperSizes.DMPAPER_JENV_YOU4_ROTATED: { pageMediaSize = new PageMediaSize(PageMediaSizeName.JapanYou4EnvelopeRotated); break; }

            case DevModePaperSizes.DMPAPER_LEDGER: break;

            case DevModePaperSizes.DMPAPER_LETTER_ROTATED: { pageMediaSize = new PageMediaSize(PageMediaSizeName.NorthAmericaLetterRotated); break; }

            case DevModePaperSizes.DMPAPER_LETTERSMALL: break;

            case DevModePaperSizes.DMPAPER_NOTE: { pageMediaSize = new PageMediaSize(PageMediaSizeName.NorthAmericaNote); break; }

            case DevModePaperSizes.DMPAPER_P16K: { pageMediaSize = new PageMediaSize(PageMediaSizeName.PRC16K); break; }

            case DevModePaperSizes.DMPAPER_P16K_ROTATED: { pageMediaSize = new PageMediaSize(PageMediaSizeName.PRC16KRotated); break; }

            case DevModePaperSizes.DMPAPER_P32K: { pageMediaSize = new PageMediaSize(PageMediaSizeName.PRC32K); break; }

            case DevModePaperSizes.DMPAPER_P32K_ROTATED: { pageMediaSize = new PageMediaSize(PageMediaSizeName.PRC32KRotated); break; }

            case DevModePaperSizes.DMPAPER_P32KBIG: { pageMediaSize = new PageMediaSize(PageMediaSizeName.PRC32KBig); break; }

            case DevModePaperSizes.DMPAPER_P32KBIG_ROTATED: break;

            case DevModePaperSizes.DMPAPER_PENV_1: { pageMediaSize = new PageMediaSize(PageMediaSizeName.PRC1Envelope); break; }

            case DevModePaperSizes.DMPAPER_PENV_1_ROTATED: { pageMediaSize = new PageMediaSize(PageMediaSizeName.PRC1EnvelopeRotated); break; }

            case DevModePaperSizes.DMPAPER_PENV_2: { pageMediaSize = new PageMediaSize(PageMediaSizeName.PRC2Envelope); break; }

            case DevModePaperSizes.DMPAPER_PENV_2_ROTATED: { pageMediaSize = new PageMediaSize(PageMediaSizeName.PRC2EnvelopeRotated); break; }

            case DevModePaperSizes.DMPAPER_PENV_3: { pageMediaSize = new PageMediaSize(PageMediaSizeName.PRC3Envelope); break; }

            case DevModePaperSizes.DMPAPER_PENV_3_ROTATED: { pageMediaSize = new PageMediaSize(PageMediaSizeName.PRC3EnvelopeRotated); break; }

            case DevModePaperSizes.DMPAPER_PENV_4: { pageMediaSize = new PageMediaSize(PageMediaSizeName.PRC4Envelope); break; }

            case DevModePaperSizes.DMPAPER_PENV_4_ROTATED: { pageMediaSize = new PageMediaSize(PageMediaSizeName.PRC4EnvelopeRotated); break; }

            case DevModePaperSizes.DMPAPER_PENV_5: { pageMediaSize = new PageMediaSize(PageMediaSizeName.PRC5Envelope); break; }

            case DevModePaperSizes.DMPAPER_PENV_5_ROTATED: { pageMediaSize = new PageMediaSize(PageMediaSizeName.PRC5EnvelopeRotated); break; }

            case DevModePaperSizes.DMPAPER_PENV_6: { pageMediaSize = new PageMediaSize(PageMediaSizeName.PRC6Envelope); break; }

            case DevModePaperSizes.DMPAPER_PENV_6_ROTATED: { pageMediaSize = new PageMediaSize(PageMediaSizeName.PRC6EnvelopeRotated); break; }

            case DevModePaperSizes.DMPAPER_PENV_7: { pageMediaSize = new PageMediaSize(PageMediaSizeName.PRC7Envelope); break; }

            case DevModePaperSizes.DMPAPER_PENV_7_ROTATED: { pageMediaSize = new PageMediaSize(PageMediaSizeName.PRC7EnvelopeRotated); break; }

            case DevModePaperSizes.DMPAPER_PENV_8: { pageMediaSize = new PageMediaSize(PageMediaSizeName.PRC8Envelope); break; }

            case DevModePaperSizes.DMPAPER_PENV_8_ROTATED: { pageMediaSize = new PageMediaSize(PageMediaSizeName.PRC8EnvelopeRotated); break; }

            case DevModePaperSizes.DMPAPER_PENV_9: { pageMediaSize = new PageMediaSize(PageMediaSizeName.PRC9Envelope); break; }

            case DevModePaperSizes.DMPAPER_PENV_9_ROTATED: { pageMediaSize = new PageMediaSize(PageMediaSizeName.PRC9EnvelopeRotated); break; }

            case DevModePaperSizes.DMPAPER_PENV_10: { pageMediaSize = new PageMediaSize(PageMediaSizeName.PRC10Envelope); break; }

            case DevModePaperSizes.DMPAPER_PENV_10_ROTATED: { pageMediaSize = new PageMediaSize(PageMediaSizeName.PRC10EnvelopeRotated); break; }

            case DevModePaperSizes.DMPAPER_QUARTO: { pageMediaSize = new PageMediaSize(PageMediaSizeName.NorthAmericaQuarto); break; }

            case DevModePaperSizes.DMPAPER_STATEMENT: { pageMediaSize = new PageMediaSize(PageMediaSizeName.NorthAmericaStatement); break; }

            case DevModePaperSizes.DMPAPER_TABLOID: { pageMediaSize = new PageMediaSize(PageMediaSizeName.NorthAmericaTabloid); break; }
            }

            return(pageMediaSize != null);
        }
Esempio n. 29
0
 private double scaleWidth(PageMediaSize pageMediaSize, BitmapImage bitmap)
 {
     return((double)pageMediaSize.Width / bitmap.Width);
 }
Esempio n. 30
0
 private double scaleHeight(PageMediaSize pageMediaSize, BitmapImage bitmap)
 {
     return((double)pageMediaSize.Height / bitmap.Height);
 }
Esempio n. 31
0
        public async Task Render(PdfPageSize paper, IEnumerable <string> docNames, Stream outStream)
        {
            var ticket = Printing.Printing.CreateTicketForPrinter("Microsoft Print to PDF");
            //var pmsx = ticket.PageMediaSize;
            //            var pms = new PageMediaSize(PageMediaSizeName.ISOA5, 559.37d, 793.70d); // Portrait A5
            //var pms = new PageMediaSize(PageMediaSizeName.ISOA5Rotated, 793.70d, 559.37d); // Portrait A5
            var pms = new PageMediaSize(
                ResolvePaperName(paper.Name),
                paper.Width,
                paper.Height
                ); // Portrait A5

            //          var pms = new PageMediaSize(PageMediaSizeName.ISOA4, 793d, 1122d); // Portrait A4
            //            var pms = new PageMediaSize(PageMediaSizeName.ISOA4Rotated, 1122d, 793d); // Landscape A4
            ticket.PageMediaSize  = pms;
            ticket.PageBorderless = PageBorderless.Borderless;


//      var pms = ticket.PageMediaSize;


            var pageSize = new PxSize(
                (pms.Width != null) ? (float)pms.Width : 4962,
                (pms.Height != null) ? (float)pms.Height : 7014
                );

            var IsHorizontal = true;

            using (var target = Printing.Printing.CreatePrintTarget(ticket, "Microsoft Print to PDF", outStream))
                using (var printControl = new D2D1.PrintControl(D2DDevice, WicFactory, target))
                    using (var dc = new D2D1.DeviceContext(D2DDevice, D2D1.DeviceContextOptions.None))
                    {
                        dc.DotsPerInch = new DX.Size2F(600, 600);

                        var pageStack                = new List <RendererDirect2D>();
                        var pageY                    = 0f;
                        var pageX                    = 0f;
                        var frameContext             = FrameContext.CreateRoot(pageSize);
                        D2D1.CommandList commandList = null;

                        foreach (var fn in docNames)
                        {
                            try
                            {
                                var document = await Loader.Load(new Uri(fn, UriKind.RelativeOrAbsolute));

                                var children = document.Children.Count;
                                if (children == 0)
                                {
                                    continue;
                                }
                                var svg = document.RootElement;
                                if (svg == null)
                                {
                                    continue;
                                }

                                var size       = svg.GetSize(frameContext, pageSize);
                                var viewPort   = svg.GetViewBox()?.AsRectangle() ?? size.AsRectangle();
                                var ratio      = svg.GetPreserveAspectRatio().CalcMatrix(size, viewPort);
                                var renderSize = new PxSize(
                                    (int)(0.5f + (viewPort.Width * ratio.M11)),
                                    (int)(0.5f + (viewPort.Height * ratio.M22))
                                    );

                                if (pageStack.Count > 0 && !IsHorizontal && pageY + renderSize.Height > pms.Height)
                                {
                                    dc.EndDraw();
                                    commandList.Close();
                                    printControl.AddPage(commandList, new DX.Size2F(pageSize.Width, pageSize.Height));
                                    commandList.Dispose();
                                    foreach (var r in pageStack)
                                    {
                                        r.Dispose();
                                    }
                                    pageStack.Clear();
                                    pageY       = 0;
                                    pageX       = 0;
                                    commandList = null;
                                }
                                else if (pageStack.Count > 0 && IsHorizontal && pageX + renderSize.Width > pms.Width)
                                {
                                    dc.EndDraw();
                                    commandList.Close();
                                    printControl.AddPage(commandList, new DX.Size2F(pageSize.Width, pageSize.Height));
                                    commandList.Dispose();
                                    foreach (var r in pageStack)
                                    {
                                        r.Dispose();
                                    }
                                    pageStack.Clear();
                                    pageY       = 0;
                                    pageX       = 0;
                                    commandList = null;
                                }

                                dc.Transform = DX.Matrix3x2.Translation(pageX, pageY);

                                if (commandList == null)
                                {
                                    commandList = new D2D1.CommandList(dc);
                                    dc.Target   = commandList;
                                    dc.BeginDraw();
                                }

                                var render = new RendererDirect2D(this, dc);
                                await render.GetRenderer(svg.ElementType)(svg, FrameContext.CreateRoot(renderSize), render);

                                pageStack.Add(render);

                                if (IsHorizontal)
                                {
                                    pageX += renderSize.Width;
                                }
                                else
                                {
                                    pageY += renderSize.Height;
                                }
                            }
                            catch (Exception ex)
                            {
                                Console.WriteLine("Skipping {0}", ex);
                                //throw ex;
                            }
                        }

                        if (pageStack.Count > 0)
                        {
                            dc.EndDraw();
                            commandList.Close();
                            printControl.AddPage(commandList, new DX.Size2F(pageSize.Width, pageSize.Height));
                            commandList.Dispose();
                            foreach (var r in pageStack)
                            {
                                r.Dispose();
                            }
                            pageStack.Clear();
                        }

                        // Send the job to the printing subsystem and discard
                        // printing-specific resources.
                        printControl.Close();
                    }
        }
Esempio n. 32
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="name">Page media size name</param>
 /// <param name="width">Page width</param>
 /// <param name="height">Page height</param>
 /// <param name="image">Page image</param>
 /// <param name="pageMediaSize">Page media size</param>
 public PageSize(PageMediaSizeName? name, double width, double height, string image, PageMediaSize pageMediaSize)
 {
     Name = name;
     Width = width;
     Height = height;
     Image = image;
     PageMediaSize = pageMediaSize;
 }
Esempio n. 33
0
 public PageSize(PageMediaSize pageMediaSize)
 {
     PageMediaSizeName = (PageMediaSizeName)pageMediaSize.PageMediaSizeName;
     Size = new Size((double)pageMediaSize.Width, (double)pageMediaSize.Height);
 }