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); }
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(); } }
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); }
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); }
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); }
private void OnWindowLoaded(object sender, RoutedEventArgs e) { var pageSize = new PageMediaSize(PageMediaSizeName.ISOA4); if (pageSize.Width != null) { testDetailsDoc.ColumnWidth = pageSize.Width.Value; } this.CreateDocument(); }
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; }
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; }
/* 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); } }
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); }
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); } } }
/// <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"); } }
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; }
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); }
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"); } }
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); }
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; } }
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); }
private double scaleWidth(PageMediaSize pageMediaSize, BitmapImage bitmap) { return((double)pageMediaSize.Width / bitmap.Width); }
private double scaleHeight(PageMediaSize pageMediaSize, BitmapImage bitmap) { return((double)pageMediaSize.Height / bitmap.Height); }
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(); } }
/// <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; }
public PageSize(PageMediaSize pageMediaSize) { PageMediaSizeName = (PageMediaSizeName)pageMediaSize.PageMediaSizeName; Size = new Size((double)pageMediaSize.Width, (double)pageMediaSize.Height); }