Announcement

Collapse
No announcement yet.

FlowDocuments zu RTF

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • FlowDocuments zu RTF

    Hallo,

    ich suche jetzt seit Stunden nach einer Möglichkeit, wenn ich ein FD als rtf über folgenden Code speichere

    Code:
     public static void Rtf(string path, FlowDocument document)
            {
                var range = new TextRange(document.ContentStart, document.ContentEnd);
    
                using (var fStream = new FileStream(path, FileMode.Create))
                {
                    range.Save(fStream, DataFormats.Rtf,true);
    
                    fStream.Close();
                }
            }
    dass dann die Seitenränder beachtet werden. Im FD sind folgende Werte gesetzt:

    Code:
     flo.ColumnWidth = 96*7.5; // Spaltenbreite
                flo.PageHeight = 96*11; // Höhe der Seite
                flo.PageWidth = 96*8.5; // Breite der Seite
                flo.MaxPageWidth = 96*8.5;
                flo.PagePadding = new Thickness(96*0.7, 96*0.7, 96*0.7, 96*0.7); //Innenabstände
                flo.FontFamily = new FontFamily("Arial");
                flo.FontSize = 11;
                flo.IsHyphenationEnabled = true;
                flo.IsOptimalParagraphEnabled = true;
                flo.IsColumnWidthFlexible = false;
    Wenn ich das als XPS speichere :

    Code:
     public static bool Xps(string path, FlowDocument document)
            {
                using (Package package = Package.Open(path, FileMode.Create))
                {
                    using (var xpsDoc = new XpsDocument(
                        package, CompressionOption.Maximum))
                    {
                        var xpsSm = new XpsSerializationManager(
                            new XpsPackagingPolicy(xpsDoc), false);
                        DocumentPaginator dp =
                            ((IDocumentPaginatorSource) document).DocumentPaginator;
                        xpsSm.SaveAsXaml(dp);
    
    
                        xpsDoc.Close();
                    }
    
                    package.Close();
                }
                GC.Collect();
                return true;
            }
    Sieht es genauso aus wie ich es erstellt habe, speichere ich das FD als RTF, dann bleiben die Formatierungen zwar erhalten, aber der Seiten rand rechts wird ignorieret! Im Klartext, die eingefügten Tabellen im FD werden im XPS richtig angezeigt und in der RTF gehen sie über den Seitenrand hinaus. Kann man das irgendwie umgehen?


    mfg Daniel

  • #2
    In welchem RTF Viewer? Ich habe nicht wirklich Ahnung von rtf aber für mich ist rtf ein reines Textformatierungsding das nicht wirklich was von Seitengrößen etc. weiß. Insofern gehe ich davon aus das ein RTF Viewer das selbst regelt (anhand des Defaultdruckers, Uservorgaben etc.) wie der Text umgebrochen und auf Seiten angepasst wird. Zumindest zähle ich rtf nicht gerade zu den transportierbaren Formaten wie XPS und PDF und würde bei RTF nie mit wiederholbarer Seitenformatierung rechnen.

    Comment

    Working...
    X