2012-12-24 7 views
6

kullanarak MySQL dan büyük veri alma PDF dosyası oluşturun. Her ay MySQL tablosundan 500 satır içerir. FPDF ile çalıştım ama kabul edilemez bir zaman alıyor. Sistemi daha kolay hale getirmek ve sistemi meşgul etmek için başka bir PHP kütüphanesi veya sınıfı varsa?Böyle 12 ay veri olarak büyük veri içeren bir PDF dosyası yapmak istiyorum PHP

bir ay bir ay verileri 12 ay sürer ve tek PDF biri bunu yazmak ve nihayet PDF dosyası oluşturur herhangi bir komut dosyası varsa?

+0

ptml'den html'ye geçmek ister misiniz? –

+0

Will eski veriler (yani önceki ay içinde) hiç değişim? Değilse, o zaman önceki-months.pdf' 'bir dosya kopyasını tutmak ve sadece geçerli ayı yeniden. Ardından, kullanıcıya sunarken, iki PDF dosyasını birleştirin - muhtemelen daha hızlı olacaktır. – halfer

+1

Alternatif olarak, bir kullanıcı uzun bir PDF raporu indirmek istediğinde, bir tablodaki gereksinimi sıraya alın ve bir cron-job neslini artı e-postayı onlara göndermek için kullanın. – halfer

cevap

1

PDF oluşturma her zaman çok uzun. Büyük miktarda ressource varsa, çok uzun olacak, bundan kaçınamazsın. Kullanıcılarınız için daha yumuşak bir yol olduğunu görüyorum:

Onlara bir html render gönderme ve ardından Ajax ile pdf nesnesini zaman uyumsuz hale getirin. Böylece bir durum çubuğu görüntüleyebilirsiniz. ve taleplerinizi yerine getirirken kullanıcılarınızı bilgilendirin.

  • bir oluşturmak html pdf dosyası işlemek yapmak dom2pdf veya böyle bir kitaplığı kullanarak eğilim
  • FPDF kullanarak ve sert kodlama:

    Sonra nesil technicaly üç şekilde yapılabilir lateks dizgisini ve daha sonra lateks komplikatörün bir pdf dosyası oluşturmasını istemek için proc_open'u kullanın. Bu gerçekten hızlı ve güvenilir bir araçtır, ancak özel bir sunucuya sahip olmanız ve paylaşımlı bir sunucuya sahip olmanız gerekmez.

1
// you can used fpdf like this. 
<?php 
require('fpdf.php'); 

class PDF extends FPDF 
{ 
    // Page header 
    function Header() 
    { 
    // Logo 
    $this->Image('logo.png',10,6,30); 
    // Arial bold 15 
    $this->SetFont('Arial','B',15); 
    // Move to the right 
    $this->Cell(80); 
    // Title 
    $this->Cell(30,10,'Title',1,0,'C'); 
    // Line break 
    $this->Ln(20); 
    } 

    // Page footer 
function Footer() 
{ 
    // Position at 1.5 cm from bottom 
    $this->SetY(-15); 
    // Arial italic 8 
    $this->SetFont('Arial','I',8); 
    // Page number 
    $this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C'); 
} 
} 

// Instanciation of inherited class 
$pdf = new PDF(); 
$pdf->AliasNbPages(); 
$pdf->AddPage(); 
$pdf->SetFont('Times','',12); 
for($i=1;$i<=40;$i++) 
$pdf->Cell(0,10,'Printing line number '.$i,0,1); 
$pdf->Output(); 
?> 
2

rutin (genellikle) kullanılarak PHP aynı yöntem çok büyük PDF oluşturun. Öncelikle belgenin bir web sayfası sürümünü yaratıyorum ve bir dosyaya verdim. Sonra dosyayı wkhtmltopdf ile çalıştırıyorum. Bu yöntemle diğerlerinden daha fazla başarı elde ettim. HTML hızlı oluşturulmalı ve wkhtmltopdf şaşırtıcı derecede hızlı ve verimli olmalıdır. Ayrıca, ayrıntılı biçimlendirme için CSS3 tekniklerini kullanabilirsiniz.

son derece büyük PDF'leri için ben de küçük olanları oluşturduktan sonra pdfmeld onları birleşti. Bu ayrıca yer imleri ekleme seçeneği sunar.

+0

Değerli öneriniz için teşekkürler. Mümkünse lütfen bir demo bağlantısı veriniz? – Nantu

İlgili konular