2011-06-26 14 views
6

मैं php में एफपीडीएफ (http://www.fpdf.org/) कक्षा का उपयोग कर सेल प्रिंट कर रहा हूं। सेल को ऊपरी बाएं कोने में रखा जाना चाहिए।PHP में एफपीडीएफ का उपयोग कर सेल में बाएं पैडिंग क्यों है?

सबकुछ बढ़िया काम करता है, सिवाय इसके कि सेल के अंदर एक बाएं पैडिंग जोड़ा जाता है।

Screenshot of PDF output with FPDF

क्यों एक सेल में एक छोड़ दिया गद्दी php में FPDF उपयोग कर रहा है:

$pdf = new FPDF('L', 'mm', array(50.8,88.9)); 
$pdf->addPage('L', array(50.8,88.9)); 
$pdf->SetDisplayMode(100,'default'); 
$pdf->SetTextColor(0,0,0); 
$pdf->SetMargins(0,0,0);  
$pdf->SetAutoPageBreak(0); 
$pdf->SetFont('Arial','',8.5); 

$pdf->SetXY(0, 0); //sets the position for the name 
$pdf->Cell(0,2.98740833, "Your Name", '1', 2, 'L', false); //Name 

यहाँ पीडीएफ कि FPDF साथ outputting है का एक स्क्रीनशॉट है:

यहाँ मेरी कोड है और मैं पैडिंग को कैसे हटा सकता हूं?

+1

आप वास्तव में [TCPDF] (http://www.tcpdf.org/) चेकआउट चाहिए।मुझे विश्वास नहीं है कि एफपीडीएफ अब और बनाए रखा जा रहा है। –

+0

मैंने आपकी सलाह ली और टीसीपीडीएफ के साथ एक ही पृष्ठ बनाया और अब मुझे सेल के भीतर एक शीर्ष और बाएं पैडिंग मिल रही है। मैंने यहां कोड और स्क्रीनशॉट पोस्ट किए हैं: http://stackoverflow.com/questions/6483326/why-is-there-a-left-and-top-padding-in-a-cell-using-tcpdf-in-php – zeckdude

+0

मेरी माफ़ी, मैं यह नहीं कह रहा था कि यह आवश्यक रूप से इस मुद्दे को ठीक करेगा, बस टीसीपीडीएफ एफपीडीएफ की तुलना में अधिक आधुनिक और रखरखाव पैकेज है। मैं एफपीडीएफ का उपयोग करता था, लेकिन टीसीपीडीएफ को और अधिक उपयोगी पाया गया। –

उत्तर

0

क्या आपने SetMargins(0,0) चलाने का प्रयास किया है?

SetMargins

SetMargins(float left, float top [, float right])

विवरण

बाईं, ऊपर और सही मार्जिन को परिभाषित करता है। डिफ़ॉल्ट रूप से, वे 1 सेमी के बराबर होते हैं। उन्हें बदलने के लिए इस विधि को कॉल करें।

http://www.fpdf.org/en/doc/setmargins.htm

+0

टिप के लिए धन्यवाद, लेकिन मैं वास्तव में पहले से ही उस फ़ंक्शन का उपयोग कर रहा हूं। मैंने इसे यहां सूचीबद्ध नहीं किया था क्योंकि मुझे नहीं लगता था कि यह महत्वपूर्ण था। मैंने अब उन सभी कार्यों को अपडेट किया है जिनका उपयोग मैं कर रहा हूं ताकि आपके पास एक बेहतर विचार हो। – zeckdude

+1

यह फ़ंक्शन पूरे पृष्ठ के लिए मार्जिन सेट करने के लिए है, प्रत्येक सेल नहीं। – kurdtpage

1

मैं बाहर काम नहीं कर सकता गद्दी को निकालने का तरीका।

एक कामकाज के रूप में, यह जानना उपयोगी है कि यह फ़ॉन्ट आकार के बावजूद 1 मिमी लगता है। सही गठबंधन पाठ के साथ दाएं किनारे पर एक ही पैडिंग लागू होती है।

1

मैं एक ही समस्या में भाग गया है। सिर्फ़ 1 लाइन इस अवांछित मार्जिन है, इसलिए मेरी वैकल्पिक हल यह था:

$pdf->Ln(); //workaround for 1st line 
    $pdf->Cell(..); 
+0

मेरी समस्या भी हल की गई है, आप ऊंचाई मूल्य को 'एलएन (1) ' –

12

मैं जानता हूँ कि इस सुपर पुराना है, लेकिन मैं था और एक ही समस्या का समाधान हो तो शायद किसी को यह उपयोगी मिल जाएगा।

एफपीडीएफ कक्षा में $ cmargin नामक एक संपत्ति है, जिसका उपयोग सेल के मुद्रित होने से पहले टेक्स्ट के एक्स-ऑफसेट की गणना करने के लिए किया जाता है, लेकिन इसके लिए एक सेटटर नहीं दिखता है। यह एक सार्वजनिक संपत्ति है, तो बाद आप अपने FPDF वर्ग instantiated गए हैं, तो फोन:

$pdf = new fpdf('P','mm','A4'); 
$pdf->cMargin = 0; 

और अपनी कोशिकाओं किसी भी अधिक छोड़ दिया पर कि गद्दी नहीं होगा।

+0

में एफपीडीएफ 1.8.1 में पास कर सकते हैं। यह संपत्ति सुरक्षित है, इसलिए यह उत्तर काम नहीं करेगा। –

3

updateproof

<?php 
require("fpdf.php"); 

class CustomFPDF extends FPDF{ 
    function SetCellMargin($margin){ 
     // Set cell margin 
     $this->cMargin = $margin; 
    } 
} 
?> 

<?php 
$pdf = new CustomFPDF(); 
$pdf->setCellMargin(0); 
?> 
+0

एक छोटा सा तरफ, सेल मार्जिन का कोई प्रभाव नहीं पड़ता है यदि सेल केंद्र संरेखण पर सेट है – kurdtpage

0

उपयोग SetMargins छोटे ठीक AddPage

से पहले

उदाहरण:

$pdf=new PDF(); 
$pdf->SetMargins(23, 44, 11.7); 
$pdf->AliasNbPages(); 
$pdf->AddPage();