private void SaveToRTF(string filePath) { using (FileStream fileStream = new FileStream(filePath, FileMode.Create)) { var flowDocument = Printing.CreateFlowDocumentToPrint(TextEditor); var textRange = new TextRange(flowDocument.ContentStart, flowDocument.ContentEnd); textRange.Save(fileStream, DataFormats.Rtf); } }
private void SaveAsXps(TextEditor textEditor, string fileName, string title) { using (Package package = Package.Open(fileName, FileMode.Create)) { using (XpsDocument xpsDoc = new XpsDocument(package, CompressionOption.Fast)) { XpsSerializationManager xpsSerializationManager = new XpsSerializationManager(new XpsPackagingPolicy(xpsDoc), false); DocumentPaginatorWrapper paginator = Printing.CreateDocumentPaginatorToPrint(textEditor); paginator.Title = title; xpsSerializationManager.SaveAsXaml(paginator); } } }
/// <summary> /// Create PDF file by using PdfSharp. It create a InMemory XPS file internally, /// then convert the XPS stream to PDF file. /// </summary> /// <param name="pdfFilePath"></param> private void SaveAsPDFBySharpPDF(string pdfFilePath) { using (MemoryStream xpsStream = new MemoryStream()) { Package package = Package.Open(xpsStream, FileMode.Create); XpsDocument xpsDocInMemory = new XpsDocument(package); XpsDocumentWriter writer = XpsDocument.CreateXpsDocumentWriter(xpsDocInMemory); DocumentPaginatorWrapper paginator = Printing.CreateDocumentPaginatorToPrint(TextEditor); paginator.Title = FilePath2Title(pdfFilePath); writer.Write(paginator); xpsDocInMemory.Close(); package.Close(); var xpsDoc = PdfSharp.Xps.XpsModel.XpsDocument.Open(xpsStream); PdfSharp.Xps.XpsConverter.Convert(xpsDoc, pdfFilePath, 0); } }