ส่งเทมเพลต HTML หรือหนวดและรับสตรีม PDF เป็นการตอบกลับ
นำทางไปยัง quay.io/ukhomeofficedigital/html-pdf-converter เพื่อค้นหาเวอร์ชันล่าสุดที่ติดแท็ก Docker จะดึงเวอร์ชันใดที่คุณระบุ
ตัวอย่างเช่นหากเวอร์ชันล่าสุดที่ติดแท็ก v2.4.3 คำสั่งนี้จะต้องเรียกใช้:
docker pull quay.io/ukhomeofficedigital/html-pdf-converter:v2.4.3
เมื่อเสร็จแล้วคุณสามารถตรวจสอบภาพได้ในเครื่องโดยใช้งาน:
docker image list
รูปแบบ HOF ทั้งหมดทำงานในพื้นที่บนพอร์ต 8080 และในบางกรณีพอร์ต 8081 อาจใช้งานได้เช่นกัน ดังนั้น HTML-PDF-converter ควรทำงานบนพอร์ตอื่น แนะนำพอร์ต 8082 ในปัจจุบัน
docker run -t -i -p 8082:8080 quay.io/ukhomeofficedigital/html-pdf-converter: ** < tag > **
สังเกตการติดตามในเทอร์มินัล:
2023-09-13T11:18:07.061Z - info: Listening on localhost:8080
หมายเหตุ: เทอร์มินัลจะบอกว่าแอปพลิเคชันกำลังฟังบนพอร์ต 8080 อย่างไรก็ตามคุณสามารถตรวจสอบว่าพอร์ตใดที่พอร์ต HTML-PDF-Converter ที่ใช้โดยใช้งานโดยใช้:
docker ps -a
แอพโหนดที่ใช้ตัวแปลง HTML เป็น PDF จะต้องทำงานในเครื่องด้วย บริการจะต้องมีตัวแปร Env ต่อไปนี้:
PDF_CONVERTER_URL
: หากคุณใช้ตัวแปลง PDF ในเครื่องนี่คือ URL และพอร์ตที่กำลังทำงานอยู่ URL นี้ควรอยู่ในรูปแบบ PDF_CONVERTER_URL=http://localhost:<PORT>/convert
ในตัวอย่างนี้ pdf_converter_url จะเป็น PDF_CONVERTER_URL=http://localhost:8082/convert
เมื่อการแปลง HTML เป็น PDF ที่ประสบความสำเร็จการตอบสนองควรมีลักษณะเช่นนี้:
2023-09-12T15:31:30.249Z - info: status=201, method=POST, url=/convert, response_time=392, content_length=39644
git clone [email protected]:UKHomeOffice/html-pdf-converter.git
cd html-pdf-converter
npm install
npm start
หนวดและข้อมูล
curl -H " Content-Type:application/json "
-d ' {
"template": " ' "
<html>
<head>
<title>{{title}}</title>
</head>
<body>
<h1>{{header}}</h1>
<p>{{para}}</p>
</body>
</html>
" ' ",
"data": {
"title": "My title",
"header": "My header",
"para": "My content"
}
} '
-i localhost:8080/convert
HTML
curl -H " Content-Type:application/json "
-d ' {
"template": " ' "
<html>
<head>
<title>My title</title>
</head>
<body>
<p>Hello world</p>
</body>
</html>
" ' "
} '
-i localhost:8080/convert
การตอบสนอง (ตัวอย่าง)
%PDF-1.4 n 1 0 obj n << n/Title ...
Chrome สามารถยอมรับตัวเลือกจำนวนมากสำหรับฟังก์ชั่นการแสดงผล PDF เหล่านี้มีการบันทึกไว้ที่นี่: https://github.com/googlechrome/puppeteer/blob/master/docs/api.md#pagepdfoptions
สิ่งเหล่านี้สามารถตั้งค่าตามความต้องการต่อการส่งผ่านวัตถุ pdfOptions
เป็นส่วนหนึ่งของร่างกายคำขอของคุณ
{
"template" : " <h1>Hello World!</h1> " ,
"pdfOptions" : {
"printBackground" : true
}
}
บริการนี้ไม่สามารถแก้ไขทรัพยากรภายนอกเช่น CSS, JavaScript หรือรูปภาพที่เชื่อมโยง หากเทมเพลตของคุณมีลิงก์ไปยังแหล่งข้อมูลเหล่านี้เราขอแนะนำให้คุณใช้ https://github.com/remy/inliner แหล่งที่มาสำหรับ inliner สามารถเป็น URL ตำแหน่งไฟล์หรือสตริง HTML
APP_PORT: Defaults to 8080
APP_HOST: Defaults to ' localhost '
หากคุณได้รับข้อผิดพลาดต่อไปนี้ใน html-pdf-converter: Handling error message=Could not find browser revision 756035. Run "npm install" or "yarn install" to download a browser binary.
จากนั้นคุณอาจต้องติดตั้ง Puppeteer npm i puppeteer