PHP में पीडीएफ संपादन?

क्या किसी को PHP में पीडीएफ संपादित करने के लिए एक अच्छी विधि पता है? अधिमानतः ओपन-सोर्स / शून्य-लाइसेंस लागत विधियां। :)

मैं पीडीएफ फाइल खोलने, पीडीएफ में पाठ को बदलने और पीडीएफ के संशोधित संस्करण को लिखने के तरीके के साथ सोच रहा हूं?

मैंने एफपीडीएफ का उपयोग करके अतीत में पीडीएफ फाइलों को प्रोग्रामेटिक रूप से बनाया है, लेकिन कभी-कभी इसे थोड़ा कमजोर पाया जाता है।

0
ro fr bn
मैं इसके लिए एक त्वरित समाधान खोजने की कोशिश कर रहा था। मैं अपने प्रत्येक उत्पाद पृष्ठों के लिए एक ही पीडीएफ चाहता था लेकिन प्रत्येक पीडीएफ पर उत्पाद संख्या और उत्पाद का नाम बदल दिया गया। मैंने पाया कि मेल मर्ज (वर्ड या ओपनऑफिस) का उपयोग करना वास्तव में ऐसा करने का सबसे आसान तरीका है। तब मैंने सभी पीडीएफ निर्यात किए और उन्हें अपलोड किया। उम्मीद है कि यह किसी की मदद करता है।
जोड़ा लेखक NotJay, स्रोत
मैंने केवल एफपीडीएफ का उपयोग किया है और लगता है कि यह कमाल है। वास्तव में कमाल की तरह।
जोड़ा लेखक SQLMason, स्रोत

9 उत्तर

हम अपने रेल ऐप्स से पीडीएफ फाइलें बनाने के लिए pdflib का उपयोग करते हैं। इसमें PHP के लिए बाइंडिंग और अन्य भाषाओं का एक टन है।

हम वाणिज्यिक संस्करण का उपयोग करते हैं, लेकिन उनके पास एक निःशुल्क / मुक्त स्रोत संस्करण </ए> जिसमें कुछ सीमाएं हैं।

दुर्भाग्य से, यह केवल पीडीएफ के निर्माण की अनुमति देता है।

If you want to open and 'edit' existing files, pdflib do provide

a product which does this this, but costs a LOT

0
जोड़ा

यदि आप 'रिक्त स्थान भरें' दृष्टिकोण ले रहे हैं, तो आप पेज पर कहीं भी टेक्स्ट को ठीक से स्थान दे सकते हैं। तो दस्तावेज़ में लापता पाठ जोड़ने के लिए यह अपेक्षाकृत आसान है (यदि थोड़ा कठिन नहीं है)। उदाहरण के लिए ज़ेंड फ्रेमवर्क के साथ:

<?php
require_once 'Zend/Pdf.php';

$pdf = Zend_Pdf::load('blank.pdf');
$page = $pdf->pages[0];
$font = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_HELVETICA);
$page->setFont($font, 12);
$page->drawText('Hello world!', 72, 720);
$pdf->save('zend.pdf');

यदि आप इनलाइन सामग्री को प्रतिस्थापित करने का प्रयास कर रहे हैं, जैसे कि "[प्लेसहोल्डर स्ट्रिंग]", यह अधिक जटिल हो जाता है। हालांकि यह तकनीकी रूप से संभव है, आप पृष्ठ के लेआउट को गड़बड़ कर सकते हैं।

एक पीडीएफ दस्तावेज़ में आदिम ड्राइंग ऑपरेशंस का एक सेट शामिल है: यहां लाइन, छवि यहां, पाठ खंड, इत्यादि। इसमें उन प्राइमेटिव्स के लेआउट उद्देश्य के बारे में कोई जानकारी नहीं है।

