我写了以下代码: 正如您所看到的,有一个for循环来遍历某些值并在生成的pdf中显示它们。问题是所有的值都写在同一个地方。 我试图插入一个新行但它似乎不起作用。任何人都可以建议我如何做到这一点?我是否需要编写嵌套的for循环以使其在不同的y位置处的值?
$pdf = pdf_new();
// open a file
pdf_open_file($pdf, "C:/xampp/htdocs/final/6.pdf");
pdf_set_info($pdf, "Author", "");
pdf_set_info($pdf, "Title", "");
pdf_set_info($pdf, "Creator", "");
pdf_set_info($pdf, "Subject", "");
// start a new page (A4)
$x = 595;
$y = 842;
pdf_begin_page($pdf, $x, $y);
pdf_set_parameter($pdf, 'FontOutline', 'Arial=c:\windows\fonts\arial.ttf');
pdf_setcolor($pdf, "stroke", "rgb", 0, 0, 0, 1.0);
// get and use a font object
$font = pdf_findfont($pdf, "Arial", "host", 1);
pdf_setfont($pdf, $font, 10);
// print text
pdf_show_xy($pdf, "QUOTATION" , 250, $y - 60);
pdf_show_xy($pdf, "Customer Name: " . $this->customer_details['first_name'] .
" " . $this->customer_details['last_name'], 50, 770);
pdf_show_xy($pdf, "Date: " . date("F j, Y, g:i a"), 50, 750);
pdf_show_xy($pdf, "Number of items requested: " . $count_items_req, 50, 730);
pdf_show_xy($pdf, "Number of items found: " . $count_items_found, 50, 710);
// add an image under the text
$image = $image = PDF_load_image($pdf, "png",
"C:/xampp/htdocs/final/images/footer_logo.png", "");
PDF_fit_image($pdf, $image, 50, 785, "");
pdf_moveto($pdf, 20, 780);
pdf_lineto($pdf, 575, 780);
pdf_stroke($pdf);
// draw another line near the bottom of the page
pdf_moveto($pdf, 20, 50);
pdf_lineto($pdf, 575, 50);
pdf_stroke($pdf);
//Draw the lines
$offset = 184;
$i = 0;
pdf_moveto($pdf, 20, $y - 160);
pdf_lineto($pdf, $x - 20, $y - 160);
pdf_stroke($pdf);
pdf_moveto($pdf, $x - 400, $y - 160);
pdf_lineto($pdf, $x - 400, 80);
pdf_stroke($pdf);
pdf_moveto($pdf, $x - 200, $y - 160);
pdf_lineto($pdf, $x - 200, 80);
pdf_stroke($pdf);
pdf_moveto($pdf, $x - 100, $y - 160);
pdf_lineto($pdf, $x - 100, 80);
pdf_stroke($pdf);
pdf_continue_text($pdf, '');
pdf_continue_text($pdf, '');
pdf_show_xy($pdf, "Searched Item", 70, $y - 150);
pdf_show_xy($pdf, "Searched Item", 70, $y - 150);
pdf_show_xy($pdf, "Item name", 240, $y - 150);
pdf_show_xy($pdf, "Item name", 240, $y - 150);
pdf_show_xy($pdf, "Price", $x - 180, $y - 150);
pdf_show_xy($pdf, "Price", $x - 180, $y - 150);
pdf_show_xy($pdf, "Discounted Price", $x - 100, $y - 150);
pdf_show_xy($pdf, "Discounted Price", $x - 100, $y - 150);
for ($i = 0; $i < count($this->quotation_details); $i++)
{
pdf_show_xy($pdf, $this->quotation_details[$i]['name_searched'] , 70, $y - 500);
}
// and write some text under it
pdf_show_xy($pdf, "", 250, 35);
// end page
pdf_end_page($pdf);
// close and save file
pdf_close($pdf);
答案 0 :(得分:2)
您不需要嵌套循环,只需更改每次从$ y减去的值。你可以这样做:
$placeholder = 500; // initial value
for ($i = 0; $i quotation_details); $i++)
{
pdf_show_xy($pdf, $this->quotation_details[$i]['name_searched'] , 70, $y - $placeholder);
$placeholder = $placeholder - 20;
}
您可能希望减去多于或少于20.四处游走并找到一个看起来不错的值。