تحويل وثيقة RTF إلى الصورة أو طباعة RTF على الخادم

StackOverflow https://stackoverflow.com/questions/666021

  •  21-08-2019
  •  | 
  •  

سؤال

لدي مشكلة حيث أريد أن تحويل RTF الوثيقة على الصورة لأرشفة وطباعة.أنا باستخدام .صافي.
هل هناك أي المكتبات هناك التي يمكن أن تساعد لي مع هذا التحويل ؟

أريد أن

  • تحويل RTF إلى صورة على خادم
  • تعيين حجم الورق التي يتعين الالتزام بها عند إنشاء الصورة

تجاري المكتبة هو خيار ولكن يفضل نظام التشغيل.إذا كان هناك جانب العميل طريقة للقيام بذلك هذا جواب صحيح أيضا ، ولكن من جانب الخادم سيكون لطيفا للغاية.

تحرير:

شكرا على كل الإجابات.لأن كل منهم تنطوي على طباعة وثيقة RTF يجب متابعة السؤال:

  • ما هي أفضل طريقة لطباعة وثيقة RTF على خادم
هل كانت مفيدة؟

المحلول

توصيتي أن يكون لديك برنامج تشغيل طباعة مقالب إلى صورة - وبهذه الطريقة يمكنك استخدام ميزات الطباعة (مثل بما في ذلك حجم الورق) ومن ثم الاستيلاء على الملف واستخدام ذلك الطباعة الفعلية أو الأرشفة.

مجانا & نسخة مفتوحة المصدر هو: صورة افتراضية تشغيل الطابعة

نصائح أخرى

لقد كان التعامل مع هذه الآونة الأخيرة.لدينا التطبيق يسمح للمستخدم لتحرير بعض الخانات في التحكم القياسية (يأتي مع visual studio) ومن ثم تحويله إلى صورة لذلك نحن يمكن أن ترسل إلى تطبيق آخر لم أفهم RTF.

نظرت من الصعب جدا على الانترنت ويبدو الاحتمال الوحيد هو أن تأخذ لقطة من التحكم و تحويله إلى صورة.معنى أي نص كان خارج مساحة للعرض (أيكان عليك أن انتقل) لن تظهر.فاجأني حقا أنه كان لابد من اختراق مثل هذا.

أعلم أنك سألت عن المكتبات التجارية ولكن أعتقد أنا سوف تتيح لك معرفة تجربتي مع المدمج في التحكم.

التوسع في روبرت الجواب, يمكنك, إذا لزم الأمر ، تجنب تحميل معيار print driver فقط عن طريق اختيار "المعيار" الطابعة التي تأتي مع نظام التشغيل و الطباعة إلى ملف.الكثير من السائقين justing باستخدام الإصدار القياسي من بوستسكريبت.هو عموما من السهل جدا لتحويل ملفات بوستسكريبت إلى ملفات pdf للعرض إذا لزم الأمر.الطباعة لهم عموما من السهل جدا.

هذا الحل هو عمل أكثر قليلا من مجرد استخدام المتخصصة السائق الذي مخرجات صورة.

كنت قادرا على التقاط صورة richtextbox من التعليمات البرمجية المتكررة.أعتقد أنه قد يكون للاستخدام الخاص بك أيضا.

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();

    }
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top