Knowledge Base Nr: 00062 kontrollkarte2.txt - http://www.swe-kaiser.de

Downloads:

PHP: script liest pdf-datei ein und nutzt diese als template zur erstellung einer neuen seite

  
<?php

function textOut($size, $x, $y, $text)
# parameter: schriftgroesse in mm, xpos, ypos in mm (0,0 ist links unten), text
{
global $pdf, $font;

PDF_save($pdf);
PDF_translate($pdf, $x, $y);
PDF_setfont($pdf, $font, $size);
PDF_set_text_pos($pdf, 0, 0);
PDF_show($pdf, $text);
PDF_restore($pdf);
}

function textOutVert($size, $x, $y, $text, $grad)
# parameter: schriftgroesse in mm, xpos, ypos in mm (0,0 ist links unten), text, gedreht in grad (0-360)
{
global $pdf, $font;

PDF_save($pdf);
PDF_translate($pdf, $x, $y);
PDF_rotate($pdf, $grad);
PDF_setfont($pdf, $font, $size);
PDF_set_text_pos($pdf, 0, 0);
PDF_show($pdf, $text);
PDF_restore($pdf);
}

function setCheckbox($size, $x, $y, $width)
# parameter: groesse in mm, xpos, ypos in mm (0,0 ist links unten), liniendicke in mm
{
global $pdf, $font;

PDF_save($pdf);
PDF_setlinewidth($pdf, $width);
PDF_moveto($pdf, $x, $y);
PDF_lineto($pdf, $x + $size, $y + $size);
PDF_moveto($pdf, $x, $y + $size);
PDF_lineto($pdf, $x + $size, $y);
PDF_stroke($pdf);
PDF_restore($pdf);
}

#################################

#pdf initialisieren
$pdf = PDF_new();
if (!pdf_open_file($pdf, "")) {
print error;
exit;
};

PDF_set_parameter($pdf, "serial", "X43400-4321CD-2678EF-AD4988");
PDF_set_parameter($pdf, "warning", "true");

PDF_set_parameter($pdf, "resourcefile", "c:\php\fonts\pdflib.upr");
PDF_set_parameter($pdf, "prefix", "c:\php\fonts");

#neues dokument initialisieren
PDF_set_info($pdf, "Creator", "test.php");
PDF_set_info($pdf, "Author", "jupp zupp");
PDF_set_info($pdf, "Title", "php/pdf test");

#open existing pdf file
$pdi = pdf_open_pdi($pdf, "C:\askdata_100502\FIT-Software.pdf", "", 0);
$page = pdf_open_pdi_page($pdf, $pdi, 1, "");

#neue seite initialisieren
PDF_begin_page($pdf, 595, 842); #din a4 quer

#existierende seite als template einfügen
pdf_place_pdi_page($pdf, $page, 0.0, 0.0, 1.0, 1.0);
pdf_close_pdi_page($pdf, $page);

#metrisches koordinatensystem in cm
PDF_scale($pdf, 2.83465, 2.83465);

#texte
$font = PDF_findfont($pdf, "Helvetica-Bold", "winansi", 0);
for ($i=1; $i<10; $i++)
{
PDF_setfont($pdf, $font, $i);
PDF_set_text_pos($pdf, $i*10, $i*10);
PDF_show($pdf, "text $i, $i*10,$i*10");
}

#koorinatennetz drucken
PDF_setlinewidth($pdf, 0.1);
for ($i=0; $i<20; $i++)
{
pdf_moveto($pdf, $i * 10, 0);
pdf_lineto($pdf, $i * 10, 250);
pdf_moveto($pdf, 0, $i * 10);
pdf_lineto($pdf, 250, $i * 10);
pdf_stroke($pdf);
}

#alles aufräumen und abschliessen
PDF_end_page($pdf);

PDF_close($pdf);

#pdf-datei zurückgeben
$buf = PDF_get_buffer($pdf);
$len = strlen($buf);

#reihenfolge ist wichtig!
header("Pragma: no-cache");
header("Expires: Thu, 01 Dec 1994 16:00:00 GMT");
header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=foo.pdf");

echo ($buf);

PDF_delete($pdf);
?>