أرسل قالب HTML أو شارب واستلام دفق PDF كاستجابة.
انتقل إلى quay.io/ukhomeoffusedigital/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
يدويًا