@RabIN

Как передать html кол в url, для того, чтобы скачать?

У меня есть скрипт, который генерирует пдф файл из гет/пост запроса.

// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

// set document information
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Nicola Asuni');
$pdf->SetTitle('TCPDF Example 006');
$pdf->SetSubject('TCPDF Tutorial');
$pdf->SetKeywords('TCPDF, PDF, example, test, guide');

// set default header data
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 006', PDF_HEADER_STRING);

// set header and footer fonts
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));

// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

// set margins
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);

// set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);

// set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);

// set some language-dependent strings (optional)
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
require_once(dirname(__FILE__).'/lang/eng.php');
$pdf->setLanguageArray($l);
}

// ---------------------------------------------------------

// set font
$pdf->SetFont('dejavusans', '', 10);

// add a page
$pdf->AddPage();

 writeHTML($html, $ln=true, $fill=false, $reseth=false, $cell=false, $align='')
// writeHTMLCell($w, $h, $x, $y, $html='', $border=0, $ln=0, $fill=0, $reseth=true, $align='', $autopadding=true)
$pdf->Output($title, 'I');


Я пытаюсь отправить при клике на ссылку код html страницы, у меня не отправляется...

$(document).on("click",".download_files li a",function(event){
        var html=$(".contents.con").html();
        var title = $("h1").html();
     window.location="/ajax_new/save_page_pdf.php?html="+html+"&title="+title;
    });


Если же отправить
window.location="/ajax_new/save_page_pdf.php?html=123&title="+title;


то генерируется pdf в новом окне.

Вопрос, как передать html код в url , для того, чтобы скачать? html может быть большой. или путем аякса? у меня никак...

$(".download_files li a").click(function(e){
       var data={};
       data["type"]=$(this).attr("data-doc");
       data["html"]=$(".contents.con").html();
       html=$(".contents.con").html();
       if ($("h1").length>0) {
           data["title"] = $("h1").html();
       }else{
           if ($(".h1").length>0)
                data["title"]=$(".h1").html();
       }

$.ajax({
            type: "POST",
            url: "/ajax_new/save_page_pdf.php",
            data: data,
            success: download.bind(true, "title.pdf", "html")
                function(data1) {
                var blob=new Blob([data1]);
                var link=document.createElement('a');
                link.href=window.URL.createObjectURL(blob);
                link.download=data["title"]+".pdf";
                link.click();
            }
        });
        });
  • Вопрос задан
  • 195 просмотров
Пригласить эксперта
Ответы на вопрос 2
mannaro
@mannaro Куратор тега JavaScript
Умею профессионально гуглить
У URL есть максимальный размер. Передавай html и title в POST body.
Ответ написан
KorniloFF
@KorniloFF Куратор тега JavaScript
Работаю по font-end / JS
$(document).on("click",".download_files li a",function(event){
  $.post('/ajax_new/save_page_pdf.php', {
    html: $(".contents.con").html(),
    title: $("h1").text()
  });
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы