หากคุณกำลังสร้างรายงาน HTML, ใบแจ้งหนี้ หรือหน้า portal และต้องการ PDF เป็นจำนวนมาก ความต้องการหลักคือผลลัพธ์ที่สามารถทำซ้ำได้บนเครื่องต่าง ๆ คู่มือขั้นตอนต่อไปนี้จะแสดงวิธีแปลงหลายไฟล์ HTML เป็น PDF เป็นชุดใน Python โดยใช้ Aspose.HTML for Python via .NET คุณจะสร้างตัวแปลงแบบโฟลเดอร์ แล้วขยายให้รองรับหน้าเว็บที่มี SVG จำนวนมากและฟอนต์ที่ฝังไว้เพื่อการเรนเดอร์ที่สม่ำเสมอ

ทำไมต้องใช้ Aspose.HTML สำหรับการแปลง HTML เป็น PDF แบบแบตช์?

Aspose.HTML for .NET เป็น API การเรนเดอร์เอกสารที่สามารถโหลดเนื้อหา HTML จากไฟล์หรือ URL และส่งออกเป็น PDF พร้อมการควบคุมที่ละเอียดของตัวเลือกการเรนเดอร์ สำหรับสถานการณ์การแปลงเป็นชุด ประโยชน์หลักคือ

  • การเรนเดอร์ที่เชื่อถือได้โดยไม่ต้องใช้การอัตโนมัติของเบราว์เซอร์
  • การควบคุมตัวเลือก PDF เช่น ขนาดหน้า, ระยะขอบ, และการเรนเดอร์พื้นหลัง
  • การดำเนินการที่คาดการณ์ได้ในสภาพแวดล้อมเซิร์ฟเวอร์
  • ความสามารถในการมาตรฐานฟอนต์และทรัพยากรในหลายการแปลง

แปลงหลายไฟล์ HTML เป็น PDF เป็นชุดใน Python — ขั้นตอนต่อขั้นตอน

ขั้นตอนที่ 1: ตั้งค่าสภาพแวดล้อมของคุณ

คุณต้องมี Python และ runtime ของ .NET ที่ตรงกับสภาพแวดล้อมการปรับใช้ของคุณ หากคุณวางแผนที่จะทำการแปลงบนเซิร์ฟเวอร์ ให้ติดตั้ง runtime เดียวกันบนเซิร์ฟเวอร์นั้นด้วย

ติดตั้ง Aspose.HTML for Python via .NET

เรียกใช้:

pip install aspose-html-net

หากคุณใช้สภาพแวดล้อมเสมือน:

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

ขั้นตอนที่ 2: สร้างโฟลเดอร์ Input และ Output (ไม่บังคับ)

สร้างโฟลเดอร์สองโฟลเดอร์ในไดเรกทอรีของโปรเจกต์ของคุณ:

  • input_html สำหรับไฟล์ HTML และทรัพยากร
  • output_pdf สำหรับ PDF ที่สร้างขึ้น

โครงสร้างที่แนะนำสำหรับการแก้ไขทรัพย์สินอย่างเชื่อถือได้:

  • input_html

  • report1.html

    • report2.html
    • styles
  • site.css

    • รูปภาพ
  • logo.png

    • fonts
  • Inter Regular.ttf

เก็บ CSS, รูปภาพ และฟอนต์ไว้ในโฟลเดอร์รากเดียวกันเพื่อให้เส้นทางแบบ relative ทำงานอย่างสม่ำเสมอ


ขั้นตอนที่ 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;
}

เรียกใช้สคริปต์ batch ของคุณอีกครั้งและตรวจสอบ:

  • PDF ใช้ฟอนต์ที่ตั้งใจไว้
  • การเว้นระยะและการแบ่งหน้าตรงกับเลย์เอาต์ที่คุณคาดหวัง

แก้ไข CSS, รูปภาพที่หายไป และเส้นทางสัมพันธ์ที่เสียหาย

หากผลลัพธ์ PDF ของคุณดูไม่มีสไตล์หรือรูปภาพหายไป ให้ใช้รายการตรวจสอบนี้:

  1. ยืนยันว่าการอ้างอิงทรัพยากรทั้งหมดใน HTML เป็นแบบสัมพันธ์กับตำแหน่งไฟล์ HTML
  2. เก็บเทมเพลตและทรัพยากรไว้ภายใต้โฟลเดอร์รากเดียว เช่น input
  3. หลีกเลี่ยงการใช้เส้นทางแบบ absolute ที่มีอยู่เฉพาะบนเครื่องของคุณ
  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 หรือรูปภาพ?

โดยปกติแล้วเหตุการณ์นี้เกิดขึ้นเมื่อเส้นทางสัมพัทธ์ไม่สามารถแก้ไขได้ในสภาพแวดล้อมการแปลง Keep CSS, images, and fonts under the same input root, use relative paths in HTML and CSS, and avoid machine-specific absolute paths.

3. ฉันจะทำให้ผลลัพธ์ PDF สม่ำเสมอระหว่างเซิร์ฟเวอร์ได้อย่างไร?

รวมฟอนต์ที่จำเป็นไว้กับเทมเพลตของคุณและอ้างอิงพวกมันโดยใช้กฎ CSS font‑face. นอกจากนี้ให้เก็บทรัพยากรทั้งหมดไว้ในเครื่องและเวอร์ชันเพื่อให้ตัวแปลงมองเห็น HTML, CSS, รูปภาพ และฟอนต์เดียวกันในทุกสภาพแวดล้อม.

4. Aspose.HTML รักษาคุณภาพของ SVG ใน PDF ที่สร้างขึ้นหรือไม่?

ใช่. องค์ประกอบ SVG แบบอินไลน์โดยทั่วไปจะแสดงเป็นเนื้อหาเวกเตอร์ใน PDF. หลังจากการแปลง ให้ซูมเข้าไปที่แผนภูมิและไอคอนเพื่อยืนยันว่าขอบคมชัดและข้อความภายใน SVG ใช้ฟอนต์ที่คาดหวัง.

5. ฉันจะจัดการกับความล้มเหลวเมื่อแปลงไฟล์หลายร้อยหรือหลายพันไฟล์ได้อย่างไร?

ประมวลผลไฟล์แยกกัน, ดักจับข้อยกเว้นสำหรับแต่ละไฟล์, และเขียนรายงานสรุปที่แสดงรายการไฟล์ที่สำเร็จและล้มเหลว. สิ่งนี้ทำให้คุณสามารถรันไฟล์ที่ล้มเหลวเท่านั้นแทนการทำซ้ำทั้งหมดของชุดงาน.

อ่านต่อ