PDA

View Full Version : سوال: عدم نمایش متون فارسی در Stimulsoft Report



Spate
شنبه 24 شهریور 1397, 16:47 عصر
سلام دوستان

ی برنامه با net core web api l نوشتم.
حالا توی گزارشگیری از Stimulsoft و FastReport استفاده کردم. در هردو به مشکل با فونت فارسی برخورد کردم.
در Stimulsoft وقتی که از متد ExportToPdf استفاده میکنم، اگر روی سیستم فونت گزارش نصب نباشه متون فارسی نمایش داده نمیشه و در اندروید هم که بطور کل با هر فونتی متون فارسی نمایش داده نمیشه.
در FastReport وفتی از PDFExport استفاده میکنم و فایل خروجی رو دریافت میکنم متون فارسی بصورت شکل زیر نمایش داده میشه.
148881

درصورتی که راه حلی برای این مشکل داشته باشید ممنون میشم که راهنمایی کنید.

سپاس از دوستان عزیز

fakhravari
یک شنبه 25 شهریور 1397, 07:01 صبح
سلام
برای Stimulsoft حتما باید فونت در سرور نصب باشه.
یا در هر صورت از فونت های سیستم استفاده کنید

Spate
یک شنبه 25 شهریور 1397, 10:46 صبح
سلام
برای Stimulsoft حتما باید فونت در سرور نصب باشه.
یا در هر صورت از فونت های سیستم استفاده کنید

فونت‌ها نصب هست و در توضیحات هم نوشتم که با هر فونتی این مشکل در اندروید وحود داره!

Spate
دوشنبه 26 شهریور 1397, 10:36 صبح
برای راهنمایی دوستانی که به این مشکل برخورد کنند، به دلیل عدم پشتیبانی .net core از زبان فارسی بصورت صحیح، در گرفتن خروحی مستقیم PDF مشکل ساز می‌شود.

راه حل:
استفاده از یک وب سرویس تحت .net framwork یا ویندوز سرویس می‌باشد.
اطلاعات دریافت از طریق هسته به وب سرویس انتقال داده شود و سپس خروجی PDF به سمت هسته نرم‌افزار برگشن داده شود.

امیدوارم این راه حل بتونه کمک مفیده به شما کنه

fakhravari
دوشنبه 05 آذر 1397, 07:02 صبح
نه این مشکل چیز دیگری است.
کلا pdf از یک سری کاراکتر ها پشتیبانی نیمکند در زبان فارسی بیشتر روی کلمه انگلیسی که بین متن فارسی باشه ولی اگه از Tahoma استفاده بشه مشکلی نیست

Spate
دوشنبه 05 آذر 1397, 10:57 صبح
نه این مشکل چیز دیگری است.
کلا pdf از یک سری کاراکتر ها پشتیبانی نیمکند در زبان فارسی بیشتر روی کلمه انگلیسی که بین متن فارسی باشه ولی اگه از Tahoma استفاده بشه مشکلی نیست
دوست گرامی
برای اطلاع سایر دوستان، بنده از روشی که عرض کردم استفاده کردم و مشکل بصورت کامل برطرف شد.
همچنین در dot net core حتا اگر فونت Tahoma هم استفاده بشه، باز هم مشکل بهم‌ریختگی کارکترها برطرف نمیشه!

شاد و پیروز باشد

sgn2006
سه شنبه 25 دی 1397, 09:47 صبح
سلام
میشه در مورد وب سرویس بیشتر توضیح بدی

من هم دقیقا این مشکل را دارم با این که فونت ها نصب هستن ولی به هم ریختگی حروف دارم


زنده باد ایران و ایرانی

Spate
پنج شنبه 27 دی 1397, 16:04 عصر
سلام
میشه در مورد وب سرویس بیشتر توضیح بدی

من هم دقیقا این مشکل را دارم با این که فونت ها نصب هستن ولی به هم ریختگی حروف دارم


زنده باد ایران و ایرانی

درود
از چه فریم ورک و ورژنی استفاده می‌کنی؟

fakhravari
پنج شنبه 04 بهمن 1397, 11:03 صبح
یک راه دیگه اینه زمانی که داری خروجی میگیری تیک Embedded font بزنی توی دیالگی که برای export باز میشه

Spate
پنج شنبه 04 بهمن 1397, 11:11 صبح
یک راه دیگه اینه زمانی که داری خروجی میگیری تیک Embedded font بزنی توی دیالگی که برای export باز میشه

جناب فخرآوری، وقتی توی بک‌اند خروجی پی‌دی‌اف ساخته میشه هیچ دایلاگی نمایش داده نمیشه و تنها یک فایل از سمت سرور به کلاینت ارسال میشه

fakhravari
چهارشنبه 24 بهمن 1397, 23:28 عصر
سلام
وقتی preview صفحه باز میشه. خب از سمت چپ لیست انواع سیو ها میاد دیگه.
ولی از اونجا روی فلاپی بزنی و بعد pdf دیالوگی باز میشه

fakhravari
چهارشنبه 24 بهمن 1397, 23:30 عصر
الان چک کردم توی وب فرم دیالوگ نداره
مثلا
http://fakhravary.somee.com/Reporting/ListByIDCat.aspx?IdCat=4
ولی تو mvc داره.

ساده ترین حالتش اینه از فونت های arial - tohama استفاده بشه


https://forum.stimulsoft.com/viewtopic.php?t=56909

