PHP kullanarak bir PDF dosyası içine FDF veri birleştirme

4 Cevap php

Yalnız PHP kullanarak bir PDF dosyası ile FDF verileri birleştirmek mümkün mü? Ya da bu başarmak için bir 3. parti komut satırı aracını kullanın ama hiçbir seçeneği yoktur?

Bu durumda birisi birinin yönde işaret edebilir?

Ben şu anda kullanıcıyı yönlendirme olacağı umuduyla tarayıcı FDF dosya çıktısı am PDF doldurdu ama bazı insanlar için bu böyle değildir. FDF içeriği, ekrana çıktı olarak ben başlığını kullanıyorum olsa bile ('Content-type: application / vnd.fdf');

4 Cevap

Bir 3. parti uygulama olmadan bunu yapmanın güvenilir bir yolu yok gibi ileride başvurmak için, görünüyor. Pdftk (http://www.accesspdf.com/pdftk/) benim çözüm olarak sona erdi.

Ben ilk olarak daha önce FDF dosyası oluşturulur ve sonra aşağıdaki PHP kodu kullanarak benim PDF dosyası haline birleşti

header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="Download.pdf"');
passthru("pdftk file.pdf fill_form data.fdf output - ");
exit;

Ben bunun olacağını düşündüm çok daha kolay oldu. Bu anında sadece tarayıcı PDF dosyasını indirmek yapar gibi tüm tarayıcılarda düzgün bir FDF ele sağlamak için başlıkları ve dosya uzantıları ile etrafında kesmek için gereğini ortadan kaldırır.

Eğer PDF çıkış dosyası artık düzenlenebilir, kullanımı olmak istiyorsanız

    passthru("pdftk file.pdf fill_form data.fdf output - flatten");

Özür dilemek bu temel şeyler ise, sadece insanların ben sabrettim baş ağrısı geçmesi gerekmez böylece ben bir yere koymak düşündüm.

N.B. PATH değişkeni ayarlanmamış ise, yani Pdftk için tam yolunu kullanmak gerekir

    passthru("/usr/local/bin/pdftk file.pdf fill_form data.fdf output - flatten");

kadar ben CentOS üzerinde PDFTK yüklemek için bulduk kolay yolu:

Öncelikle rpmforge repo yükleyin - http://wiki.centos.org/AdditionalResources/Repositories/RPMForge#head-5aabf02717d5b6b12d47edbc5811404998926a1b

o zaman

yum PDFTK yükleyin

ve thats it!

forge_fdf: passthru ne PDFTK kullanarak ama sadece 2004 yılında yapılan senaryo ama yine de çalışmıyor gün başka bir yolu yoktur

sizin pdf straithly incoporate bir FDF oluşturmak için size yardımcı olur, demek sana o

Bir php dosyasında bu kaydet, en generatePdf.php diyelim

require_once('forge_fdf.php');  

// leave this blank if we're associating the FDF w/ the PDF via URL
$pdf_form_url= "";


// default data; these two arrays must ultimately list all of the fields
// you desire to alter, even if you just want to set the 'hidden' flag;
//
//
$fdf_data_names= array(); // none of these in this example
$fdf_data_strings= array(); // none of these in this example

$fdf_data_strings['email']=mb_strtolower($row_delivreur['firstname']).'.'.mb_strtolower($row_delivreur['lastname']).'@gmail.com';

$fields_hidden= array();
$fields_readonly= array();

// set this to retry the previous state
$retry_b= false;

header( 'content-type: application/vnd.fdf' );

echo forge_fdf( $pdf_form_url,
        $fdf_data_strings, 
        $fdf_data_names,
        $fields_hidden,
        $fields_readonly );

Pathtoyourpdf / nameofpdffile.pdf # FDF = generatePdf.php bir bağlantı yapma ve alan e-posta MySQL veri ile dolu olacak (alternatif diske i hatırlıyorum kaydetmek için bir yol var) tarayıcıda PDF dosyası açılacaktır: mb_strtolower($row_delivreur['firstname']).'.'.mb_strtolower($row_delivreur['lastname']).'@gmail.com'

Bu onay kutuları, radyo düğmesi ile çalışır ... O firefox iyi açılır, diğer tarayıcılar ile test edilmelidir.

PDF HACKS Daha Infos

http://www.setasign.de/products/pdf-php-solutions/fpdi/demos/concatenate-fake/

Bu çalışır, sınıflar indir çok web sitesinden bağlı,

Hiçbir Geçiş / exec komutu ve ek uzantıları gerektirir.

Demek Düzenlenen, bu 1.5 +, keman PDFTK, döndü ama 'exec' komutunu kullanarak tüm PDF'leri ile çalışır yeni pdf sürümleri ile çalışmaz.