PHP का उपयोग करके पीडीएफ फ़ाइल में एफडीएफ डेटा मर्ज करें




pdf fdf (3)

क्या अकेले PHP का उपयोग करके पीडीएफ फ़ाइल के साथ एफडीएफ डेटा को मर्ज करना संभव है? या यह प्राप्त करने के लिए किसी तृतीय पक्ष कमांड लाइन उपकरण का उपयोग करने के अलावा कोई विकल्प नहीं है?

अगर ऐसा कोई है तो कोई मुझे किसी की दिशा में इंगित कर सकता है?

मैं वर्तमान में ब्राउज़र में एफडीएफ फ़ाइल को आउटपुट में आउटपुट कर रहा हूं, उम्मीद है कि यह उपयोगकर्ता को पीडीएफ में भरने के लिए रीडायरेक्ट करेगा लेकिन कुछ लोगों के लिए जो मामला नहीं है। एफडीएफ सामग्री स्क्रीन पर आउटपुट हो रही है, भले ही मैं हेडर का उपयोग कर रहा हूं ('सामग्री-प्रकार: एप्लिकेशन / vnd.fdf');


दिन का एक और तरीका है कि पासस्ट्रू और न ही पीडीएफटीके का उपयोग नहीं बल्कि 2004 में बनाई गई एक स्क्रिप्ट है लेकिन अभी भी अच्छी तरह से काम कर रही है: forge_fdf

यह आपको एक एफडीएफ बनाने में मदद करता है जिसे आप अपने पीडीएफ में straithly incoporate कर सकते हैं, इसका मतलब है कि आप

इसे एक php फ़ाइल में सहेजें, चलिए जेनरपीडीएफ.एफपी कहते हैं

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 = generPdf.php के लिए एक लिंक बनाना ब्राउज़र में अपनी पीडीएफ फाइल खोल देगा (वैकल्पिक रूप से डिस्क पर इसे सहेजने का एक तरीका है जो मुझे लगता है मुझे याद है) और फ़ील्ड ईमेल MYSQL से डेटा भर जाएगा: mb_strtolower($row_delivreur['firstname']).'.'.mb_strtolower($row_delivreur['lastname']).'@gmail.com'

यह चेकबॉक्स, रेडियो बटन, के साथ काम करता है ... यह फ़ायरफ़ॉक्स में अच्छी तरह से खुलता है, इसे अन्य ब्राउज़रों के साथ परीक्षण किया जाना चाहिए।

पीडीएफ हैक्स पर अधिक जानकारी


भविष्य के संदर्भ के लिए, ऐसा लगता है कि बिना किसी तृतीय पक्ष ऐप के इसे करने का विश्वसनीय तरीका नहीं है। पीडीएफटीके ( http://www.accesspdf.com/pdftk/ ) मेरा समाधान होने के समाप्त हो गया।

मैंने पहले एफडीएफ फ़ाइल को पहले के रूप में जेनरेट किया था, और उसके बाद निम्न PHP कोड का उपयोग करके इसे अपनी पीडीएफ फाइल में विलय कर दिया

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

यह सोचा था कि यह बहुत आसान था। यह तुरंत हेडर और फ़ाइल एक्सटेंशन के साथ हैक करने की आवश्यकता को समाप्त करता है ताकि यह सुनिश्चित किया जा सके कि सभी ब्राउज़र एक एफडीएफ को सही तरीके से संभाल लें, क्योंकि यह ब्राउज़र को पीडीएफ फ़ाइल डाउनलोड करता है।

यदि आप पीडीएफ आउटपुट फ़ाइल को संपादन योग्य नहीं करना चाहते हैं, तो इसका उपयोग करें

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

क्षमा करें अगर यह मूलभूत चीजें हैं, तो मैंने सोचा कि मैं इसे एक ही स्थान पर रखूंगा ताकि लोगों को सिरदर्द से गुजरना पड़े।

एनबी यदि आपका पाथ चर सेट नहीं है, तो आपको पीडीएफटीके यानी पूर्ण पथ का उपयोग करने की आवश्यकता होगी

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

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

यह काम करता है, कक्षा डाउनलोड वेब साइट से भी जुड़े होते हैं,

इसके लिए कोई पासस्ट्रू / निष्पादन कमांड और कोई अतिरिक्त एक्सटेंशन की आवश्यकता नहीं है।

कहने के लिए संपादित किया गया है, यह नए पीडीएफ संस्करण 1.5+ के साथ काम नहीं करता है, पीडीएफटीके पर वापस लौटाया जाता है, लेकिन 'exec' कमांड का उपयोग करके सभी पीडीएफ के साथ काम करता है।







xfdf