Spate
پنج شنبه 25 بهمن 1397, 00:38 صبح
الان چک کردم توی وب فرم دیالوگ نداره
مثلا
http://fakhravary.somee.com/Reporting/ListByIDCat.aspx?IdCat=4
ولی تو mvc داره.

ساده ترین حالتش اینه از فونت های arial - tohama استفاده بشه


https://forum.stimulsoft.com/viewtopic.php?t=56909




برای راهنمایی دوستانی که به این مشکل برخورد کنند، به دلیل عدم پشتیبانی .net core از زبان فارسی بصورت صحیح، در گرفتن خروحی مستقیم PDF مشکل ساز می‌شود.

راه حل:
استفاده از یک وب سرویس تحت .net framwork یا ویندوز سرویس می‌باشد.
اطلاعات دریافت از طریق هسته به وب سرویس انتقال داده شود و سپس خروجی PDF به سمت هسته نرم‌افزار برگشن داده شود.

امیدوارم این راه حل بتونه کمک مفیده به شما کنه


بنده با این روش جواب گرفتم.
البته توی DotNet Core-3 مشکل زبانهای RTL برطرف شده و شما می‌تونید توی خود برنامه فایل PDF رو بسازید و به سمت کلاینت ارسال کنید.

sgn2006
چهارشنبه 08 اسفند 1397, 09:46 صبح
سلام

از فرم ورک 4.5.2 استفاده می کنم

من میخام وقتی کاربر کلید چاپ رو زد مستقیم صفحه pdf باز شه براش ولی در حال حاضر با html باز میشه !!! شما فرمودید از وب سرویس استفاده کردید میشه یک sample بزارید ؟


زنده باد ایران و ایرانی

sgn2006
چهارشنبه 08 اسفند 1397, 09:47 صبح
درود
از چه فریم ورک و ورژنی استفاده می‌کنی؟

سلام

از فرم ورک 4.5.2 استفاده می کنم

من میخام وقتی کاربر کلید چاپ رو زد مستقیم صفحه pdf باز شه براش ولی در حال حاضر با html باز میشه !!! شما فرمودید از وب سرویس استفاده کردید میشه یک sample بزارید ؟


زنده باد ایران و ایرانی

fakhravari
دوشنبه 13 اسفند 1397, 06:37 صبح
سلام

از فرم ورک 4.5.2 استفاده می کنم

من میخام وقتی کاربر کلید چاپ رو زد مستقیم صفحه pdf باز شه براش ولی در حال حاضر با html باز میشه !!! شما فرمودید از وب سرویس استفاده کردید میشه یک sample بزارید ؟


زنده باد ایران و ایرانی


وب فرم یا mcv ?

Amin69
سه شنبه 22 مرداد 1398, 16:53 عصر
منم به همین مشکل توی Core برخوردم. و PDF های خروجی توی موبایل یا برخی سیستم های دیگه بدرستی نشون نمیده. کسی راه حلی براش پیدا کرده؟

Spate
سه شنبه 22 مرداد 1398, 17:35 عصر
دوست عزیز طبق توضیح قبلی، شما میتونید یک پروژه بر فراز .Net Framework 4.x و همه درخواستهای گزارش رو به اون ارسال کنید و سپس فایل تولید شده رو به سمت کلاینت ارسال کنید.





[HttpPost("[action]")]
public IActionResult ContractReport([FromBody]Model model)
{
Stimulsoft.Base.StiLicense.Key = StimulReportKey;
var report = new StiReport();
report.Load($"Report/{report-file-name}.mrt");
string connectionString = "";//your connection string
StiSqlDatabase stiSql = new StiSqlDatabase();
stiSql = (StiSqlDatabase)report.Dictionary.Databases["{stimul-report database name}"];
stiSql.ConnectionString = connectionString;








report.Dictionary.Variables["customerId"].Value = model.CustomerId;
report.Dictionary.Variables["DeviceId"].Value = model.DeviceId;
report.Render();








MemoryStream ms = new MemoryStream();
report.ExportDocument(StiExportFormat.Pdf, ms);
ms.Seek(0, SeekOrigin.Begin);
return File(ms, "application/pdf");
}

Amin69
چهارشنبه 23 مرداد 1398, 08:45 صبح
دوست عزیز طبق توضیح قبلی، شما میتونید یک پروژه بر فراز .Net Framework 4.x و همه درخواستهای گزارش رو به اون ارسال کنید و سپس فایل تولید شده رو به سمت کلاینت ارسال کنید.

[HttpPost("[action]")]
public IActionResult ContractReport([FromBody]Model model)
...


ممنونم از پاسختون؛ اما استفاده از این روش منطقی به نظر نمیرسه؛ بخصوص اینکه وقتی بخوای در یک یا چند پروژه تجاری ازش با تعداد ریپورت های بالا ازش استفاده کنی.
مشکل سازگاری استیمال با core هست یا کلا core در ساخت pdf فارسی مشکل داره؟

کسی راه حل درون پروژه ای سراغ نداره؟

Spate
یک شنبه 27 مرداد 1398, 20:30 عصر
ممنونم از پاسختون؛ اما استفاده از این روش منطقی به نظر نمیرسه؛ بخصوص اینکه وقتی بخوای در یک یا چند پروژه تجاری ازش با تعداد ریپورت های بالا ازش استفاده کنی.
مشکل سازگاری استیمال با core هست یا کلا core در ساخت pdf فارسی مشکل داره؟

کسی راه حل درون پروژه ای سراغ نداره؟

مشکل از .Net Core هست ولی توی ورژن 3 این مشکل برطرف شده.
میتونید به .NET Core 3.0.0-preview8 آپیدیت کنید.