public void SendToPrinter() { // Clone the patient card var flowDocumentScrollViewer = IndividualPatientCardContainer.FindChild <FlowDocumentScrollViewer>(); var flowDocument = flowDocumentScrollViewer.Document; var documentClone = CloneXamlControl(flowDocument); // Get the document paginator // Display the print dialog and print if confirmed var dialog = new PrintDialog(); if (dialog.ShowDialog() == true) { documentClone.PageHeight = dialog.PrintableAreaHeight - 96; documentClone.PageWidth = dialog.PrintableAreaWidth - 96; documentClone.PagePadding = new Thickness(0); documentClone.ColumnGap = 0; documentClone.ColumnWidth = dialog.PrintableAreaWidth; var paginator = ((IDocumentPaginatorSource)documentClone).DocumentPaginator; // Wrap with fixed page size paginator: 8 inch x 6 inch, with half inch margin paginator = new DocumentPaginatorWrapper(paginator, new Size(dialog.PrintableAreaWidth, dialog.PrintableAreaHeight), new Size(48, 48)); dialog.PrintDocument(paginator, "Patient card"); } }
/// <summary> /// Creates a DocumentPaginatorWrapper from TextEditor text to print. /// </summary> public static DocumentPaginatorWrapper CreateDocumentPaginatorToPrint(TextEditor textEditor, PageSettings pageSettings, PrintTicket printTicket, string title) { // this baby adds headers and footers IDocumentPaginatorSource dps = CreateFlowDocumentToPrint(textEditor, pageSettings, printTicket); DocumentPaginatorWrapper dpw = new DocumentPaginatorWrapper(dps.DocumentPaginator, pageSettings, printTicket, textEditor.FontFamily); dpw.Title = title; return(dpw); }
/// <summary> /// Creates a DocumentPaginatorWrapper from TextEditor text to print. /// </summary> static DocumentPaginatorWrapper CreateDocumentPaginatorToPrint(TextEditor textEditor, bool withHighlighting) { PrintSettings settings = textEditor.Tag as PrintSettings; if (settings == null) { settings = new PrintSettings(); textEditor.Tag = settings; } // this baby adds headers and footers IDocumentPaginatorSource dps = CreateFlowDocumentToPrint(textEditor, withHighlighting); DocumentPaginatorWrapper dpw = new DocumentPaginatorWrapper(dps.DocumentPaginator, settings.PageSettings, settings.PrintTicket, textEditor.FontFamily); dpw.Title = settings.DocumentTitle; return(dpw); }
/// <summary> /// Loads the specified DocumentPaginatorWrapper document for print preview. /// </summary> public void LoadDocument(DocumentPaginatorWrapper document) { m_Document = document; string temp = System.IO.Path.GetTempFileName(); if (File.Exists(temp) == true) { File.Delete(temp); } XpsDocument xpsDoc = new XpsDocument(temp, FileAccess.ReadWrite); XpsDocumentWriter xpsWriter = XpsDocument.CreateXpsDocumentWriter(xpsDoc); xpsWriter.Write(document); documentViewer.Document = xpsDoc.GetFixedDocumentSequence(); xpsDoc.Close(); }
public int SaveAsXps(string fileName) { using (var container = Package.Open(fileName + ".xps", FileMode.Create)) using (var xpsDoc = new XpsDocument(container, CompressionOption.Maximum)) { var rsm = new XpsSerializationManager(new XpsPackagingPolicy(xpsDoc), false); var documentClone = CloneXamlControl(IndividualCard); var paginator = ((IDocumentPaginatorSource)documentClone).DocumentPaginator; // 8 inch x 6 inch, with half inch margin paginator = new DocumentPaginatorWrapper(paginator, new Size(768, 676), new Size(48, 48)); rsm.SaveAsXaml(paginator); } return(0); }
/// <summary> /// Creates a DocumentPaginatorWrapper from TextEditor text to print. /// </summary> static DocumentPaginatorWrapper CreateDocumentPaginatorToPrint(TextEditor textEditor) { // this baby adds headers and footers IDocumentPaginatorSource dps = CreateFlowDocumentToPrint(textEditor); DocumentPaginatorWrapper dpw = new DocumentPaginatorWrapper(dps.DocumentPaginator, mPageSettings, mPrintTicket, textEditor.FontFamily); dpw.Title = mDocumentTitle; return dpw; }