0

I have a script generate page to PDF.

If my content small my script working but if my content full my script not work and notice in Firebug show "414 Request-URI Too Long" enter image description here This is my script

index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Generate PDF</title>
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script type="text/javascript"> 
    function printMe()
    {
    var data = $("#pdf").html();
    $.ajax({
    url: "generatePDF.php?link="+encodeURIComponent(data),
    success: function() {
    window.location = 'generatePDF.php?link='+encodeURIComponent(data);
    }
    });
    }
</script> 
</head>

<body>
<div class="printable" id="pdf">
        <table cellspacing="0" width="100%" cellpadding="0">
      <tr>
        <td width="166">Menimbang</td>
        <td width="51">:</td>
        <td width="879"><ol type="a">
          <li> bahwa Surat Permohonan {nama}, Pekerjaan    {nama_pekerjaan}, Alamat  Dusun {nama_dusun}    {nama_desa} Kecamatan {nama_kecamatan} Kabupaten Aceh Tamiang, untuk memperoleh Izin Mendirikan    Bangunan ( IMB ) atas pengerjaan {jenis_bangunan}, diatas Persil    Tanah {status_tanah} , terletak di {terletak} telah memenuhi    persyaratan;</li>
          <li>bahwa berdasarkan pertimbangan sebagaimana pada huruf a, perlu    menetapkan dalam suatu Keputusan Bupati Aceh Tamiang .<br />
          </li>
        </ol></td>
      </tr>
      <tr>
        <td>Mengingat </td>
        <td>:</td>
        <td width="879"><ol>
          <li>Undang – Undang Nomor 4 Tahun    2002 tentang Pembentukan Kabupaten Aceh Barat Daya, Kabupaten Gayo Lues,    Kabupaten Aceh Jaya, Kabupaten Nagan Raya dan Kabupaten Aceh Tamiang di    Provinsi Nanggroe Aceh Darussalam;<br />
            </li>
          <li>Undang – Undang Nomor 28 Tahun 2002 tentang Bangunan Gedung;<br />
            </li>
          <li>Undang – Undang Nomor 32 Tahun 2004 tentang Pemerintahan Daerah    sebagaimana telah diubah untuk keduakalinya dengan Undang – Undang Nomor 12    Tahun 2008 tentang Perubahan Kedua Atas Undang – Undang Nomor 32 Tahun 2004    tentang Pemerintahan Daerah;<br />
            </li>
          <li>Undang – Undang Nomor 11 Tahun 2006 tentang Pemerintahan Aceh;<br />
            </li>
          <li>Qanun Kabupaten Aceh Tamiang Nomor 5 Tahun 2008 tentang Susunan    Organisasi dan Tata Kerja Lembaga Teknis Daerah Kabupaten Aceh Tamiang;<br />
            </li>
          <li>Qanun Kabupaten Aceh Tamiang Nomor 28 Tahun 2011 tentang Izin Mendirikan    Bangunan;<br />
            </li>
          <li> Qanun Kabupaten Aceh Tamiang Nomor 31 Tahun 2011 tentang Retribusi Izin    Mendirikan Bangunan;<br />
            </li>
          <li>Peraturan Bupati Aceh Tamiang Nomor 10 Tahun 2009 tentang Pelimpahan    Sebagian Kewenangan Bupati Kepada Camat Dalam Kabupaten Aceh Tamiang;<br />
            </li>
          <li>Keputusan Bupati Aceh Tamiang Nomor 118 tahun 2010 tentang Prosedur    Tetap Pelayanan Penerbitan Izin Mendrikan Bangunan (IMB) Tingkat Kecamatan    Dalam Kabupaten Aceh Tamiang.<br />
          </li>
        </ol></td>
      </tr>
      <tr>
        <td>Memperhatikan</td>
        <td>:</td>
        <td width="879">Surat Datok Penghulu {nama_datok}    Nomor : {no_rekom_datok} tanggal {tgl_rekom_datok} perihal Rekomendasi Izin    Mendirikan Bangunan.</td>
      </tr>
      <tr>
        <td colspan="3" align="center"><b>M E M U T U S K A N  :</b></td>
      </tr>
      <tr>
        <td>MENETAPKAN</td>
        <td>:</td>
        <td></td>
      </tr>
      <tr>
        <td>KESATU</td>
        <td>:</td>
        <td width="879">Memberikan Izin Mendirikan    Bangunan Kepada :</td>
      </tr>
      <tr>
        <td height="411"></td>
        <td></td>
        <td width="879"><table height="411" cellpadding="0" cellspacing="0">
          <col width="148" />
          <col width="64" span="2" />
          <tr>
            <td width="144">Nama</td>
            <td width="7">:</td>
            <td width="726">{nama}</td>
          </tr>
          <tr>
            <td>Pekerjaan</td>
            <td width="7">:</td>
            <td>{pekerjaan}</td>
          </tr>
          <tr>
            <td>Alamat</td>
            <td width="7">:</td>
            <td>{alamat}</td>
          </tr>
          <tr>
            <td>Jenis Bangunan</td>
            <td width="7">:</td>
            <td>{jenis_bangunan}</td>
          </tr>
          <tr>
            <td>Luas Bangunan</td>
            <td width="7">:</td>
            <td>{luas_bangunan}</td>
          </tr>
          <tr>
            <td>Garis Sempadan</td>
            <td width="7">:</td>
            <td>{garis_sepadan}</td>
          </tr>
          <tr>
            <td>Status Tanah</td>
            <td width="7">:</td>
            <td>{status_tanah}</td>
          </tr>
          <tr>
            <td>Terletak di</td>
            <td width="7">:</td>
            <td>{terletak}</td>
          </tr>
          <tr>
            <td>Peruntukan Bangunan </td>
            <td width="7">:</td>
            <td>{peruntukan_bgn}</td>
          </tr>
          <tr>
            <td></td>
            <td width="7"></td>
            <td></td>
          </tr>
          <tr>
            <td height="220" colspan="3"><p><br/>Dengan    Ketentuan dan syarat – syarat sebagai berikut :</p>
              <ol type="A">
                <li>Pelaksanaan Pembangunan harus sesuai dengan ukuran – ukuran dan  ketentuan – ketentuan sebagaimana tercantum    dalam peta situasi dan gambar bangunan yang telah disahkan;<br />
                  </li>
                <li>Pengerjaan bangunan harus sudah dimulai selambat – lambatnya 2 (dua)    bulan sejak tanggal {tanggal_mulai} dan harus selesai selambat – lambatnya 12    (dua belas) bulan terhitung sejak dimulainya pembangunan tersebut;<br />
                  </li>
                <li>Pengawas bangunan dapat memasuki dan memeriksa semua bangunan atau    persil bangunan setiap hari kerja antara pukul 07.30 s/d 18.30 WIB;</li>
                <li>Segala pekerjaan yang dapat menambah bangunan yang tidak sesuai dengan    gambar, tidak dibenarkan sebelum mendapat persetujuan dari Bupati Aceh    Tamiang melalui Camat {nama_kecamatan};<br />
                </li>
              </ol></td>
          </tr>
        </table></td>
      </tr>
      <tr>
        <td>KEDUA</td>
        <td>:</td>
        <td width="879">Pelanggaran terhadap salah satu    dari ketentuan dan syarat – syarat sebagaimana diktum KESATU menyebabkan Izin    Mendirikan Bangunan ini batal.</td>
      </tr>
      <tr>
        <td>KETIGA</td>
        <td>:</td>
        <td width="879">Keputusan ini mulai berlaku pada    tanggal ditetapkan dengan ketentuan bahwa apabila terdapat kekeliruan dalam    penetapan Keputusan ini akan diadakan perbaikan sebagaimana mestinya.</td>
      </tr>
      <tr>
        <td></td>
        <td></td>
        <td width="879"></td>
      </tr>
      <tr>
        <td></td>
        <td></td>
        <td align="center" style="padding-left:30px;" width="879">Ditetapkan di {nama_kecamatan}  <br />
          pada tanggal   {tanggal_ttd}    M <br />
          {tanggal_ttd_hijriah} H<br />
          a.n. BUPATI ACEH TAMIANG <br />
          CAMAT {nama_kecamatan}<br />
          <br />
          <br />
          <br />
          {nama_camat}<br /></td>
      </tr>
      <tr>
        <td></td>
        <td></td>
        <td width="879"></td>
      </tr>
      <tr>
        <td colspan="3">SALINAN Keputusan ini disampaikan kepada :<br />
          1. Bupati Aceh Tamiang di Karang Baru;<br />
          2. Kepala DPPKA Kabupaten Aceh Tamiang di Karang Baru;<br />
          3. Kepala Kantor P2TSP Kabupaten Aceh Tamiang di Karang Baru;<br />
          4. Kepala Satpol PP dan WH Kabupaten Aceh Tamiang di Karang Baru;<br />
          5. Kapolsek {nama_kecamatan} di {nama_kecamatan};<br />
          6. Datok Penghulu {nama_datok} di {nama_dusun};<br />
          7. Sdr/i. {nama} (Pemilik) di    tempat.<br />
          <br /></td>
      </tr>
    </table>
