اگر در حال تولید گزارش‌های HTML، فاکتورها یا صفحات پورتال هستید و به PDFهای دسته‌جمعی نیاز دارید، نیاز اصلی خروجی قابل تکرار در تمام ماشین‌هاست. این راهنمای گام‌به‌گام نشان می‌دهد چگونه می‌توانید چندین فایل HTML را به صورت دسته‌ای به PDF در پایتون تبدیل کنید با استفاده از Aspose.HTML for Python via .NET. شما یک مبدل مبتنی بر پوشه ایجاد خواهید کرد و سپس آن را برای صفحات پر از SVG و فونت‌های جاسازی‌شده برای رندرینگ سازگار گسترش می‌دهید.


چرا از Aspose.HTML برای تبدیل دسته‌ای HTML به PDF استفاده کنیم؟

Aspose.HTML for .NET یک API رندرینگ اسناد است که می‌تواند محتوای HTML را از فایل‌ها یا URLها بارگذاری کرده و با کنترل دقیق بر گزینه‌های رندرینگ، به PDF صادر کند. برای سناریوهای تبدیل دسته‌ای، مزایای کلیدی عبارتند از

  • رندر قابل اعتماد بدون خودکارسازی مرورگر
  • کنترل گزینه‌های PDF مانند اندازه صفحه، حاشیه‌ها و رندر پس‌زمینه
  • اجرای پیش‌بینی‌پذیر در محیط‌های سرور
  • قابلیت استانداردسازی فونت‌ها و منابع در تبدیل‌های متعدد

تبدیل دسته‌ای چندین فایل HTML به PDF در پایتون — گام به گام

گام 1: تنظیم محیط

شما به Python و یک زمان اجرا (.NET) نیاز دارید که با محیط استقرار شما مطابقت داشته باشد. اگر برنامه‌ریزی می‌کنید تبدیل‌ها را روی سرور اجرا کنید، همان زمان اجرا را نیز در آنجا نصب کنید.

نصب Aspose.HTML for Python via .NET

اجرا:

pip install aspose-html-net

اگر از یک محیط مجازی استفاده می‌کنید:

python -m venv .venv
.venv\Scripts\activate
pip install aspose-html-net

مرحله ۲: ایجاد پوشه‌های ورودی و خروجی (اختیاری)

در دایرکتوری پروژه خود دو پوشه ایجاد کنید:

  • input_html برای فایل‌های HTML و دارایی‌ها
  • output_pdf برای PDFهای تولید‌شده

ساختار پیشنهادی برای حل قابل اعتماد دارایی‌ها:

  • input_html

  • report1.html

    • report2.html
    • styles
  • site.css

    • تصاویر
  • logo.png

    • fonts
  • Inter Regular.ttf

CSS، تصاویر و فونت‌ها را در همان ریشه نگه دارید تا مسیرهای نسبی به‌صورت ثابت کار کنند.


مرحله 3: نوشتن اسکریپت تبدیل دسته‌ای

این اسکریپت پوشهٔ ورودی را اسکن می‌کند، فایل‌های .html و .htm را پیدا می‌کند و هر فایل را به یک PDF با مسیر نسبی یکسان در زیر پوشهٔ خروجی تبدیل می‌سازد. همچنین موفقیت و شکست هر فایل را ثبت می‌کند.

مثال کد: تبدیل دسته‌ای یک پوشه از فایل‌های HTML به PDF.

این بخش الگوی اصلی دسته‌ای را که در خودکارسازی سازمانی استفاده می‌شود پیاده‌سازی می‌کند. این بخش فایل‌های HTML را فهرست می‌کند، مسیرهای خروجی تعیین‌پذیر را می‌سازد، هر سند را تبدیل می‌کند و گزارش خلاصه‌ای را برمی‌گرداند که می‌توانید برای نظارت و اجرای مجدد ذخیره کنید.

مراحل زیر را دنبال کنید:

  1. پوشه‌های ورودی و خروجی را تنظیم کنید.
  2. تمام فایل‌های HTML را فهرست کنید.
  3. هر سند HTML را بارگذاری کنید.
  4. هر سند را به PDF تبدیل کنید.
  5. PDFها را با نام‌های تعیین‌پذیر ذخیره کنید.

این مثال کد نشان می‌دهد که چگونه می‌توان مجموعه‌ای از فایل‌های HTML را به PDF تبدیل کرد با استفاده از Aspose.HTML for Python via .NET.

توجه: این مثال کد عملکرد اصلی را نشان می‌دهد. قبل از استفاده از آن در پروژه خود، مطمئن شوید مسیرهای فایل (input، output و غیره) را به مکان‌های واقعی فایل‌های خود به‌روزرسانی کنید، اطمینان حاصل کنید تمام وابستگی‌های مورد نیاز به‌درستی نصب شده‌اند و به‌طور کامل در محیط توسعه خود تست کنید. اگر با مشکلی مواجه شدید، لطفاً به مستندات مراجعه کنید یا برای دریافت کمک به تیم پشتیبانی مراجعه نمایید.

مرحله 4: مبدل را اجرا کنید و خروجی را بررسی کنید

اجرا:

python batch_html_to_pdf.py

تأیید:

  • PDF‌ها در زیر output ایجاد می‌شوند
  • ساختار پوشه‌ها مشابه input است
  • طرح‌بندی با انتظارات مطابقت دارد
  • CSS و تصاویر به‌درستی نمایش داده می‌شوند

اگر CSS موجود نیست، به بخش Fix Missing CSS, Images, and Broken Relative Paths بروید زیرا تقریباً همیشه مشکل مربوط به مسیر یا بسته‌بندی دارایی‌ها است.


رندر فونت را با جاسازی فونت‌ها به‌صورت یکنواخت کنید

اگر فاکتور یا اسناد انطباقی تولید می‌کنید، جایگزینی قلم می‌تواند خطوط و صفحه‌بندی را تغییر دهد. قابل اطمینان‌ترین راه حل این است که قلم‌ها را همراه با قالب‌های خود ارسال کنید و آنها را با استفاده از CSS بارگذاری کنید.

مثال کد: تبدیل HTML به PDF با فونت‌های جاسازی‌شده

این بخش بر بسته‌بندی قالب متمرکز است. کد تبدیل همان‌طور باقی می‌ماند. شما با استفاده از CSS @font-face و مسیرهای نسبی، فونت‌ها را جاسازی می‌کنید.

مراحل زیر را دنبال کنید:

  1. فونت‌های مورد نیاز را در یک پوشه قابل دسترسی قرار دهید.
  2. فونت‌ها را از طریق CSS با استفاده از قوانین @font-face ارجاع دهید.
  3. اطمینان حاصل کنید که HTML CSS و فونت‌ها را از طریق مسیرهای نسبی بارگذاری می‌کند.
  4. HTML را به PDF تبدیل کنید و ظاهر فونت را بررسی کنید.

ساختار پوشه:

  • input_html

  • invoice.html

    • styles
  • invoice.css

    • fonts
  • Inter Regular.ttf

    • Inter Bold.ttf

نمونه CSS:

