[ConditionalFact(Helpers.AnyInstalledPrinters, Helpers.WindowsRS3OrEarlier)] // RS4 failures: https://github.com/dotnet/corefx/issues/29858 public void Clone_Success() { PageSettings ps = new PageSettings(); ps.Color = false; ps.Landscape = true; ps.Margins = new Margins(120, 130, 140, 150); ps.PaperSize = new PaperSize("My Custom Size", 222, 333); PageSettings clone = (PageSettings)ps.Clone(); Assert.Equal(ps.Color, clone.Color); Assert.Equal(ps.Landscape, clone.Landscape); Assert.Equal(ps.Margins, clone.Margins); Assert.Same(ps.PrinterSettings, clone.PrinterSettings); // PaperSize Assert.Equal(ps.PaperSize.PaperName, clone.PaperSize.PaperName); Assert.Equal(ps.PaperSize.Width, clone.PaperSize.Width); Assert.Equal(ps.PaperSize.Height, clone.PaperSize.Height); Assert.Equal(ps.PaperSize.Kind, clone.PaperSize.Kind); // PrinterResolution Assert.Equal(ps.PrinterResolution.X, clone.PrinterResolution.X); Assert.Equal(ps.PrinterResolution.Y, clone.PrinterResolution.Y); Assert.Equal(ps.PrinterResolution.Kind, clone.PrinterResolution.Kind); // PaperSource Assert.Equal(ps.PaperSource.Kind, clone.PaperSource.Kind); Assert.Equal(ps.PaperSource.SourceName, clone.PaperSource.SourceName); }
public static PageSettings DeepClonePageSettings(PageSettings pageSettings) { if (pageSettings == null) { return(null); } PageSettings pageSettings2 = (PageSettings)pageSettings.Clone(); Margins margins = pageSettings.Margins; if (margins != null) { pageSettings2.Margins = (Margins)margins.Clone(); } pageSettings2.PaperSize = new PaperSize(); pageSettings2.PaperSize.Height = pageSettings.PaperSize.Height; pageSettings2.PaperSize.PaperName = pageSettings.PaperSize.PaperName; pageSettings2.PaperSize.RawKind = pageSettings.PaperSize.RawKind; pageSettings2.PaperSize.Width = pageSettings.PaperSize.Width; pageSettings2.PaperSource = new PaperSource(); pageSettings2.PaperSource.RawKind = pageSettings.PaperSource.RawKind; pageSettings2.PaperSource.SourceName = pageSettings.PaperSource.SourceName; pageSettings2.PrinterResolution = new PrinterResolution(); pageSettings2.PrinterResolution.Kind = pageSettings.PrinterResolution.Kind; pageSettings2.PrinterResolution.X = pageSettings.PrinterResolution.X; pageSettings2.PrinterResolution.Y = pageSettings.PrinterResolution.Y; if (pageSettings.PrinterSettings != null) { pageSettings2.PrinterSettings = pageSettings.PrinterSettings; } return(pageSettings2); }
protected override void OnQueryPageSettings(QueryPageSettingsEventArgs e) { e.PageSettings = (PageSettings)m_pageSettings.Clone(); //e.PageSettings.PrinterSettings.PrintRange = PrintRange.SomePages; //e.PageSettings.PrinterSettings.FromPage = 1; //e.PageSettings.PrinterSettings.ToPage = 1; }
public static void PrintByPriner(Microsoft.Reporting.WinForms.ReportViewer viewer, string Printername) { //viewer.RefreshReport(); //viewer.SetDisplayMode(Microsoft.Reporting.WinForms.DisplayMode.PrintLayout); PageSettings pagesettings = viewer.GetPageSettings(); object objviewer = viewer; FieldInfo info = viewer.GetType().GetField("m_lastUIState", BindingFlags.FlattenHierarchy | BindingFlags.IgnoreCase | BindingFlags.Instance | BindingFlags.NonPublic); object m_lastUIState = info.GetValue(objviewer); object PostRenderArgs = null; var variables = from nn in viewer.GetType().Assembly.GetTypes() where nn.Name.Contains("ReportViewerStatus") || nn.Name.Contains("PostRenderArgs") select nn; foreach (Type type in variables) { if (type.Name.Contains("ReportViewerStatus")) { object[] prms = { m_lastUIState }; ExecuteFunction(type, prms, "DoesStateAllowPrinting"); } if (type.Name.Contains("PostRenderArgs")) { object[] ooo = { false, false }; PostRenderArgs = Activator.CreateInstance(type, ooo); } } object pr = ExecuteFunction(objviewer, null, "CreateDefaultPrintSettings"); (pr as System.Drawing.Printing.PrinterSettings).Copies = 1; //(pr as System.Drawing.Printing.PrinterSettings).PrinterName = Printername ; { object[] prms = { objviewer, pr }; ExecuteFunction(objviewer, prms, "OnPrintingBegin"); } object[] processprms = { 0, 0 }; string deviceInfo = ExecuteFunction(objviewer, processprms, "CreateEMFDeviceInfo").ToString(); ExecuteFunction(objviewer, null, "ProcessAsyncInvokes"); WriteProperityVal(objviewer, true, "PrintDialogDisplayed"); //object[] parms = { "IMAGE", true, deviceInfo, Microsoft.Reporting.WinForms.PageCountMode.Estimate, report.CreateAndRegisterStream, report.AsyncCompletedEventHandler, PostRenderArgs, false }; //ExecuteFunction(objviewer, parms, "BeginAsyncRender"); object currentReport = GetPropertyVal(objviewer, "CurrentReport"); object fileManager = GetPropertyVal(currentReport, "FileManager"); object ReportPrintDocument = null; var variables2 = from nn in viewer.GetType().Assembly.GetTypes() where nn.Name.Contains("ReportPrintDocument") select nn; foreach (Type type in variables2) { object[] parms2 = { fileManager, pagesettings.Clone() }; ConstructorInfo ci = type.GetConstructor(BindingFlags.NonPublic | BindingFlags.Instance, null, new Type[] { fileManager.GetType(), typeof(PageSettings) }, null); ReportPrintDocument = ci.Invoke(parms2); WriteProperityVal(ReportPrintDocument, pr, "PrinterSettings"); WriteProperityVal(ReportPrintDocument, "Title", "DocumentName"); ExecuteFunction(ReportPrintDocument, null, "Print"); } }
protected override void OnQueryPageSettings(QueryPageSettingsEventArgs e) { if (e == null) { throw new ArgumentNullException("e"); } e.PageSettings = (PageSettings)m_pageSettings.Clone(); }
public void StoreSetting(string printerName, PageSettings settings) { Debug.Assert(!string.IsNullOrEmpty(printerName)); _printerName = printerName; if (null == settings) { _InitPageSettings(_printerName); } else { _pageSettings = (PageSettings)settings.Clone(); } }
public MyPrintDocument(PageSettings pageSettings, PrinterSettings printerSettings) { this.DefaultPageSettings = (PageSettings)pageSettings.Clone(); this.PrinterSettings = (PrinterSettings)printerSettings.Clone(); /* * using (var dcap = new PrintUtils.DeviceCaps(this.PrinterSettings)) * { * this.printArea = dcap.PrintMillimeterArea; * } */ RectangleF rf = this.DefaultPageSettings.PrintableArea; this.printArea = new RectangleF(rf.X * 0.254f, rf.Y * 0.254f, rf.Width * 0.254f, rf.Height * 0.254f); this.OriginAtMargins = false; }
public void CloneTest() { // Check for installed printers, because we need // to have at least one to test if (PrinterSettings.InstalledPrinters.Count == 0) { Assert.Ignore("No printers found."); } PageSettings ps = new PageSettings(); ps.Color = false; ps.Landscape = true; ps.Margins = new Margins(120, 130, 140, 150); ps.PaperSize = new PaperSize("My Custom Size", 222, 333); PageSettings clone = (PageSettings)ps.Clone(); Assert.AreEqual(ps.Color, clone.Color, "#1"); Assert.AreEqual(ps.Landscape, clone.Landscape, "#2"); Assert.AreEqual(ps.Margins, clone.Margins, "#3"); Assert.AreSame(ps.PrinterSettings, clone.PrinterSettings, "#4"); // PaperSize Assert.AreEqual(ps.PaperSize.PaperName, clone.PaperSize.PaperName, "#5"); Assert.AreEqual(ps.PaperSize.Width, clone.PaperSize.Width, "#6"); Assert.AreEqual(ps.PaperSize.Height, clone.PaperSize.Height, "#7"); Assert.AreEqual(ps.PaperSize.Kind, clone.PaperSize.Kind, "#8"); // PrinterResolution Assert.AreEqual(ps.PrinterResolution.X, clone.PrinterResolution.X, "#9"); Assert.AreEqual(ps.PrinterResolution.Y, clone.PrinterResolution.Y, "#10"); Assert.AreEqual(ps.PrinterResolution.Kind, clone.PrinterResolution.Kind, "#11"); // PaperSource Assert.AreEqual(ps.PaperSource.Kind, clone.PaperSource.Kind, "#12"); Assert.AreEqual(ps.PaperSource.SourceName, clone.PaperSource.SourceName, "#13"); }
protected override void OnQueryPageSettings(QueryPageSettingsEventArgs e) { e.PageSettings = (PageSettings)m_pageSettings.Clone(); }