</div>

        <center><button onClick="printMe()">Save As PDF</button></center>
</body>
</html>

generatePDF.php

<?php
$data = $_REQUEST['link'];
require_once('tcpdf/tcpdf.php');

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

// 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);
}

// IMPORTANT: disable font subsetting to allow users editing the document
$pdf->setFontSubsetting(false);

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

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

$html = $data;

// output the HTML content
$pdf->writeHTML($html, true, 0, true, 0);

// reset pointer to the last page
$pdf->lastPage();

$pdf->Output('profile.pdf', 'D');

?>

Tcpdf download in here

So, how to prevent/stop 414 Request-URI Too Long ?

Help me thank's

Maestro Vladimir
  • 1,186
  • 4
  • 18
  • 38

2 Answers2

0

If you send a GET request to the server, then there's a limit on the number of characters you can use. See maximum length of HTTP GET request?

If you read the second answer, you'll see that passing too many bytes can result in no answer (because the server doesn't receive anything due to limitations on the client) or a 414 answer because the server can't handle the request (because it exceeds the maximum length).

You should use a POST request instead of a GET request, or reduce the length of your query string. You could store data in the server session instead of passing all data over and over again.

Community
  • 1
  • 1
Bruno Lowagie
  • 75,994
  • 9
  • 109
  • 165
  • You have a solution ? cause script content html send to php :( – Maestro Vladimir Nov 18 '15 at 08:34
  • I've added two suggestions: reduce the length of your query string and/or store data in your PHP session so that you don't have to pass the same data over and over again. – Bruno Lowagie Nov 18 '15 at 08:35
  • you have reference link for me ?? – Maestro Vladimir Nov 18 '15 at 08:42
  • A reference link to what? (1.) **reduce the length of your query:** this is very specific to your code. *You* should know how to do this. Nobody else can do this for you. (2.) **Store information in a session:** this is standard PHP functionality and what you store is specific to your application. (3.) **Change your Apache settings:** that's up to you or your hosting provider. Nobody else can do this for you. **In short:** your question is too specific; we give you suggestions, it's up to you to implement them. – Bruno Lowagie Nov 18 '15 at 08:46
0

Under Apache, the limit is a configurable value, LimitRequestLine. Change this value to something larger than its default of 8190 if you want to support a longer request URI.

AnkiiG
  • 3,468
  • 1
  • 17
  • 28