2015-09-12 52 views
1

我正在使用TCPDF,我試圖設置行和列排版在pdf圖像上通過foreach方法獲取。 這裏是我的代碼:TCPDF:通過'foreach'方法設置幾個圖像之間的邊距

$imagesValues = get_post_meta($post->ID, 'image'); 
foreach ($imagesValues as $imageItem) { 
    foreach ($imageItem as $imageID) { 
     $imageURL = wp_get_attachment_url($imageID); // gets photo URL 
     $pdf->Image($gallerieURL, $x, $y, $w, $h, 'JPG', '', '', false, 300, '', false, false, 0, false, false, false); 
    } 
} 

編輯

我已經做到了:

$x = 115; 
$y = 35; 
$w = 25; 
$h = 50; 
foreach ($imagesValues as $imageItem) { 
    foreach ($imageItem as $imageID) { 
    $imageURL = wp_get_attachment_url($imageID); // gets photo URL 
    $x = 115; 
    for ($i = 0; $i < 2; ++$i) { 
     $pdf->Image($imageURL, $x, $y, $w, $h, 'JPG', '', '', false, 300, '', false, false, 0, false, false, false); 
     $x += 27; // new column 
    } 
    $y += 52; // new row 
    } 
} 

但是,同樣的圖像重複自己

+0

你可以嘗試用$限定框連同$ w和$ H身邊打球,在這裏看到:HTTP://www.tcpdf .org/doc/code/classTCPDF.html#a714c2bee7d6b39d4d6d304540c761352 –

+0

是的,但問題是有幾個圖像。我如何爲每個參數設置不同的參數? – user3334919

+0

您之前已經定義了這些變量:'$ w,$ h',所以在循環中重新定義它們。如果將它們包含在數據源中,這會更容易,所以'$ imageValues'也可以在其中包含這些信息,這將使它在循環迭代中可用?閱讀關於多維數組,如果我說過讓你感到困惑。 –

回答

0

我建議你改變你的數據來源看起來像:

array (
    0 => array (
    'w'=>320, 
    'h'=>240 
), 
    1 => array (
    'w'=>300, 
    'h'=>250 
) 
) 

不過沒關係,你需要簡單地在這裏做一些計算:

// Assuming that 115 is the width of the row 
$x = 0; 
// Assuming that 52 is the height of each 
$y = 0; 
$w = 25; 
$h = 50; 

// We start on 1 image, there are 4 images in each row 
$imageCounter = 1; 

foreach ($imagesValues as $imageItem) { 
    foreach ($imageItem as $imageID) { 
    // gets photo URL 
    $imageURL = wp_get_attachment_url($imageID); 
    // Calculate the column and row specifications 
    switch ($imageCounter) { 
     // First column 
     case 1: 
     $x = 0; 
     $imageCounter ++; 
     break; 
     case 2: 
     $x = 27; 
     $imageCounter ++; 
     break; 
     case 3: 
     $x = 54; 
     $imageCounter ++; 
     break; 
     case 4: 
     $x = 81; 
     // Reset the image counter back to 1 for the new row 
     $imageCounter = 1; 
     // New row 
     $y += 52; 
     break; 
    } 
    $pdf->Image($imageURL, $x, $y, $w, $h, 'JPG', '', '', false, 300, '', false, false, 0, false, false, false); 
    }  
} 
+0

非常感謝您的回答,但只顯示第一張圖片... – user3334919

+0

哎呀,請參閱更新。您只需在該行的第1,第2和第3張圖像上增加計數器。 –

+0

它的工作原理!非常感謝你!! – user3334919