تبدیل HTML به PDF با استفاده از کتابخانه‌ی iTextSharp
روش متداول کار با کتابخانه‌ی iTextSharp ، ایجاد شیء Document ، سپس ایجاد PdfWriter برای نوشتن در آن، گشودن سند و ... افزودن اشیایی مانند Paragraph ، PdfPTable ، PdfPCell و غیره به آن است و در نهایت بستن سند. راه میانبری هم برای کار با این کتابخانه وجود دارد و آن هم استفاده از امکانات فضای نام iTextSharp.text.html.simpleparser آن می‌باشد. به این ترتیب می‌توان به صورت خودکار، یک محتوای HTML را تبدیل به فایل PDF کرد. مثال : نمایش یک متن HTML ...
تهیه فید از تغییرات SVN
کتابخانه‌ی iTextSharp 5.1.2 هفته‌ی قبل منتشر شده و ... من هر چقدر سایتی، بلاگی جایی را جستجو کردم که خلاصه‌ای از تغییرات انجام شده آن‌را گزارش دهد، چیزی نیافتم. ولی خوب، مطابق روال متداول کتابخانه‌های سورس باز، حداقل می‌توان به change log مرتبط با سورس کنترل آن‌ها مراجعه کرد. مثلا:البته این هم خوب است ولی ای‌کاش می‌شد مثلا یک فید هم از این تغییرات تهیه کرد. یک سری از سایت‌های هاستینگ مثل CodePlex و GitHub یک چنین فیدهایی را دارند. اما به ن ...
تعریف رنگ در iTextSharp
در کتابخانه‌ی iTextSharp به جهت سازگاری با کتابخانه‌ی اصلی، رنگ‌ها را بر اساس کلاسی به نام BaseColor تعریف کرده‌اند؛ که ای‌کاش به جای این‌کار، همه را با کلاس Color فضای نام استاندارد System.Drawing جایگزین می‌کردند. همین مشکل با فونت هم هست. یک کلاس فونت در فضای نام iTextSharp.text وجود دارد به علاوه کلاس فونت تعریف شده در فضای نام استاندارد System.Drawing دات نت؛ که خیلی سریع می‌تواند به خطای کامپایل زیر ختم شود:'Font' is an ambiguous ref ...
روش صحیح تعریف قلم در iTextSharp
روش متداول تعریف فونت در iTextSharp به صورت زیر است:public static iTextSharp.text.Font Tahoma() { var fontPath = Environment.GetEnvironmentVariable("SystemRoot") + "\\fonts\\tahoma.ttf"; var baseFont = BaseFont.CreateFont(fontPath, BaseFont.IDENTITY_H, BaseFont.EMBEDDED); return new Font(baseFont); } از آنجائیکه خصوصا برای متون فارسی نیاز است تا به ازای هر المان کوچکی این فونت تنظیم شود و‌ در غیر اینصورت متنی نمایش داده نخوا ...
چند ستونه کردن در iTextSharp
فرض کنید جدولی دارید با چند ستون محدود که نتیجه‌ی نهایی گزارش آن مثلا 100 صفحه است. جهت صرفه جویی در کاغذ مصرفی شاید بهتر باشد که این جدول را به صورت چند ستونی مثلا 5 ستون در یک صفحه نمایش داد؛ چیزی شبیه به شکل زیر:روش انجام اینکار به کمک iTextSharp به صورت زیر است:using System; using System.IO; using iTextSharp.text; using iTextSharp.text.pdf; using System.Diagnostics; class Program { static void Main(string[] args) { ...
فرمت مناسب تصاویر جهت استفاده در iTextSharp
عموما هنگام تهیه یک مستند یا گزارش، هرچقدر حجم نهایی کمتر باشد، توزیع آن ساده‌تر خواهد بود. در اینجا اینطور به نظر می‌رسد که اگر مثلا از تصاویری با فرمت jpg یا png استفاده کنیم، کمترین حجم نهایی را می‌توان بدست آورد. اما حین استفاده از iTextSharp شما با استفاده از تصاویری با فرمت BMP بهترین نتیجه را خواهید گرفت: کمترین حجم و بهترین کیفیت! البته یک نکته‌ی ریز دارد که باید رعایت شود:using (var pdfDoc = new Document(PageSize.A4)) { va ...
نمایش تصویر پس زمینه در تمام صفحات توسط iTextSharp
فرض کنید می‌خواهیم تصویری را در پس زمینه‌ی تمام صفحات pdf تولیدی توسط iTextSharp قرار دهیم. برای این منظور شبیه به مطلب «نمایش تعداد کل صفحات در iTextSharp» می‌توان از رخدادهای صفحات استفاده کرد. در متد رویداد گردان OnOpenDocument، یک قالب را به اندازه‌ی یک صفحه‌ی متنی تهیه می‌کنیم. سپس در متد OnStartPage، این قالب را به تمام صفحات اضافه خواهیم کرد. در حقیقت فضایی را به این شکل رزرو می‌کنیم و در نهایت در متد OnCloseDocument ، تصویر مورد ن ...
تکرار خودکار سرستون‌های یک جدول در صفحات مختلف، توسط iTextSharp
یکی از نیازهای تهیه یک گزارش خوب، تکرار سرستون‌ها در صفحات مختلف است. شاید در ابتدا این ایده مطرح شود که مثلا می‌خواهیم 25 ردیف را در هر صفحه نمایش دهیم. بر همین اساس می‌توان هر 25 ردیف یکبار، یک سطر footer و در ادامه در صفحه بعد یک سطر header را اضافه کرد و همینطور الی آخر. مهمترین ایراد این روش آن است که الزامی ندارد که واقعا 25 ردیف در یک صفحه جا شوند. عموما بر اساس اندازه‌ی محتوای نمایش داده شده، ممکن است یک صفحه 20 ردیف شود، صفحه‌ای د ...
چک لیست تهیه یک گزارش خوب
مشخصات یک گزارش خوب عموما به شرح زیر است:1- باید هر سطر گزارش شماره ردیف داشته باشد. (باید امکان ارجاع به هر سطر در صورت بروز مشکل میسر باشد)2- باید در هر صفحه، شماره صفحه و تعداد کل صفحات ذکر شود. (اگر چاپ شد بر این اساس بتوان ارتباط بین صفحات را یافت)3- در هر صفحه باید تاریخ و ساعت روز تهیه گزارش حتما ذکر شود. (بعدا جهت رفع اختلافات لازم می‌شود. مثلا می‌گویند این عدد اشتباه است. اما واقعا این عدد در زمان تهیه گزارش درست بوده، اما الان بر ...
منابع مطالعاتی بیشتر در مورد iTextSharp
آشنایی با صفحه بندی در iTextSharp : [+]تعریف هدر و فوتر: [+]افزودن متن ساده در iTextSharp: [+]کار با فونت‌های مختلف در iTextSharp: [+]نحوه‌ی افزودن جدول در iTextSharp: [+]ترسیم اشکال گرافیکی با iTextSharp: [+]کار با تصاویر در iTextSharp: [+] و [+]امکان تبدیل HTML به PDF در iTextSharp: [+]، [+]، [+] و [+]نحوه‌ی تعریف لینک در iTextSharp: [+]نحوه‌ی تعریف لیست در iTextSharp: [+]افزودن نمودار به کمک کنترل‌های چارت مایکروسافت در iTextSharp: [+]ا ...