HtmlToPdf API¶
API สำหรับแปลง HTML เป็น PDF
AmgCnt.Python.htmlToPdf(DataObject, Callback)
amgApi.coreLib.python.htmlToPdf(Object, Callback)
1. DataObject เป็น Object ของ HTML และ Options ต่างๆ
2. Callback เป็นฟังก์ชันสำหรับรอรับ object ผลลัพธ์การแปลง html เป็น pdf
ตัวอย่างการใช้งาน
AmgCnt.Python.htmlToPdf({
html: `
<div style="text-align: center;">Hi PDF</div>
`,
options: {
'css': ``,
'orientation': 'p',
'header-font-name': 'TH-SARABUN-PSK',
'margin-top': 10,
'margin-right': 8,
'margin-bottom': 10,
'margin-left': 8,
'footer-center': 'หน้า [page] ของ [toPage] หน้า',
'footer-font-size': 9,
'footer-spacing': 2,
},
dwn_file: 'file_name.pdf'
}, function(res) {
console.log(res);
})
DataObject จะมีโครงสร้างดังต่อไปนี้
html เป็นเนื้อหาที่จัดอยู่ในรูปแบบ html
options เป็น option object ที่กำหนดการแสดงผล HTML
dwn_file เป็นชื่อไฟล์ที่จะทำการตั้งให้ pdf (ต้องตามด้วย .pdf)
var DataObject = {
html: String,
options: OptionObject,
dwn_file: String
}
OptionObject ที่มีให้ใช้งาน
ชื่อ option | ประเภทตัวแปร | คำอธิบาย | ค่าเริ่มต้น | หมายเหตุ |
css | string | css style ที่เสริมเข้าไปเพื่อควบคุมรูปแบบของข้อมูลก่อนการปริ้น | -ใช้ word-wrap แทน break-word -ไม่รองรับ CSS3 |
|
page-size | string | ขนาดหน้ากระดาษ A3 A4 A5 Letter |
A4 | -ขึ้นต้นด้วยตัวใหญ่ |
orientation | string | การวางแนวของไฟล์ PDF p คือแนวตั้ง l คือแนวนอน |
p | |
grayscale | - | ปรับ pdf ให้ออกมาเป็นขาวดำ | -ไม่ใส่จะปริ้น pdf แบบมีสี | |
footer-left | string | ปริ้นช่วงซ้ายล่างของกระดาษทุกหน้า | -ห้ามใช้ ' ในข้อความ [page] จะถูกแทนที่ด้วยเลขหน้าปัจจุบัน [toPage] จะถูกแทนที่ด้วยเลขหน้าทั้งหมด |
|
footer-center | string | ปริ้นช่วงกลางล่างของกระดาษทุกหน้า | ข้อจำกัดเดียวกับ footer-left | |
footer-right | string | ปริ้นช่วงขวาล่างของกระดาษทุกหน้า | ข้อจำกัดเดียวกับ footer-left | |
footer-font-size | number | ขนาดของตัวหนังสือช่วงล่างของกระดาษ | ||
footer-spacing | number | ขนาดของช่องว่างระหว่างเนื้อหาและตัวหนังสือช่วงล่างของกระดาษ ในหน่วย mm | ||
footer-line | - | เพิ่มเส้นแนวนอนระหว่างเนื้อหาและตัวหนังสือช่วงล่างของกระดาษ | -ไม่ใส่จะไม่ปริ้นเส้นลงใน pdf | |
header-left | string | ปริ้นช่วงซ้ายล่างของกระดาษทุกหน้า | -ห้ามใช้ ' ในข้อความ [page] จะถูกแทนที่ด้วยเลขหน้าปัจจุบัน [toPage] จะถูกแทนที่ด้วยเลขหน้าทั้งหมด |
|
header-center | string | ปริ้นช่วงกลางบนของกระดาษทุกหน้า | ข้อจำกัดเดียวกับ header-left | |
header-right | string | ปริ้นช่วงขวาบนของกระดาษทุกหน้า | ข้อจำกัดเดียวกับ header-left | |
header-font-size | number, pixel | ขนาดของตัวหนังสือช่วงบนของกระดาษ | ||
header-spacing | number, millimeter | ขนาดของช่องว่างระหว่างเนื้อหาและตัวหนังสือช่วงบนของกระดาษ ในหน่วย mm | ||
header-line | - | เพิ่มเส้นแนวนอนระหว่างเนื้อหาและตัวหนังสือช่วงบนของกระดาษ | -ไม่ใส่จะไม่ปริ้นเส้นลงใน pdf | |
no-images | ไม่ปริ้นรูปใดๆลงใน pdf | -ไม่ใส่จะไม่ปริ้นรูปลงใน pdf | ||
margin-top | number, millimeter | ระยะขอบกระดาษกับเนื้อหาด้านบน | -อาจจะมีผลทำให้หัวกระดาษ ไม่ถูกพิมพ์ ให้ทำการปรับจูนค่าร่วมกับ option header-spacing | |
margin-right | number, millimeter | ระยะขอบกระดาษกับเนื้อหาด้านขวา | 10 | |
margin-bottom | number, millimeter | ระยะขอบกระดาษกับเนื้อหาด้านล่าง | 10 | -อาจจะมีผลทำให้หัวกระดาษ ไม่ถูกพิมพ์ ให้ทำการปรับจูนค่าร่วมกับ option footer-spacing |
margin-left | number, millimeter | ระยะขอบกระดาษกับเนื้อหาด้านซ้าย |