PDA

View Full Version : ذخیره متن RichTextBox به فرمت XPS



mosi_asgari
دوشنبه 23 آذر 1388, 14:25 عصر
سلام

برنامه ای دارم که یک RichTextBox دارد و کاربر می تواند متن خود را ویرایش کند.من می خواهم سپس متن فرمت شده کاربر را با فرمت XPS ذخیره کنم.

کسی نحوه انجام این کارو میدونه؟

با کلاس XpsDocumentWriter و متد write میشه فایل xps را ایجاد کرد اما هیچ کدام از overload های متد write کلاس FlowDocument رو قبول نمیکنند.

آخه richTextBox.Document یک شئی از جنس FlowDocument برمیگردونه اما متد write می تونه FixedDocument رو قبول کنه و چیزهای دیگه.

اگه دوستان راه حلی برای این موضوع میدونند راهنمایی کنند لطفا.

ممنون از کمک شما دوستان خوب.

رضا عربلو
دوشنبه 23 آذر 1388, 21:01 عصر
من هم به همین مشکل مواجه شده بودم و بعد از کلی جستجو به راه حل زیر رسیدم. راه حل تقریباً کاملی است.

Convert XAML Flow Document to XPS with Style (multiple page, page size, header, margin) (http://blogs.msdn.com/fyuan/archive/2007/03/10/convert-xaml-flow-document-to-xps-with-style-multiple-page-page-size-header-margin.aspx)

mosi_asgari
سه شنبه 24 آذر 1388, 10:45 صبح
واقا از لطف شما ممنونم آقای عربلو.

کمک عالی به من کردید. :تشویق:

mosi_asgari
سه شنبه 24 آذر 1388, 11:04 صبح
حالا یک سوال دیگه می پرسم که فقط برای بالا بردن اطلاعات عمومیه اگه باید در یک topic جدید قرار بدم بگید.

برای ایجاد FixedDocument ابتدا یک نمونه از این شئی ایجاد می کنیم سپس باید PageContent بسازیم سپس FixedPage. بعد FixedPage رو به PageContent اضافه کنیم.

خوب چرا دو تا کلاس برای این کار در نظر گرفتن؟؟؟ یکیش کافی نبود مثلا فقط FixedPage باشه بعد FixedPage ها رو به FixedDocument اضافه کنیم.

حدس خود من اینه که PageContent میتونه شئ ء های دیگه همه به مجموعه خودش اضافه کنه اما نمی دونم چی؟

اگه شما دلیل این کارو میدونید بگید.

رضا عربلو
سه شنبه 24 آذر 1388, 21:34 عصر
1 - یک PageContent می تواند چندین FixedPage را در خود قرار دهد.
2- هر دو کلاس متدها، اونت ها و پراپرتی های متفاوتی را ارائه می کنند.
3- علت ارائه دو کلاس FixedPage و PageContent تطابق با دنیای واقعی،و سازماندهی بهتر و ..... documentها می باشد.