Frage

Ich habe eine Situation, wo ich will konvertiert eine RTF Dokument Bild für die Archivierung und Druck. Ich bin mit .NET.
Gibt es Bibliotheken gibt, die mir bei dieser Umwandlung helfen könnte?

Ich muss

  • konvertieren eine RTF Bild auf einem Server
  • das Papierformat festlegen, die beim Erstellen des Bildes
  • eingehalten werden muss,

Eine kommerzielle Bibliothek ist eine Option, aber ich ziehe O. Wenn es Art und Weise eine Client-Seite zu tun, das ist eine gültige Antwort als gut, aber Server-Seite wäre sehr schön.

Edit:

Danke für all die großen Antworten. Da alle von ihnen ein RTF-Dokument Ich habe eine Follow-up-Frage beinhalten Druck:

  • Was ist der beste Weg, um ein RTF-Dokument auf einem Server
  • drucken
War es hilfreich?

Lösung

Meine Empfehlung wäre, einen Druckertreiber zu haben, die zu einem Bild-Dumps -. Sie können die Standard-Druckfunktionen (wie zB Papierformat) verwenden können und dann die Datei packen und dass für den tatsächlichen Druck oder Archivierung verwenden

Free & Open-Source-Version ist: Virtual Image Druckertreiber

Andere Tipps

Ich habe mit diesem vor kurzem zu tun hatte. Unsere Anwendung ermöglicht es dem Benutzer eine RTF in einer Standard-Steuerung zu bearbeiten (kommt mit Visual Studio) und wandeln sie dann zu einem Bild, so dass wir es in einer anderen Anwendung senden konnten, die nicht RTF verstanden.

sah ich ziemlich hart online und es schien die einzige Möglichkeit, einen Screenshot der Kontrolle zu übernehmen war und konvertieren, das zu einem Bild. Bedeutung jeden Text, der außerhalb des sichtbaren Bereichs war (das heißt mussten Sie blättern) erscheint nicht. Hat mich wirklich überrascht, dass es so zerhackt.

werden musste

Ich weiß, Sie gebeten, über kommerzielle Bibliotheken, aber ich dachte, ich lasse Sie meine Erfahrung mit der eingebauten Steuer kennen.

Die Erweiterung auf Robert Antwort, können Sie, falls notwendig, vermeiden einen Standard-Druckertreiber herunterzuladen, indem nur ein „Standard“ Drucker Kommissionierung, die mit dem Betriebssystem und den Druck kommt Datei. Viele der Fahrer sind Justing eine Standardversion von Postscript verwenden. Im Allgemeinen ist es ziemlich einfach, Postscript-Dateien in PDF-Dateien zu konvertieren für bei Bedarf angezeigt wird. Druck von ihnen ist in der Regel leicht zu.

Diese Lösung ist etwas mehr Arbeit als nur einen speziellen Treiber, die ein Bild ausgibt.

Ich konnte das Bild des richtextbox erfassen, indem Code-Schnipsel folgen. Ich denke, es kann auch die Benutzung sein.

private void ShowBitmap_btn_Click(object sender, RoutedEventArgs e)
    {
        if (MyTextBox_txt == null)
            return;

        Rect _descendentBounds = VisualTreeHelper.GetDescendantBounds(MyTextBox_txt);
        //RenderTargetBitmap _targetBitmap = new RenderTargetBitmap((Int32)_descendentBounds.Width, 
        //                                                          (Int32)_descendentBounds.Height, 
        //                                                          96, 96, PixelFormats.Pbgra32);

        Rect _tempRect = new Rect(System.Windows.Forms.Screen.PrimaryScreen.Bounds.X,
                                    System.Windows.Forms.Screen.PrimaryScreen.Bounds.Y,
                                    System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width,
                                    System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height);
        RenderTargetBitmap _targetBitmap = new RenderTargetBitmap((Int32)_tempRect.Width,
                                                                            (Int32)_tempRect.Height,
                                                                                96, 96, PixelFormats.Pbgra32);

        DrawingVisual _drawingVisual = new DrawingVisual();

        using (DrawingContext _drwaingContext = _drawingVisual.RenderOpen())
        {
            VisualBrush _visualBrush = new VisualBrush(MyTextBox_txt);
            _drwaingContext.DrawRectangle(_visualBrush, null, new Rect(new Point(), _tempRect.Size));
        }

        _targetBitmap.Render(_drawingVisual);

        PngBitmapEncoder _png = new PngBitmapEncoder();

        _png.Frames.Add(BitmapFrame.Create(_targetBitmap));
        Stream _fileStream;
        _fileStream = File.Create(@"E:\sample1.png");

        _png.Save(_fileStream);

        System.Drawing.Bitmap _tempBitmap = new System.Drawing.Bitmap(_fileStream);
        _tempBitmap.Save(@"E:\sample1.bmp");

        _fileStream.Close();
        _fileStream.Dispose();

    }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top