در مطلبی که در همین سایت اشاره شد با استفاده از Adobe Acrobat میتوان فایلهای pdf را به تصویر تبدیل کرد اما چون نیاز بود تا در وب از آن استفاده کنیم و گاهی اوقات امکان نصب Adobe Acrobat Sdk در سرور وجود ندارد میتوان از روش زیر نیز استفاده کرد.
ابتدا فایل gsdll32.dll را در پوشه bin پروژه کپی کنید ( این فایل به همراه مثال ارائه شده وجود دارد).
سپس برای متدهای موردنیاز موجود در Api که بصورت Unmanaged میباشند یکسری wrapper ایجاد میکنیم. این متدها شامل :
- gsapi_new_instance که برای ایجاد یک نمونه جدید از api بکار میرود.
- gsapi_init_with_args که برای مقداردهی نمونه ایجاد شده بوسیله آرگومانها بکار میرود .
- gsapi_delete_instance و gsapi_exit برای آزادسازی منابع ایجاد شده.
در زیر چند آرگومان مهم که باید به api ارسال شوند نیز آمده است:
-sDEVICE | فرمت تصویر خروجی |
dFirstPage- | صفحه آغازین برای تبدیل |
dLastPage - | صفحه پایانی برای تبدیل |
dDEVICEWIDTHPOINTS- | اندازه width فایل pdf |
dDEVICEHEIGHTPOINTS- | اندازه height فایل pdf |
dDEVICEXRESOLUTION- | resolutionX |
-dDEVICEYRESOLUTION | resolutionY |
sOutputFile- | مسیر فایل(های) خروجی |
مسیر فایل ورودی |
نکته دوم : هنگامی که خواستم از این api درون وب استفاده کنم و از آنجا که سیستم عامل windows server 2008 x64 روی سرور نصب بود موقع دریافت خروجی با خطای زیر مواجه میشدم:
BadImageFormatException: An attempt was made to load a program with an incorrect format. Exception from HRESULT: 0x8007000B
برای حل این مشکل IIS را باز میکنیم و بر روی ApplicationPool ای که برای وب سایت خودمان درنظر گرفتیم کلیک راست کرده و گزینه Advanced Setting را انتخاب میکنیم. با باز شدن این دیالوگ گزینه Enable 32-bit Application را به true تنظیم میکنیم.