0
जोड़ा
उदाहरण के लिए हैलो वर्ल्ड ड्राइंग के लिए आदिम है: [(हैलो) -40 (डब्ल्यू) -30 (या) 15 (एलडी!)] टीजे। तो प्लेसहोल्डर पाठ को संपादित करना आसान नहीं है।
जोड़ा लेखक grom, स्रोत
इसका उपयोग करने की कोशिश करने वाले किसी भी व्यक्ति के लिए सावधानी बरतने का एक शब्द: यह केवल एक्रोबैट संस्करण 4 और पहले में बनाए गए पीडीएफ के साथ काम करता है। संस्करण 4 के बाद, एडोब ने एन्कोडिंग फाइलें शुरू कीं जिससे पीडीएफ पर संपादन करना मुश्किल हो गया (या अन्य पीडीएफ में आयात)।
जोड़ा लेखक Darryl Hein, स्रोत
यह भी खूब रही! मुझे एहसास नहीं हुआ कि ज़ेंड फ्रेमवर्क मुक्त था, मैं ज़ेंड स्टूडियो द्वारा उलझन में था जो स्वामित्व है।
जोड़ा लेखक Liam, स्रोत
अगर मैं [प्लेसहोल्डर स्ट्रिंग] जैसी सामग्री को प्रतिस्थापित करना चाहता हूं तो कोई समाधान?
जोड़ा लेखक Starx, स्रोत
क्या यह अब ज़ेंड के बिना काम करता है?
जोड़ा लेखक Full Decent, स्रोत
पीडीएफ 1.4 समर्थन तब से जोड़ा गया है
जोड़ा लेखक Raphael Schweikert, स्रोत
प्लेसहोल्डर टेक्स्ट को कैसे संपादित करें?
जोड़ा लेखक Magico, स्रोत

यह नहीं पता कि यह एक विकल्प है, लेकिन यह ज़ेंड की पीडीएफ लाइब्रेरी के समान ही काम करेगा, लेकिन आपको अतिरिक्त कोड (ज़ेंड फ्रेमवर्क) का गुच्छा लोड करने की आवश्यकता नहीं है। यह सिर्फ एफपीडीएफ फैलाता है।

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

यहां आप मूल रूप से वही काम कर सकते हैं। पीडीएफ लोड करें, इसके ऊपर लिखें, और फिर एक नए पीडीएफ में सहेजें। एफपीडीआई में आप मूल रूप से पीडीएफ को एक छवि के रूप में डालें ताकि आप जो भी चाहें उसे डाल सकें।

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

0
जोड़ा

Tcpdf is also a good liabrary for generating pdf in php http://www.tcpdf.org/

0
जोड़ा

PHP में पीडीएफ / पीडीएफएलआईबी विस्तार दस्तावेज स्पैस है (कुछ ऐसा जो कि bugs.php.net में नोट किया गया है) - मुझे लगता है कि आप ज़ेंड लाइब्रेरी का उपयोग करते हैं।

0
जोड़ा

ज़ेंड फ्रेमवर्क मौजूदा पीडीएफ फाइलों को लोड और संपादित कर सकता है। मुझे लगता है कि यह संशोधन भी समर्थन करता है।

मैं इसे प्रोजेक्ट में दस्तावेज़ बनाने के लिए उपयोग करता हूं, और यह बहुत अच्छा काम करता है। यद्यपि कभी संपादित नहीं किया।

Check out the doc here

0
जोड़ा

यदि आपको वास्तव में सरल पीडीएफ की आवश्यकता है, तो ज़ेंड या FPDF ठीक है। हालांकि मुझे उनके साथ काम करने में मुश्किल और निराशा होती है। इसके अलावा, एपीआई काम करने के तरीके के कारण, व्यापार तर्क से प्रस्तुति से सामग्री को अलग करने का कोई अच्छा तरीका नहीं है।

इसी कारण से, मैं dompdf का उपयोग करता हूं, जो स्वचालित रूप से HTML और CSS को पीडीएफ दस्तावेज़ों में परिवर्तित करता है। आप एक HTML पृष्ठ के लिए एक टेम्पलेट रख सकते हैं और मानक HTML वाक्यविन्यास का उपयोग कर सकते हैं। आप बाहरी सीएसएस फ़ाइल भी शामिल कर सकते हैं। लाइब्रेरी सही नहीं है और बहुत ही जटिल मार्कअप या सीएसएस कभी-कभी उलझन में पड़ता है, लेकिन मुझे कुछ भी नहीं मिला जो काम करता है।

0
जोड़ा
मैं इस पृष्ठ पर आया क्योंकि मैं एक पीडीएफ संपादित करना चाहता था लेकिन यह उत्तर मेरे लिए अधिक उपयोगी लगता है क्योंकि मैं देख सकता हूं कि मौजूदा पीडीएफ को संपादित करने के बजाय एचटीएमएल में स्क्रैच से क्यों आसान हो सकता है।
जोड़ा लेखक Justin Vincent, स्रोत
-1 चूंकि यह सवाल का जवाब नहीं देता है। पोस्टर मौजूदा पीडीएफ को संपादित करना चाहता है जो उन्हें स्क्रैच से नहीं बनाते हैं।
जोड़ा लेखक Reimund, स्रोत

मुझे वास्तव में dompdf के लिए उच्च उम्मीद थी (यह एक अच्छा विचार है) लेकिन मेरे द्वारा fpdf का उपयोग करने में स्थिति समस्या एक प्रमुख कारक है। हालांकि यह कठिन है क्योंकि प्रत्येक तत्व को सेट करना है; यह सब शक्तिशाली है क्योंकि सभी बाहर निकलते हैं।

मैं अपने लेआउट को फिट करने के शीर्ष पर रखने के लिए दस्तावेज़ में अपने वर्कस्पेस के नीचे एक छवि रखता हूं। यह कॉलम के लिए हमेशा भी पर्याप्त रहा है (PHP की स्ट्रिंग गणना का एक छोटा सा बिट की आवश्यकता है, लेकिन कुछ भी बहुत ही आसान नहीं है)।

सौभाग्य।

0
जोड़ा

पीडीएफ दस्तावेज़ बनाने के लिए पीडीएफ कक्षा का उपयोग करने के लिए एक मुफ्त और आसान उपयोग है। इसे एफपीडीएफ कहा जाता है। एफपीडीआई के साथ संयोजन में ( http://www.setasign.de/products/pdf- PHP-समाधान / fpdi ) पीडीएफ दस्तावेज़ों को संपादित करना भी संभव है। निम्नलिखित कोड दिखाता है कि उपयोगकर्ता डेटा के साथ मौजूदा उपहार कूपन भरने के लिए एफपीडीएफ और एफपीडीआई का उपयोग कैसे करें।

require_once('fpdf.php'); 
require_once('fpdi.php'); 
$pdf = new FPDI();

$pdf->AddPage(); 

$pdf->setSourceFile('gift_coupon.pdf'); 
// import page 1 
$tplIdx = $this->pdf->importPage(1); 
//use the imported page and place it at point 0,0; calculate width and height
//automaticallay and ajust the page size to the size of the imported page 
$this->pdf->useTemplate($tplIdx, 0, 0, 0, 0, true); 

// now write some text above the imported page 
$this->pdf->SetFont('Arial', '', '13'); 
$this->pdf->SetTextColor(0,0,0);
//set position in pdf document
$this->pdf->SetXY(20, 20);
//first parameter defines the line height
$this->pdf->Write(0, 'gift code');
//force the browser to download the output
$this->pdf->Output('gift_coupon_generated.pdf', 'D');
0
जोड़ा
उत्कृष्ट पुस्तकालय - बिल्कुल ठीक था जो मैं बाद में था, सिफारिश के लिए धन्यवाद
जोड़ा लेखक james-geldart, स्रोत
आपको अपने पीडीएफ को पुराने संस्करण (पीडीएफ 1.4) में परिवर्तित करने या एफपीडीआई वाणिज्यिक संस्करण का उपयोग करने की आवश्यकता है। हम एक अलग वाणिज्यिक एडन के रूप में एक पार्सर प्रतिस्थापन प्रदान करते हैं, जो एफपीडीआई को इन संपीड़न सुविधाओं का उपयोग करने वाले दस्तावेज़ों को संभालने में सक्षम बनाता है। स्रोत
जोड़ा लेखक SwissFr, स्रोत