@font-face {
  font-family: "Inter";
  src: url("../fonts/Inter Regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
}

@font-face {
  font-family: "Inter";
  src: url("../fonts/Inter Bold.ttf") format("truetype");
  font-weight: 700;
  font-style: normal;
}

body {
  font-family: "Inter", Arial, sans-serif;
}

دستورات دسته‌ای خود را دوباره اجرا کنید و تأیید کنید:

  • PDF از فونت مورد نظر استفاده می‌کند.
  • فاصله‌ها و صفحه‌بندی با طرح مورد انتظار شما مطابقت دارد.

رفع عدم وجود CSS، تصاویر و مسیرهای نسبی خراب

اگر خروجی PDF شما بدون استایل به نظر می‌رسد یا تصاویر گم شده‌اند، از این چک‌لیست استفاده کنید:

  1. تأیید کنید تمام ارجاعات دارایی در HTML نسبی به مکان فایل HTML هستند.
  2. قالب‌ها و دارایی‌ها را زیر یک پوشه ریشه نگه دارید، مانند input.
  3. از مسیرهای مطلق که فقط در دستگاه شما وجود دارند، خودداری کنید.
  4. از دارایی‌هایی که توسط URLهایی سرو می‌شوند که سرور نمی‌تواند به آن‌ها دسترسی داشته باشد، خودداری کنید.

یک تست سریع این است که فایل HTML را به‌صورت محلی باز کنید و تأیید کنید که CSS و تصاویر را از همان ساختار پوشه‌ای که به محیط تولید می‌فرستید، بارگذاری می‌کند.


نتیجه‌گیری

اکنون یک روش گام‌به‌گام کامل برای تبدیل دسته‌ای چندین فایل HTML به PDF با Aspose.HTML در Python via .NET دارید. خودکارسازی تبدیل دسته‌ای چندین فایل HTML به PDF فرآیند تولید اسناد را برای سیستم‌های سازمانی ساده می‌کند. با نصب SDK، تهیه فهرست واضحی از منابع، پیکربندی گزینه‌های PDF برای فونت‌های جاسازی‌شده و حفظ SVG، و مدیریت خطاها به‌صورت ملایم، می‌توانید یک خط لوله تبدیل قابل اعتماد بسازید که به هزاران صفحه مقیاس می‌شود. رویدادهای پیشرفت SDK و API غنی آن، نظارت بر کارهای طولانی‌مدت را آسان می‌سازند و کیفیت خروجی سازگار را تضمین می‌کنند.

برای استفاده در محیط تولید، می‌توانید با مراجعه به صفحه قیمت‌گذاری یک لایسنس خریداری کنید. به‌جای آن، می‌توانید برای اهداف ارزیابی یک لایسنس موقت درخواست کنید. آموزش‌های بیشتری را در وبلاگ Aspose.HTML بررسی کنید و برای دریافت پشتیبانی بیشتر به انجمن‌ها بپیوندید.


سوالات متداول

1. آیا می‌توانم هر دو فایل HTML و HTM را در یک اجرا به صورت دسته‌ای تبدیل کنم؟

بله. در اسکریپت batch خود، هنگام اسکن پوشه ورودی، هر دو پسوند .html و .htm را شامل کنید، سپس هر فایل را به PDF تبدیل کنید و ساختار خروجی نسبی یکسان را حفظ کنید.

2. چرا PDF من فاقد استایل CSS یا تصاویر است؟

این معمولاً زمانی رخ می‌دهد که مسیرهای نسبی در محیط تبدیل حل نشوند. CSS، تصاویر و فونت‌ها را زیر همان ریشه‌ی input نگه دارید، در HTML و CSS از مسیرهای نسبی استفاده کنید و از مسیرهای مطلق مخصوص ماشین جلوگیری کنید.

3. چگونه خروجی PDF را در سرورها یکسان نگه دارم؟

فونت‌های مورد نیاز را همراه با قالب‌های خود باندل کنید و با استفاده از قوانین @font‑face در CSS به آن‌ها ارجاع دهید. همچنین تمام دارایی‌ها را به‌صورت محلی و نسخه‌بندی شده نگه دارید تا مبدل همیشه HTML، CSS، تصاویر و فونت‌های یکسان را در هر محیطی ببیند.

4. آیا Aspose.HTML کیفیت SVG را در PDF تولید شده حفظ می‌کند؟

بله. عناصر SVG درون‌خطی معمولاً به‌عنوان محتوای برداری در PDF رندر می‌شوند. پس از تبدیل، روی نمودارها و آیکون‌ها زوم کنید تا تأیید کنید لبه‌ها تیز باقی می‌مانند و متن داخل SVG از قلم‌های مورد انتظار استفاده می‌کند.

5. چگونه می‌توانم خطاها را هنگام تبدیل صدها یا هزاران فایل مدیریت کنم؟

فایل‌ها را به‌صورت مستقل پردازش کنید، استثناها را برای هر فایل به‌صورت جداگانه بگیرید و گزارشی خلاصه بنویسید که موارد موفق و ناموفق را فهرست می‌کند. این امکان را می‌دهد که فقط فایل‌های ناموفق را دوباره اجرا کنید به‌جای تکرار کل دسته.


بیشتر بخوانید