Nginx เดชเดพเดšเด•เด•เตเด•เตเดฑเดฟเดชเตเดชเตเด•เตพ: HTML เดฎเตเดคเตฝ PDF เดตเดฐเต† เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด‚

HTML-เตฝ เดจเดฟเดจเตเดจเต PDF-เดฒเต‡เด•เตเด•เตเดณเตเดณ เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด‚ เดคเดฏเตเดฏเดพเดฑเดพเด•เตเด•เดพเตป, เดžเด™เตเด™เตพเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเดพเดฃเต nginx เด…เดคเดฟเดจเตเดฑเต† เดชเตเดฒเด—เดฟเดจเตเด‚ html2pdf. (เดŽเดจเตเดฑเต† nginx เดซเต‹เตผเด•เตเด•เดฟเดฒเต‡เด•เตเด•เต เดžเดพเตป เดฒเดฟเด™เตเด•เตเด•เตพ เดจเตฝเด•เดฟ, เด•เดพเดฐเดฃเด‚ เดฏเดฅเดพเตผเดคเตเดฅ เดถเต‡เด–เดฐเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เด‡เดคเตเดตเดฐเต† เดคเดณเตเดณเดฟเดฏเดฟเดŸเตเดŸเดฟเดŸเตเดŸเดฟเดฒเตเดฒเดพเดคเตเดค เดšเดฟเดฒ เดฎเดพเดฑเตเดฑเด™เตเด™เตพ เดžเดพเตป เดตเดฐเตเดคเตเดคเดฟ. เดจเดฟเด™เตเด™เตพเด•เตเด•เตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚ เดฑเต†เดกเดฟเดฎเต†เดฏเตเดกเต.)

เดซเดฏเดฒเดฟเตฝ เดจเดฟเดจเตเดจเต HTML-เดจเต† PDF-เดฒเต‡เด•เตเด•เต เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด‚ เดšเต†เดฏเตเดฏเดพเตป

location =/html_to_pdf_from_file {
    html2pdf on; # ะฒะบะปัŽั‡ะฐะตะผ pdf-ั„ะธะปัŒั‚ั€
}

เดŸเต†เด•เตโ€Œเดธเตโ€Œเดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต HTML-เดจเต† PDF-เดฒเต‡เด•เตเด•เต เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด‚ เดšเต†เดฏเตเดฏเดพเตป

location =/html_to_pdf_from_text {
    html2pdf on; # ะฒะบะปัŽั‡ะฐะตะผ pdf-ั„ะธะปัŒั‚ั€
    return 200 "<p style="background-color: #c11">ะ—ะดั€ะฐะฒัั‚ะฒัƒะน, ะผะธั€!</p>"; # ะฒะพะทะฒั€ะฐั‰ะฐะตะผ HTML
}

เดชเตเดฐเต‹เด•เตเดธเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต HTML-เดจเต† PDF-เดฒเต‡เด•เตเด•เต เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด‚ เดšเต†เดฏเตเดฏเดพเตป

location =/html_to_pdf_from_proxy {
    html2pdf on; # ะฒะบะปัŽั‡ะฐะตะผ pdf-ั„ะธะปัŒั‚ั€
    proxy_pass somewhing_that_returns_html; # ะฟะตั€ะตะฝะฐะฟั€ะฐะฒะปัะตะผ ะฝะฐ ั‚ัƒะดะฐ, ะณะดัƒ ะฒะพะทะฒั€ะฐั‰ะฐะตั‚ัั HTML
}

เดคเตฝเดซเดฒเดฎเดพเดฏเดฟ, เดˆ เดฒเตŠเด•เตเด•เต‡เดทเดจเตเด•เตพ เด†เด•เตโ€Œเดธเดธเต เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ, HTML-เดจเต เดชเด•เดฐเด‚, เด…เดคเดฟเดจเตเดฑเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดคเตเดคเดฟเตฝ เดธเตƒเดทเตเดŸเดฟเดšเตเดš เด’เดฐเต PDF เดคเดฟเดฐเดฟเด•เต† เดจเตฝเด•เตเด‚ (เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต wt เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดœเดจเดฑเต‡เดฑเตเดฑเตผ).

เด‡เดคเต เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚ เดฎเดฟเด•เดšเตเดš เดœเดจเดฑเต‡เดฑเตเดฑเดฑเดฒเตเดฒ, เด…เดคเดฟเดจเตเดฎเตเดฎเตเดชเต เดžเดพเตป เด•เตเดฑเดšเตเดšเต เด•เต‚เดŸเดฟ เดถเตเดฐเดฎเดฟเดšเตเดšเต, เดชเด•เตเดทเต‡ เด…เดตเดฏเดฟเตฝ เดชเดฟเดถเด•เตเด•เตพ เด•เดฃเตเดŸเต†เดคเตเดคเดฟ htmldoc ะธ wkhtmltopdf.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•