استفاده از HTML برای تهیه قالب‌های سفارشی ستون‌ها در PdfReport
اندازه‌ی قلم متن
تخمین مدت زمان مطالعه‌ی مطلب: یک دقیقه

فرض کنید که لیستی از کاربران را به همراه نام و تصاویر آن‌ها داریم. قصد داریم این اطلاعات را در یک سلول نمایش دهیم و نه اینکه هر کدام را در سلول‌های جداگانه‌ای قرار دهیم. روش متداول انجام اینکار تعریف یک قالب سلول سفارشی با پیاده سازی اینترفیس IColumnItemsTemplate است. راه میانبری نیز برای حل این مساله وجود دارد:
                 columns.AddColumn(column =>
                 {
                     column.PropertyName("User");
                     column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                     column.IsVisible(true);
                     column.Order(1);
                     column.Width(3);
                     column.HeaderCell("User");
                     column.CalculatedField(list =>
                         {
                             var user = list.GetSafeStringValueOf("User");
                             var photo = new Uri(list.GetSafeStringValueOf("Photo"));
                             var image = string.Format("<img src='{0}' />", photo);
                             return
                                    @"<table style='width: 100%;'>
                                                <tr>
                                                    <td>" + user + @"</td>
                                                </tr>
                                                <tr>
                                                    <td>" + image + @"</td>
                                                </tr>
                                       </table>
                                     ";
                         });
                     column.ColumnItemsTemplate(template =>
                         {
                             template.Html(); // Using iTextSharp's limited HTML to PDF capabilities (HTMLWorker class).
                         });
                 });
می‌توان از قابلیت‌های محدود تبدیل HTML به PDF موجود در کلاس HTMLWorker استفاده کرد. البته نباید انتظار زیادی از این کلاس داشت، اما برای اینگونه مقاصد بسیار مفید است. در اینجا به کمک یک CalculatedField، مقدار جدید سلول را که یک جدول HTMLایی است، به منبع داده مورد استفاده تزریق می‌کنیم. سپس با استفاده از قالب Html، آن‌را پردازش و نمایش خواهیم داد. کدهای کامل این مثال را در اینجا می‌توانید ملاحظه کنید: (^)
  • #
    ‫۵ سال و ۱ ماه قبل، یکشنبه ۲۷ مرداد ۱۳۹۸، ساعت ۲۲:۰۰
    سلام؛ من از کتابخانه PdfReport  توی aspnet core دارم استفاده میکنم. نیاز به گزارشی دارم که توی اون یکی از ردیف‌های جدول pdf ادرس لوکال یک فایل هست . من میخوام این سلول از جدول لینک باشه که وقتی کاربر روی اون کلیک میکنه اون فایل باز بشه. در واقع گزارش من به این صورت هست که من یک فایل زیپ در اختیار گزارش گیرنده قرار میدم که حاوی یک فایل pdf و تعدادی پوشه که شامل عکس و فایل‌های دیگه هست. حالا من میخوام بجای اینکه کاربر ادرس رو برداره بره اون فایل رو ببینه از همین توی pdf امکان دسترسی رو بهش بدم.
    • #
      ‫۵ سال و ۱ ماه قبل، یکشنبه ۲۷ مرداد ۱۳۹۸، ساعت ۲۳:۴۰
      - لطفا برای پرسش و پاسخ آن از این قسمت استفاده کنید.
      - امکان تعریف سلول با فرمت Hyperlink وجود دارد. یک مثال. نکته‌ی مهم در نرم‌افزار Adobe، فرمت لینک به این فایل هست که حتما باید با پروتکل ///:file شروع شود تا قابل گشودن شود. برای این منظور مسیر محلی فایل باید از طریق new Uri(file).AbsoluteUri به مسیر پروتکل فایل تبدیل شود.
  • #
    ‫۴ سال و ۶ ماه قبل، سه‌شنبه ۲۹ بهمن ۱۳۹۸، ساعت ۱۲:۴۴
    با تشکر از این کتابخانه و انتشار بروزرسانی امروز؛ این مطلب رو هم اضافه کنم که از کتابخانه شما در MCW-Modern-cloud-apps توسط مایکروسافت در یک دوره آموزشی استفاده شده. موفق و پیروز باشید.