Zend Framework pdf aliniere text

Zilele trecute am avut o mica problema cu alinierea textului intr-un pdf creat cu libraria Zend_Pdf. Textul trebuia pus pe un template si aliniat la dreapta.

Cautand pe net am gasit o clasa foarte buna care m-a ajutat sa rezolv problema foarte simplu, asa ca mai jos atasez si eu clasa respectiva cu referire la sursa aici (so):

/**
 * Advanced PDF functionnalities
 */
class Advanced_Pdf
{
    /**
     * Align text at left of provided coordinates
     */
    const TEXT_ALIGN_LEFT = 'left';

    /**
     * Align text at right of provided coordinates
     */
    const TEXT_ALIGN_RIGHT = 'right';

    /**
     * Center-text horizontally within provided coordinates
     */
    const TEXT_ALIGN_CENTER = 'center';

    /**
     * Extension of basic draw-text function to allow it to horizontally center text
     */
    public function drawTextWithPosition(Zend_Pdf_Page $page, $text, $y1, $xOffset = 0, $position = self::TEXT_ALIGN_LEFT, $encoding = null)
    {
        $bottom = $y1; // could do the same for vertical-centering
        $text_width = $this->getTextWidth($text, $page->getFont(), $page->getFontSize());

        switch ($position) {
            case self::TEXT_ALIGN_LEFT:
                $left = 60 + $xOffset;
                break;
            case self::TEXT_ALIGN_RIGHT:
                $left = $page->getWidth() - $text_width - $page->getFontSize() - 35 + $xOffset;
                break;
            case self::TEXT_ALIGN_CENTER:
                $left = ($page->getWidth() / 2) - ($text_width / 2) + $xOffset;
                break;
            default:
                throw new Exception("Invalid position value \"$position\"");
        }

        // display multi-line text
        foreach (explode(PHP_EOL, $text) as $i => $line) {
            $page->drawText($line,$left,$y1,$encoding);
        }
        return $this;
    }

    /**
     * Return length of generated string in points
     *
     * @param string $string
     * @param Zend_Pdf_Resource_Font $font
     * @param int $font_size
     * @return double
     */
    public function getTextWidth($text, Zend_Pdf_Resource_Font $font, $font_size) 
    {
        $drawing_text = iconv('', 'UTF-16BE', $text);
        $characters    = array();
        for ($i = 0; $i < strlen($drawing_text); $i++) {
            $characters[] = (ord($drawing_text[$i++]) << 8) | ord ($drawing_text[$i]); } $glyphs = $font->glyphNumbersForCharacters($characters);
        $widths        = $font->widthsForGlyphs($glyphs);
        $text_width   = (array_sum($widths) / $font->getUnitsPerEm()) * $font_size;
        return $text_width; 
    }
}

O librarie foarte utila.

 

Posted in PHP, Software Tagged with: , ,

O poveste frumoasa

Povestea a inceput anul trecut, odata cu schimbarea locului de munca au venit o serie de schimbari importante. Printre cele mai importante schimbari au fost posibilitatea de a lucra la unele site-uri care mai de care mai interesante.

Unul din aceste site-uri la care am avut onoarea de a lucra a fost http://www.povesteakindersurprise.ro/ care sper ca a fost pe placul celor mici, deoarece pe placul celor mari sigur a fost, dovada fiind premiile castigate la editia 2011 a Internetics si anume castigator la categoria “FMCG Mancare – Site-uri, microsite-uri si bloguri de promovare”, bronz la categoria “Site-uri, microsite-uri si bloguri de promovare”, si Premiul Special de Webdesign.

PovesteaKinderSurprise

Site-ul a fost realizat sub forma unei carti digitale pentru copii, cu ilustratii, grafica 3D, animatie, jocuri interactive si concursuri.

Multumesc echipei (Ionut Andrei – Client Service Director, Alexandra Trofin – Account Manager, Bogdan Gheorghiu – Creative Director, Vlad Macarie – Art Director, Anca Muscalu – Copywriter, Robert Sumarocov – Flash developer si… Florin Capatina – Back End developer) alaturi de care am participat la realizarea acestui minunat site si cu siguranta vor mai urma alte site-uri cel putin la fel de interesante.

Posted in Portofoliu Tagged with: ,

Lansare oficiala www.inchiriaza-robe.ro

Primul proiect din cadrul portofoliului meu este un site de prezentare: www.inchiriaza-robe.ro.
Acesta a fost lansat luna aceasta, va ofer un preview al site-ului, dar va invit si la o navigare prin site si eventual astespt in sectiunea de comentarii parerea, propunerile si imbanatatirile care se pot aduce site-ului.

