I wrote a php web app which annotates scanned forms. I have fields in a database which were not hand written on a form. Other handwritten items on the scan are not in the database. I write cross reference numbers and other text onto the scanned form. write me off list if you are interested in more info. it is set up for on specific form. here is the bit that modifies the form. $im is a png image file path $im = ImageCreateFromPng($modpngnobacks); //str_replace("\\", "/", $data[0]); //$im = ImageCreateFromPng('/data/annotatedramsey/temp/21531854.png'); if($im){ //colors $white = ImageColorAllocate ($im, 254, 254, 254); $black = ImageColorAllocate ($im, 0, 0, 0); // define where to print stuff // we need to calculate where to write on the image based on the image size $width = imagesx($im); $height = imagesy($im); //address $addx1 = 0; $addy1 = 0; $addx2 = 1300; $addy2 = 70; $addst = 55; // auditer code $codex1 = ($width * .8); // start auditor number at 80% accross $codey1 = 0; $codex2 = $width; // draw white background to right edge $codey2 = 70; $codest = 55; // Duplicate $dupx1 = ($width * .5); $dupst = 55; // pins - calculate position on page $pinx1 = ($width * .71); //1800; $piny1 = ($height * .81); //2650; // .81 $pinx2 = $width; $piny2 = ($height * .90);// 2950; // .90 $pin1st = ("$piny1" + 60); $pin2st = ("$pin1st" + 50); $pin3st = ("$pin2st" + 50); $pin4st = ("$pin3st" + 50); $addpinsst = ("$pin4st" + 50); // YearBuilt & Deed Type accross bottom $ybdtx1 = 0; $ybdty1 = ($height - 70); $ybdtx2 = 1300; $ybdty2 = $height; $ybdtst = ($height - 5); // draw on image ImageFilledRectangle ( $im, $addx1, $addy1, $addx2, $addy2, $white ); $data[80] = addslashes($data[80]); // 80: PropAdd ImageTTFtext ( $im, 35, 0, $addx1, $addst, $black, 'Vera', $data[80] ); ImageFilledRectangle ( $im, $codex1, $codey1, $codex2, $codey2, $white ); ImageTTFtext ( $im, 35, 0, $codex1, $codest, $black, 'Vera', $data[3] );// 3: CRVAudNum // prints Duplicate text //ImageTTFtext ( $im, 35, 0, $dupx1, $dupst, $black, 'Vera', $_SESSION['dup'] ); //unset($_SESSION['dup']); ImageFilledRectangle ( $im, $pinx1, $piny1, $pinx2, $piny2, $white ); ImageTTFtext ( $im, 35, 0, $pinx1, $pin1st, $black, 'Vera', $data[55] ); // 55: PIN ImageTTFtext ( $im, 35, 0, $pinx1, $pin2st, $black, 'Vera', $data[56] ); //56: PIN2 ImageTTFtext ( $im, 35, 0, $pinx1, $pin3st, $black, 'Vera', $data[57] ); //57: PIN3 ImageTTFtext ( $im, 35, 0, $pinx1, $pin4st, $black, 'Vera', $data[58] ); //58: PIN4 $morepins = "$addpinslable".$data[59]; ImageTTFtext ( $im, 35, 0, $pinx1, $addpinsst, $black, 'Vera', $morepins ); $yearanddeed = $yrbuiltlable . $data[23] . " ". $deedtypelable . $data[52]; //23: YearBuilt - 52: DeedType ImageFilledRectangle ( $im, $ybdtx1, $ybdty1, $ybdtx2, $ybdty2, $white ); ImageTTFtext ( $im, 35, 0, $ybdtx1, $ybdtst, $black, 'Vera', $yearanddeed ); //output image $imageout = $modpngnobacks; // overwrite same image //$imageout = $basedir . $ramseyImageTemp .'/mod'. $path_parts['filename'] . '.png' ; ImagePng($im, $imageout); imagedestroy($im); unset($crevSer); } O Fri, Dec 23, 2011 at 8:32 PM, gregrwm <tclug1 at whitleymott.net> wrote: > imageMagick omited portions of a pdf i got awhile back, whoknows what > dozeware made it but gimp rendered it all, so i've stuck with gimp since > then. > > > On Fri, Dec 23, 2011 at 18:50, Ryan Coleman <ryanjcole at me.com> wrote: >> >> I use imageMagick to convert PDFs to images with a single command. >> >> On Dec 23, 2011, at 6:40 PM, gregrwm wrote: >> > i've learned to use gimp to convert a .pdf to singlepage .jpg or .png >> > images, and use them as page backgrounds in OOo, finally creating a new >> > .pdf, thus i can fill out forms without printing. it works well enough, >> > though it leaves me wondering if there's a tool that does it a bit easier. > > > _______________________________________________ > TCLUG Mailing List - Minneapolis/St. Paul, Minnesota > tclug-list at mn-linux.org > http://mailman.mn-linux.org/mailman/listinfo/tclug-list > -- Tom Penney 612.208.2568