PostgreSQL рд╡реНрдпрдВрдЬрдиреЛрдВ: HTML рдФрд░ URL рд╕реЗ рдкреАрдбреАрдПрдл рдФрд░ рдкреАрдПрд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд

HTML рдФрд░ URL рд╕реЗ PDF рдФрд░ PS рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рдг рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рд╕реНрд╡рдпрдВ, htmldoc рдЬрдирд░реЗрдЯрд░ рдФрд░ pg_htmldoc рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред (рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдХрд╛рдВрдЯреЗ рдХреЗ рд▓рд┐рдВрдХ рджрд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдХреБрдЫ рдмрджрд▓рд╛рд╡ рдХрд┐рдП рд╣реИрдВ рдЬреЛ рдЕрднреА рддрдХ рдореВрд▓ рднрдВрдбрд╛рд░ рдореЗрдВ рдирд╣реАрдВ рд╣реБрдП рд╣реИрдВред рдЖрдк рддреИрдпрд╛рд░ рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред)

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдХрдорд╛рдВрдб рдХреЛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ
CREATE EXTENSION pg_htmldoc 

HTML рдФрд░ URL рд╕реЗ PDF рдФрд░ PS рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
 SELECT file2pdf('file.html', 'file.pdf'); --  FILE  PDF      SELECT file2ps('file.html', 'file.pdf'); --  FILE  PS      SELECT file2pdf(ARRAY['file1.html', 'file2.html'], 'file.pdf'); --   FILE  PDF      SELECT file2ps(ARRAY['file1.html', 'file2.html'], 'file.pdf'); --   FILE  PS      SELECT html2pdf(', !', 'file.pdf'); --  HTML  PDF      SELECT html2ps(', !', 'file.pdf'); --  HTML  PS      SELECT html2pdf(ARRAY[', !', ' , !'], 'file.pdf'); --   HTML  PDF      SELECT html2ps(ARRAY[', !', ' , !'], 'file.pdf'); --   HTML  PS      SELECT url2pdf('https://google.com', 'file.pdf'); --  URL  PDF      SELECT url2ps('https://google.com', 'file.pdf'); --  URL  PS      SELECT url2pdf(ARRAY['https://google.com', 'https://google.ru'], 'file.pdf'); --   URL  PDF      SELECT url2ps(ARRAY['https://google.com', 'https://google.ru'], 'file.pdf'); --   URL  PS      

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдирд░реЗрд╢рди рд░рд┐рдЬрд▓реНрдЯ рдХреЛ pg_curl рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореЗрд▓ рдкрд░ рднреЗрдЬрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
 CREATE OR REPLACE FUNCTION send(url TEXT, username TEXT, password TEXT, subject TEXT, "from" TEXT, "to" TEXT[], data TEXT, type TEXT) RETURNS TEXT LANGUAGE SQL AS $BODY$ WITH s AS (SELECT pg_curl_easy_reset(), --  (  ) pg_curl_easy_setopt('CURLOPT_URL', url), --    pg_curl_easy_setopt('CURLOPT_USERNAME', username), --   pg_curl_easy_setopt('CURLOPT_PASSWORD', password), --   pg_curl_recipient_append("to"), --   pg_curl_header_append('Subject', subject), --   pg_curl_header_append('From', "from"), --   pg_curl_header_append('To', "to"), --   pg_curl_mime_data(data, type:=type), --   pg_curl_mime_data(file2pdf('file.html'), file:='=?utf-8?B?'||encode(' FILE  PDF.pdf', 'base64')||'?=', type:='application/pdf', code:='base64'), --    FILE  PDF pg_curl_mime_data(file2ps('file.html'), file:='=?utf-8?B?'||encode(' FILE  PS.ps', 'base64')||'?=', type:='application/ps', code:='base64'), --    FILE  PS pg_curl_mime_data(file2pdf(ARRAY['file1.html', 'file2.html']), file:='=?utf-8?B?'||encode('  FILE  PDF.pdf', 'base64')||'?=', type:='application/pdf', code:='base64'), --     FILE  PDF pg_curl_mime_data(file2ps(ARRAY['file1.html', 'file2.html']), file:='=?utf-8?B?'||encode('  FILE  PS.ps', 'base64')||'?=', type:='application/ps', code:='base64'), --     FILE  PS pg_curl_mime_data(html2pdf(', !'), file:='=?utf-8?B?'||encode(' HTML  PDF.pdf', 'base64')||'?=', type:='application/pdf', code:='base64'), --    HTML  PDF pg_curl_mime_data(html2ps(', !'), file:='=?utf-8?B?'||encode(' HTML  PS.ps', 'base64')||'?=', type:='application/ps', code:='base64'), --    HTML  PS pg_curl_mime_data(html2pdf(ARRAY[', !', ' , !']), file:='=?utf-8?B?'||encode('  HTML  PDF.pdf', 'base64')||'?=', type:='application/pdf', code:='base64'), --     HTML  PDF pg_curl_mime_data(html2ps(ARRAY[', !', ' , !']), file:='=?utf-8?B?'||encode('  HTML  PS.ps', 'base64')||'?=', type:='application/ps', code:='base64'), --     HTML  PS pg_curl_mime_data(url2pdf('https://google.com'), file:='=?utf-8?B?'||encode(' URL  PDF.pdf', 'base64')||'?=', type:='application/pdf', code:='base64'), --    URL  PDF pg_curl_mime_data(url2ps('https://google.com'), file:='=?utf-8?B?'||encode(' URL  PS.ps', 'base64')||'?=', type:='application/ps', code:='base64'), --    URL  PS pg_curl_mime_data(url2pdf(ARRAY['https://google.com', 'https://google.ru']), file:='=?utf-8?B?'||encode('  URL  PDF.pdf', 'base64')||'?=', type:='application/pdf', code:='base64'), --     URL  PDF pg_curl_mime_data(url2ps(ARRAY['https://google.com', 'https://google.ru']), file:='=?utf-8?B?'||encode('  URL  PS.ps', 'base64')||'?=', type:='application/ps', code:='base64'), --     URL  PS pg_curl_header_append('Connection', 'close'), --    pg_curl_easy_perform(), --  pg_curl_easy_getinfo_char('CURLINFO_HEADERS') --   ) SELECT pg_curl_easy_getinfo_char FROM s; --   $BODY$; 

рдФрд░ рдпрд╣ рд╕рдм рд╢реЗрдбреНрдпреВрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

Source: https://habr.com/ru/post/hi458986/


All Articles