استفاده از wkhtmltopdf برای تبدیل html به pdf

استفاده از wkhtmltopdf برای تبدیل html به pdf

مقدمه

یکی از مشکلات اساسی که در توسعه application های تحت وب با آن مواجه بودم چاپ html بوده است. با این که خیلی ساده به نظر می رسد اما همیشه مشکل ساز بوده است.

کتابخانه های مختلفی را تا به حال دیده ام که راه حل هایی در css، javascript ارائه کردند. اما اکثرا مشکلاتی دارند. به هم ریختگی خروجی، مشکلات در رنگ بندی و عکس ها، تداخل با سایر کتابخانه ها، صفحه بندی، تکرار header در صفحات مختلف، قرار دادن شماره صفحه در زیر هر صفحه و چندین مشکل دیگر که قطعا با آنها مواجه شده اید.

در پروژه ای که کار می کردیم از فریم ورک dotnet core استفاده می شد. بعد از تلاش در استفاده از راه حل های مختلف به این نتیجه رسیدم که بهتر است خروجی ای که قرار است چاپ شود را ابتدا تبدیل به pdf کنیم. یکی از دلایل مهم هم این بود که اکثر مرورگرها فایل های pdf را درون خودشان باز می کنند و حالت preview نیز ایجاد می شود و کاربر در این مرحله می تواند هم خروجی را چاپ کند و هم آن را دانلود کند.

البته wkhtmltopdf نیز مشکلاتی دارد که در ادامه سعی می کنم مشکلاتی که در استفاده از آن ایجاد شد و راه های هایی که پیدا کردم را با شما در میان بگذارم.


wkhtmltopdf چیست؟
wkhtmltopdf و wkhtmltoimage ابزار خط دستور متن باز برای تبدیل HTML به PDF و فرمت های مختلف image است که این کار با استفاده از موتور تبدیل QT WebKit انجام می شود.