Π Π΅Ρ†Π΅ΠΏΡ‚Ρ‹ 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.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com