www.inchiriaza-robe.ro

In curand or sa apara si alte site-uri si aplicatii realizate de mine. Va multumesc!

Posted in Portofoliu Tagged with: , ,

Algoritm afisare combinari de n luate cate k

Saptamana trecuta a trebuit sa fac un joculet gen loto 6/49, pentru asta aveam nevoie de un algoritm sa-mi afiseze combinari de n luate cate k, bineinteles scris in php.
Am cautat pe google si am gasit unul destul de bunicel, asa ca il postez in continuare, in caz ca mai e cineva interesat.

function afisare_combinari($a, $len){
	if ($len > count($a))return 'error';
	$out = array();
	if ($len==1) {
		foreach ($a as $v) $out[] = array($v);
		return $out;
	}
	$len--;
	while (count($a) > $len) {
		$b = array_shift($a);
		$c = afisare_combinari($a, $len);
		foreach ($c as $v){
			array_unshift($v, $b);
			$out[] = $v;
		}
	}
	return $out;
}

Si nu uitati motto-ul: “Code is Poetry! One line at a time.”

Posted in PHP, Software Tagged with: ,

Interesele ascunse ale lui A. Videanu

Ministrul economiei A. Videanu doreste de mai mult timp infiintarea a doua noi societatii comerciale, acestea avind ca obiect de activitate producerea de energie electrica. Practic se doreste comasarea companiilor actuale care produc energie electrica in 2 mari companii. Una care sa produca energie electrica din carbune si fusiune nucleara si care sa se numeasc Electra S.A. si a doua care sa produca energie electrica din exploatarea bazinelor de apa, numita Hidroenergetica S.A.

Pare o idee buna, pentru ca se urmareste diminuarea pierderilor, controlul fiind mult mai bun in acest caz (fiind doar 2 societatii in loc de 16 cate  sunt acum, plus alte cateva filiale), SC CE Rovinari SA, SC CE Turceni SA, SC CE Craiova SA, SNLO SA, SN Nuclearelectrica SA, SC Hidroserv Rm. Valcea SA si sucursalele SC Hidroelectrica SA: SH Rm. Valcea, SH Sibiu si SH Targu Jiu…….ect.

Consiliul concurentei a amanat azi, acesta decizie de infiintare a celor 2 scietatii comerciale, fiind lansata o noua analiza in ceea ce priveste domeniul de activitate al societatiilor, dar si in ceea ce priveste structura actionariatului, adica a noului actionarat. Practic aici e marea dilema cine va fi noul actionariat al acestor 2 giganti energetici, teoretic ar trebui sa fie vechile societati, dar e greu sa controlezi toata metodologia de infiintare.

Cine mai are interese in acest proces de formare al celor 2 societati, persoane fizice ce detin actiuni la Fondul Proprietatea dar si sindicatele societatilor care urmeaza sa fuzioneze. Actiunile urmand sa creasca semnificativ.

Probabil ca aceste persoane sunt celebriiiii “prieteniiii lu’ dn. Videanu”, care au cumparat actiunile cu ceva timp inainte, inainte de a fi lansata aceasta idee, care idee a prins contur si aproape ca s-a materializat in aceste zile. Urmeaza sa vedem daca vor avea succes si daca cele doua societati se vor infiinta.

De ce nu vorbeste nimeni de uriasul potential din Baragan, unde s-au construit in ultimi ani, mai multe parcuri energetice eoliene, dar datorita sistemului de transport invechit nu se poate transporta intreaga energie produsa.

E mai usor sa castigi milioane de euro din comasari, fuzionari, vanzari, falimentari, privatizari de societati ale statului, decat din investitii in societatii productive. (Vezi investitiile private din energia eoliana).

Posted in Diverse Tagged with: ,

Începutul

Salutare, şi da bine v-am găsit! Întotdeauna cel mai important este primul pas, aşa ca iata-mă primul post “în lumea bloger-ilor”, bineînteles o scurtă prezentare şi pe urmă vom începe să publicăm în domeniile de interes.

Domeniile abordate fiind programarea (cu asta mă ocup) şi fotografia (hobby), dar din când în când vor fi abordate şi domenii economice, mondene şi socio-politice depinde de amploare şi interesul stârnit de evenimentul sau ştirea respectivă,.

Deocamdată să ne bucurăm de faptul că veniturile oamenilor din IT nu vor fi impozitate pentru o vreme, nu se ştie până când, deoarece România e o ţară destul de imprevizibilă!

Să ne îndreptăm atenţia către viitor şi să începem realizarea unui site cât mai util şi plăcut.

Vă mulţumesc!

Posted in Diverse Tagged with: