Witam Szanowne Grono ...
Idziemy do przodu dlatego też zaczynam (mam nadzieje) nowy rozdzial w zyciu forum.php.pl :-).
Chce podzielić się swoimi 3 godzinnymi doświadczeniami z produktem generejucym pliki pdf.
Produkt ten ukrywal sie pod adresem www.ros.co.nz/pdf/ lecz Nalfein][WR znalazl łobuza i podzielił się adresem na #php.pl irc.php.pl (polecam czasami tam sie wiele można dowiedzieć).
====================================
moj sprzęcik winXP, PIII 750 MHz, 396 MB RAM, FoxServ 3.0 www.foxserv.net
zassałem pliki http://www.ros.co.nz/pdf/pdfClassesAndFonts_009e.zip. Plki są ładnie spakowane i niewielkie. Znajduje się tam dokumentacja i zródła. Rozpakowałem i skopiowałem do katalogu C:/FoxServ/www/pdf/.
Pierwszym pisanym adresem był http://localhost/pdf/readme.php - pojawi sie ładny plik *.pdf 34 strony w około 15 s. całkiem całkiem biorąc pod uwagę że przedmiotowa klasa jest pisana w php.
W dokumentacji można odnaleść kaweł kodu typu Witam Świat
i oto ukazał się mi mój pierwszy pdf utworzony za pomocą php .
<?php include ('class.ezpdf.php'); $pdf =& new Cezpdf(); $pdf->selectFont('./fonts/Helvetica.afm'); $pdf->ezText('Hello World!',50); $pdf->ezStream(); ?>
<?php include ('class.ezpdf.php'); $pdf =& new Cezpdf(); $pdf->selectFont('./fonts/Helvetica.afm'); $data = http://www.php.net/array( http://www.php.net/array('num'=>1,'name'=>'gandalf','type'=>'wizard') ,http://www.php.net/array('num'=>2,'name'=>'bilbo','type'=>'hobbit', 'url'=>'http://www.ros.co.nz/pdf/') ,http://www.php.net/array('num'=>3,'name'=>'frodo','type'=>'hobbit') ,http://www.php.net/array('num'=>4,'name'=>'saruman','type'=>'bad dude', 'url'=>'http://sourceforge.net/projects/pdf-php') ,http://www.php.net/array('num'=>5,'name'=>'sauron','type'=>'really bad dude') ); $pdf->ezTable($data); $pdf->ezStream(); ?>
czas na lekka kontynuacje ...
ponizej przedstawiam drugi projekt, ktory moze wzbudzic u Was większe zainteresowanie.
http://www.fpdf.org/
zrodełka: http://www.fpdf.org/en/dl.php?v=151&f=zip
manual w jezyku polskim: http://www.fpdf.org/en/dl.php?id=57
Tutorials: http://www.fpdf.org/en/tutorial/index.php
skrypty: http://www.fpdf.org/en/script/index.php
<?php http://www.php.net/define('FPDF_FONTPATH','font/'); require('fpdf.php'); $pdf=new FPDF(); $pdf->Open(); $pdf->AddPage(); $pdf->SetFont('Arial','B',16); $pdf->Cell(40,10,'Hello World!'); $pdf->Output(); ?>
wynik: http://www.fpdf.org/en/tutorial/tuto2.php
<?php http://www.php.net/define('FPDF_FONTPATH','font/'); require('fpdf.php'); class PDF extends FPDF { //Page header function http://www.php.net/header() { //Logo $this->Image('logo_pb.png',10,8,33); //Arial bold 15 $this->SetFont('Arial','B',15); //Move to the right $this->Cell(80); //Title $this->Cell(30,10,'Title',1,0,'C'); //Line break $this->Ln(20); } //Page footer function Footer() { //Position at 1.5 cm from bottom $this->SetY(-15); //Arial italic 8 $this->SetFont('Arial','I',8); //Page number $this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C'); } } //Instanciation of inherited class $pdf=new PDF(); $pdf->Open(); $pdf->AliasNbPages(); $pdf->AddPage(); $pdf->SetFont('Times','',12); for($i=1;$i<=40;$i++) $pdf->Cell(0,10,'Printing line number '.$i,0,1); $pdf->Output(); ?>
Ja chciałbym tylko dodać że ostatnio popełniłem tłumaczenie FPDF-a i postatram sie je w piątek gdzieś zamieścić
Oto krótki tutorial jak tworzyć polskie czcionki i jak z nich korzystać w dokumentach PDF, tworzonych przez darmową klasę (http://www.fpdf.org/). Użyjemy do tego narzędzia (Makefont) zawartego w dystrybucji FPDF. Służy ono do generowania czcionki, którą później będziemy wykorzystywać w naszym dokumencie PDF.
Najpopularniejsze formaty czcionek to: Type1 i TrueType.
Są typowymi czcionkami wektorowymi stosowanymi w środowiskach graficznych niezależnie od platformy. Twórcą formatu Type1 jest firma Adobe, a formatu TrueType firmy Apple i Microsoft. Aby uzyskać polskie ogonki w PDF'ie należy przekonwertować czcionkę z formatu TrueType do formatu Type1.
_______________________________
1. Krok pierwszy (generowanie metrycznego pliku *.afm).
Aby wygenerować plik *.afm przydatne będzie darmowe narzędzie ttf2pt1 konwertujące czcionkę w formacie TrueType do formatu Adobe Type1.
Dostępne jest pod adresem: http://ttf2pt1.sourceforge.net/download.html
Binaria Windows dostępne są pod adresem: http://www.fpdf.org/fr/dl.php?id=22
W linii poleceń wpisujemy:
<?php require('sciezka_do_narzedzia_makefont/makefont.php'); Makefont('nazwa_czcionki.ttf', 'nazwa_pliku_afm.afm', 'kodowanie'); ?>
<?php require('sciezka_do_narzedzia_makefont/makefont.php'); Makefont('arial.ttf', 'arial.afm', 'iso-8859-2'); ?>
<?php http://www.php.net/define('FPDF_FONTPATH','font/'); require('fpdf.php'); $pdf=new FPDF(); $pdf->Open(); $pdf->AddPage(); $pdf->AddFont('nazwa_czcionki','styl_czcionki','plik_czcionki.php'); $pdf->SetFont('nazwa_czcionki','styl_czcionki', rozmiar); $pdf->Cell(40,10,'Hello World!'); $pdf->Output(); ?>
<?php http://www.php.net/define('FPDF_FONTPATH','font/'); require('fpdf.php'); $pdf=new FPDF(); $pdf->Open(); $pdf->AddPage(); $pdf->AddFont('arialpl', '', 'arialpl.php'); $pdf->SetFont('arialpl', '', 12); $pdf->Cell(40, 10, 'Hello World!'); $pdf->Output(); ?>
jedna wspaniała wiadomość otoż tłumaczeniem dokumentacji http://www.ros.co.nz/pdf/ czyli R&OS zajmie się rzseattle. Znając jego osobe i wcześniejsze tłumaczenie dokumentacji smarty wiem ze to bedzie dobre. Na początku zostaną przetłumaczone funkcjie nastepnie reszta. Czas realizaji (funkcje około 2 tygodni). Termin na pozostała cześć zostanie podany na forum po sprecyzowaniu przez rzseattle.
DZIĘKUJEMY CI rzseattle. :-)
czekamy ...........
co do polskich liter w R&OS po wielu probach UDAŁO sie
a wiec tak:
1) uzycie programu ttf2pt1 do wygenerowania fonu
ttf2pt1 -b -l latin2 c:windowsfontstahoma.ttf tahoma
2) wpisanie kodu:
<?php <?php include ('class.ezpdf.php'); $pdf =& new Cezpdf('a4'); $diff=http://www.php.net/array(177=>'aogonek',161=>'Aogonek',230=>'cacute',198=>'Cacute',234=>'eogonek',202=>'Eogonek', 241=>'nacute',209=>'Nacute',179=>'lslash',163=>'Lslash',182=>'sacute',166=>'Sacute', 188=>'zacute',172=>'Zacute',191=>'zdot',175=>'Zdot'); // a / c / e / n / o / l / s / zi / zy / // 177 / 230 / 234 / 241 / 243 / 179 / 182 / 188 / 191 / // 161 / 198 / 202 / 209 / 211 / 163 / 166 / 172 / 175 / $pdf->selectFont('./fonts/tahoma.afm',http://www.php.net/array('encoding'=>'WinAnsiEncoding','differences'=>$diff)); $wstaw1='witaj polski :) ¶wiecie'.\"nn\".'a±ˇ-cćĆ-s¶¦-nńŃ-lłŁ-oóÓ-eę-zĽ¬-zżŻ '; $pdf->ezText($wstaw1,10,http://www.php.net/array('justification'=>'right')); $pdf->stream(); ?> ?>
jak uzwac ttf2pt1.1? to tylko kod w C. Co z tym zrobic? ma ktos kompilacje pod Winzgroze?
Udostępniam program pod Windowsa bo widzę, że link nie działa: http://forum.php.pl/dev/dt/kameleon/ttf2pt1.exe
co polskich czcionek w ezpdf - za chiny mi nei dzialaja w 100%. Wyswietla mi sie cos takiego :
witaj polski ¶wiecie
a±A-ccC-s¶¦-nnN-lłŁ-oóÓ-eeE-zz¬-z¿¯
poza tym nie moge za chuiny pozbuc sie komunikatu o zlym BBOXIE czcionki.
Witam,
R&OS jest wykorzystywane do generowania PDF'ów z poziomu b. dobrego open sourcowego CMS'a - MamboServer (www.mamboserver.com).
Tradycyjnie pojawił się problem z polskimi literami.
Zrobiłem dokładnie, tak jak było to opisane poniżej (łączenie z wyborem czcionki) - jednak cały czas mam krzaczki - czy ktoś ma pomysł co zostało pominięte.
Pozdrawiam,
Andrzej
<?php <?php include ('class.ezpdf.php'); $pdf =& new Cezpdf('a4'); $diff=http://www.php.net/array(177=>'aogonek',161=>'Aogonek',230=>'cacute',198=>'Cacute',234=>'eogonek',202=>'Eogonek', 241=>'nacute',209=>'Nacute',179=>'lslash',163=>'Lslash',182=>'sacute',166=>'Sacute', 188=>'zacute',172=>'Zacute',191=>'zdot',175=>'Zdot'); // a / c / e / n / o / l / s / zi / zy / // 177 / 230 / 234 / 241 / 243 / 179 / 182 / 188 / 191 / // 161 / 198 / 202 / 209 / 211 / 163 / 166 / 172 / 175 / $pdf->selectFont('./fonts/tahoma.afm',http://www.php.net/array('encoding'=>'WinAnsiEncoding','differences'=>$diff)); $wstaw1='witaj polski :) ¶wiecie'.\"nn\".'a±ˇ-cćĆ-s¶¦-nńŃ-lłŁ-oóÓ-eę-zĽ¬-zżŻ '; $pdf->ezText($wstaw1,10,http://www.php.net/array('justification'=>'right')); $pdf->stream(); ?> ?>
Witajcie !
A jak można za pomocą klasy FPDF wygenerować ciągły tekst? Bo mam w bazie danych pod polem typu 'text' i jak to wrzucam do PDF'a to mam to wszystko w jednej linii.
Oto kod:
<? require(\"config.php\"); // pobiera niezbęde funkcje, obsługę bazy danych itp. $res = http://www.php.net/mysql_fetch_array($mysql->query(\"SELECT 'text' FROM 'arts' WHERE id = '\" . $_GET['aid'] . \"'\")); // pobiera tekst z bazy danych // to jest kod znaleziony gdzieś w tym topicu http://www.php.net/define('FPDF_FONTPATH','font/'); require('fpdf.php'); $pdf=new FPDF(); $pdf->Open(); $pdf->AddPage(); $pdf->AddFont('arialpl', '', 'arialpl.php'); $pdf->SetFont('arialpl', '', 12); $pdf->Text(10, 10, text($res['text'])); // zamieniłem Cell na Text, lecz wciąż nie działa... $pdf->Output(); ?>
Witam!
Czy istnieje taki konwerter który przerobiłby html na PDFa?
Chodzi mi o możliwość dynamicznego tworzenia takich plików gdzie źródło pobierane jest z mySQL'a. Narazie udaje mi się jedynie umieścić kod źródłowy strony w PDFie, ale będę wdzięczny za informacje czy da się zinterpretować tego HTML'a i stworzyć ładnie wyglądający pliczek bez widocznych tagów.
Z góry dziękuję za informacje.
Pobaw się tym: http://www.hotscripts.com/Detailed/13301.html
dobra tylko jak używać tego programu ttf2pt1??
Jeśli masz dostęp do shell_exec(); to PDFy bardzo łatwo wygenerować, niestety dziś już mało takich serwerów postaram się o tym napisać na php.pl - może ekipa doda jakby co - prv.
chodzi mi program do czcionek, do odpalenia na winie
hm więc ktoś mi pomoże czy jest to niemożliwe??
no tak czytałem ten temat tylko mi wywala jak wchodze do wiersza poleceń na win XP że nie ma takiego polecenia, jak to mam zaistalować??
Gdzieś wcześniej była rozmowa na temat wielkości wygenerowanego przez FPDF pliku zawierającego własne czcionki.
Problem tkwi pewnie w zastosowanych czcionkach.
Zrobiłem sobie swoje czcionki poleceniem:
Eeeh, pisałem już o tym na forum.
http://forum.php.pl/index.php?showtopic=17189
Moze zrobilibyscie z tego jakis artykul na stronce, skonczyly by sie wtedy pytania o pdf
Hmm... ja się mogę ewentualnie podjąć napisania artykułu (PDF + polskie czcionki). Co na to ekipa php.pl?
Witajcie
A co zrobic z faktem ze plik pdf sie generuje a nastepnie zapisuje sie gdzies na dysku, jesli uzyje sie takiego zapisu
W bólach, ale udało mi się odpalić polskie krzaczki w pdf-ie generowanym przez R&OS. No i teraz pozostał już tylko jeden problem - czy da się jakoś zrobić, żeby te polskie literki nie nachodziły na inne znaki w tekście? Jakiś kerning, albo coś w tym stylu? Szczególnie nieciekawie to wygląda w przypadku zbitki 2 polskich literek obok siebie
wie ktos z was moze jak stworzyc czcionke ktora mi obsluzy
utf-8 lub uincode mam z tym spory problem.
=======================================
ehhh poddaje sie, czy moglby mi ktos z was udostępnić
arial,arialb,ariali,arialbi za nic na swiecie nie chce mi przekonwertowac
na ISO-8859-2 kursywy i pogrobienia, normalna czcionka sie
konwertuje na arialpl.php a pozostałe powoduja bledy
chodzi mi o konwersje dla fpdf ISO-8859-2 calego zestawu
czcioneki ariala - normalnej, kursywy, pogrobionej i pogrobionej kursywy.
A czy ktoś może wie czy jest możliwe otwarcie *.pdf na serwerze, dopisanie do niego kilka zdań i zapisanie? Próbowałem, ale niestety z brakiem efektów, jedyne co udało mi się uzyskać, to zapis na serwerze nowego dokumentu pdf, a chodzi mi jedynie o nadpisanie już istniejącego, czyli aby zawierał pierwotną treść + nową...
Mam być może głupie pytanie, ale dopiero zaczynam i trochę się pogubiłam. Otóż, czym rózni się ezPdf od fpdf. Walczę z polskimi znaczkami. Zrobiłam wszystko tak jak opisaliście i wszystko byłoby ok gdyby nie taka drobnostka - w kodzie piszecie $pdf->new FPDF(), ja korzystam z $pdf->new PDF(). Próbowałam przez $pdf->new FPDF() ale w tym nie działa funkacja LoadData, która jest mi potrzebna. Hmmm mam nadzieję, że chciaż ktoś zrozumie o co mi chodzi . Napisze jeszcze, że to co ma być w PDF'ie pobieram z bazy MySQL.
rozwiazaniem problemu UTF-8 i generowania PDF jest biblioteka iconv.
Pozwala na konwertacje pomiedzy roznymi zestawami znakow, z moich informacji
jest zainstalowana na wiekszosci serwerow.
Konwersja pomiedzy UTF-8 a ISO
<?php $charsertTmp = 'Iso-8859-2'; $text = iconv('UTF-8',$charsertTmp,$text); ?>
Mam nadzieję, że ktoś sie już z czyms takim spotkał. Kozrystam z kodowania utf-8, miałam w związku z tym problem gdyż do tej pory wszystko co wysyłałam do pdf'a było w iso-8859-2. Rozwiązaniem okazał się programik "ttf2utf" działający tak samo jak opisywany kiedyś na forum "ttf2pt1". Do tego jest jeszcze biblioteka UFPDF (FPDF nie wystarcza) i tu pojawił się problem. Okazało się, ze UFPDF nie obsługuje MultiCell - a ja momentami mam bardzo długi tekst, który niestety nie ejst przenoszony do następnej linii tylko zostaje ucięty . Czy ktoś spotkał się z czymś takim i może wie jak z tego wybrnąć??
mam problem z uzyskaniem PDF przy korzystaniu z klasy FPDF a dokladnie gdy chce uzyc PNG o duzej rozdzielczosci (300 DPI szerokosc kolo 3000px) to nieche sie generowac PDF
zauwazylem ze wszystko jest ok do czasu gdy obraz nie przekracza 842x595 px co odpowiada wymiarom kartki A4 przy 72 DPI jesli tylko zwieksze o kilka pixeli obraz juch nieche sie ladowac
docelowo chcialbym umiescic wiekszego png by przy wydruku mial dobra jakosc i byl czytelny ale nie moge sobie poradzic
juz probowalem go skalowac na 1000 sposobow
<?php $pdf->Image('source/r3.png', 5, 5, 20, 0, 'png'); $pdf->Image('source/r3.png', 0, 0, 100, 0, 'png'); $pdf->Image('source/r3.png', 1, 1, 10, 0, 'png'); ?>
a ma ktos moze jakis darmowy wypasiony programik, ktory konwertuje pdf->chm?
DocCHM - szukaj w google "chm generator"
http://webmaster.helion.pl/kurshtml/hhworkshop/
witam
mam pytanie
jak wyswietlic w pdfie (zrobionym w php ) pionowy text - ale taki obrocony o 90st. - uzywam FPDF
pozdrawiam i dzieki
katarzynka
Na stronie fpdf masz dodatkowa klase ktora Ci rozszerzy funkcjonalnosc o pochyly tekst. Z tego co pamietam to ustawiasz pod jakim katem ma byc napis i oczywiscie ustawienia fonta. Uzylem tej klasy do generowania napisu "Podglad Wydruku"
Jak nie znajdziesz gdzie to jest to napisz na priv.
dzieki znalalzlam
jakby ktos jeszcze szukal...
http://www.fpdf.org/en/script/script31.php
Mam pytanie jak ustawic zeby dokument byl generowany w w poziomie strony A4 a nie jak w pionie
Np w fpdf patrz strona fpdf.org manual FPDF - constructor. Masz tam chyba jako pierwszy pararametr.
mój plik do generacji wydruku jest nastepujący
<? http://www.php.net/error_reporting (0); include ('../session.php'); http://www.php.net/define('FPDF_FONTPATH','../font/'); require('../html2fpdf.php'); $count = $_SESSION['ilosc_wierszy']; for($i=0;$i<$count;$i++) { $opis[$i] = iconv(\"CP852\",\"ISO-8859-2\",$_SESSION['WOpis'][$i]); //$grasort[$i] = $_SESSION['Wgrasort'][$i]; $netto[$i] = $_SESSION['Wnetto'][$i]; $sprzProcent[$i] = $_SESSION['WsprzProcent'][$i]; $sprzProcentNar[$i] = $_SESSION['WsprzProcentNar'][$i]; $ProcentProd[$i] = $_SESSION['WProcentProd'][$i]; $Zysk[$i] = $_SESSION['WZysk'][$i]; $marza[$i] = $_SESSION['Wmarza'][$i]; $kategoria[$i] = $_SESSION['Wkategoria'][$i]; } $countUSL = $_SESSION['Wrow_countUSL']; for($i=0;$i<$countUSL;$i++) { $grasortUSL[$i] = $_SESSION['WgrasortUSL'][$i]; $opisUSL[$i] = $_SESSION['WopisUSL'][$i]; $nettoUSL[$i] = $_SESSION['WnettoUSL'][$i]; $ZyskUSL[$i] = $_SESSION['WZyskUSL'][$i]; } $dataod1 = $_SESSION['data_od']; $datado2 = $_SESSION['data_do']; /* echo $opis[0]; echo \"<br>\"; echo $netto[0]; echo \"<br>\"; //echo $grasort[0]; echo \"<br>\"; echo $sprzProcent[0]; echo \"<br>\"; echo $sprzProcentNar[0]; echo \"<br>\"; echo $ProcentProd[0]; echo \"<br>\"; echo $Zysk[0]; echo \"<br>\"; echo $marza[0]; echo \"<br>\"; echo $kategoria[0]; echo \"<br>\"; echo $row_count[0]; echo \"<br>\"; */ /* echo $grasortUSL[0]; echo \"<br>\"; echo $opisUSL[0]; echo \"<br>\"; echo $nettoUSL[0]; echo \"<br>\"; echo $ZyskUSL[0]; echo \"<br>\"; echo $row_countUSL[1]; echo \"<br>\"; */ $fp = http://www.php.net/fopen(\"tabelka.html\", \"w\"); http://www.php.net/fputs($fp, \"<center>\"); http://www.php.net/fputs($fp, \"<table border=1 width=100% class=rap cellspacing=1px>\"); http://www.php.net/fputs($fp, \"<tr align=center><th class=log colspan=9 align=center>Sprzedaż netto wg. asortymentu</td></tr>\"); http://www.php.net/fputs($fp, \"<tr align=center><td class=rap colspan=9 align=left>Dataod:\".$dataod1.\"</td></tr>\"); http://www.php.net/fputs($fp, \"<tr align=center><td class=rap colspan=9 align=left>Datado:\".$datado2.\"</td></tr>\"); http://www.php.net/fputs($fp, \"<tr align=center><th class=log>Lp</th><th class=log>Opis asortymentu</th><th class=log>Netto sprzedaży</th><th class=log>Procent sprz.</th><th class=log>Sprzedaż narast.</th><th class=log>Procent asort.</th><th class=log>Zysk</th><th class=log>Marża</th><th class=log>Kat</th></tr>\"); for($i=0;$i<$count;$i++) { http://www.php.net/fputs($fp, \"<tr>\"); http://www.php.net/fputs($fp, \"<td class=rap width=30>\".($i+1).\"</td>\"); http://www.php.net/fputs($fp, \"<td class=rap width=140>\".iconv(\"CP852\",\"ISO-8859-2\",$opis[$i]).\"</td>\"); http://www.php.net/fputs($fp, \"<td class=rap align=right>\".number_format($netto[$i],2,'.',' ').\"</td>\"); http://www.php.net/fputs($fp, \"<td class=rap align=right width=80>\".number_format($sprzProcent[$i],2,'.',' ').\"</td>\"); http://www.php.net/fputs($fp, \"<td class=rap align=right width=80>\".number_format($sprzProcentNar[$i],2,'.',' ').\"</td>\"); http://www.php.net/fputs($fp, \"<td class=rap align=right width=80>\".number_format($ProcentProd[$i],2,'.',' ').\"</td>\"); http://www.php.net/fputs($fp, \"<td class=rap align=right>\".number_format($Zysk[$i],2,'.',' ').\"</td>\"); http://www.php.net/fputs($fp, \"<td class=rap align=right width=55>\".number_format($marza[$i],2,'.',' ').\"</td>\"); http://www.php.net/fputs($fp, \"<td class=rap align=right width=35>\".$kategoria[$i].\"</td>\"); http://www.php.net/fputs($fp, \"</tr>\"); $suma_netto = $suma_netto + $netto[$i]; $suma_zysk = $suma_zysk + $Zysk[$i]; } http://www.php.net/fputs($fp, \"<tr>\"); http://www.php.net/fputs($fp, \"<td class=rap align=left><b></b></td>\"); http://www.php.net/fputs($fp, \"<td class=rap align=right><b>OGÓLEM</b></td>\"); http://www.php.net/fputs($fp, \"<td class=rap align=right><b>\".number_format($suma_netto,2,'.',' ').\"</b></td>\"); http://www.php.net/fputs($fp, \"<td class=rap align=left><b></b></td>\"); http://www.php.net/fputs($fp, \"<td class=rap align=left><b></b></td>\"); http://www.php.net/fputs($fp, \"<td class=rap align=left><b></b></td>\"); http://www.php.net/fputs($fp, \"<td class=rap align=right><b>\".number_format($suma_zysk,2,'.',' ').\"</b></td>\"); http://www.php.net/fputs($fp, \"<td class=rap align=right><b>\".number_format(($suma_zysk/$suma_netto)*100,2,'.',' ').\"</b></td>\"); http://www.php.net/fputs($fp, \"<td class=rap align=left><b></b></td>\"); http://www.php.net/fputs($fp, \"</tr>\"); http://www.php.net/fputs($fp, \"<tr>\"); http://www.php.net/fputs($fp, \"<td class=rap align=left><b></b></td>\"); http://www.php.net/fputs($fp, \"<td class=rap align=right><b>\".iconv(\"CP852\",\"ISO-8859-2\",$opisUSL[0]).\"</b></td>\"); http://www.php.net/fputs($fp, \"<td class=rap align=right><b>\".number_format($nettoUSL[0],2,'.',' ').\"</b></td>\"); http://www.php.net/fputs($fp, \"<td class=rap align=left><b></b></td>\"); http://www.php.net/fputs($fp, \"<td class=rap align=left><b></b></td>\"); http://www.php.net/fputs($fp, \"<td class=rap align=left><b></b></td>\"); http://www.php.net/fputs($fp, \"<td class=rap align=right><b>\".number_format($ZyskUSL[0],2,'.',' ').\"</b></td>\"); http://www.php.net/fputs($fp, \"<td class=rap align=left><b></b></td>\"); http://www.php.net/fputs($fp, \"<td class=rap align=left><b></b></td>\"); http://www.php.net/fputs($fp, \"</tr>\"); http://www.php.net/fputs($fp, \"<tr>\"); http://www.php.net/fputs($fp, \"<td class=rap align=left><b></b></td>\"); http://www.php.net/fputs($fp, \"<td class=rap align=right><b>Razem + \".iconv(\"CP852\",\"ISO-8859-2\",$opisUSL[0]).\"</b></td>\"); http://www.php.net/fputs($fp, \"<td class=rap align=right><b>\".number_format($nettoUSL[0]+$suma_netto,2,'.',' ').\"</b></td>\"); http://www.php.net/fputs($fp, \"<td class=rap align=left><b></b></td>\"); http://www.php.net/fputs($fp, \"<td class=rap align=left><b></b></td>\"); http://www.php.net/fputs($fp, \"<td class=rap align=left><b></b></td>\"); http://www.php.net/fputs($fp, \"<td class=rap align=right><b>\".number_format($ZyskUSL[0]+$suma_zysk,2,'.',' ').\"</b></td>\"); http://www.php.net/fputs($fp, \"<td class=rap align=right><b>\".number_format(($ZyskUSL[0]+$suma_zysk)/($nettoUSL[0]+$suma_netto)*100,2,'.',' ').\"</b></td>\"); http://www.php.net/fputs($fp, \"<td class=rap align=left><b></b></td>\"); http://www.php.net/fputs($fp, \"</tr>\"); http://www.php.net/fputs($fp, \"</table>\"); http://www.php.net/fputs($fp, \"</center>\"); http://www.php.net/fclose($fp); $htmlFile = \"tabelka.html\"; $file = http://www.php.net/fopen($htmlFile,\"r\"); $tamarquivo = http://www.php.net/filesize($htmlFile); $buffer = http://www.php.net/fread($file, $tamarquivo); http://www.php.net/fclose($file); $pdf=new HTML2FPDF(); $pdf->AddPage(); $pdf->AddFont('arialpl', '', 'arialpl.php'); $pdf->SetFont('arialpl', '', 11); //$pdf->AddFont('helvetica', '', 'helvetica.php'); //$pdf->SetFont('helvetica', '', 12); //$pdf->SetFont('Arial','',11); $pdf->WriteHTML($buffer); $pdf->Output(); ?>
Masz poprawnie skompilowane fonty? albo nie da sie wciaganc plikow z fontami
mysle, ze mam gut skompilowane,
1. najpierw zrobilem programikiem, ttf2pt1 pliczki arialpl.afm i arialpl.pfb
2. nastepnie wg. skryptu
<?php require('makefont.php'); Makefont('arial.ttf', 'arialpl.afm', 'iso-8859-2'); ?>
<?php $pdf=new HTML2FPDF(); $pdf->AddPage(); //$pdf->AddFont('arialpl', '', 'arialpl.php'); //$pdf->SetFont('arialpl', '', 11); $pdf->SetFont('Arial','',11); $pdf->WriteHTML($buffer); $pdf->Output(); ?>
Moze podesle Ci moje fonty i zobaczysz czy skrypt bedzie ok dzialal. Nigdy z fontami do fpdfa nie mialem problemow.
ok , polibode@tlen.pl
dzieki
OK, wyslalem. Mam zapytanie do Ciebie: pliki z fontami, czyli to z "z" na koncu masz tez w katalogu?
jak użyc funkcji
<?php $pdf->SetFont('timesbpl','',9); ?>
<?php $pdf=new HTML2FPDF(); $pdf->AddPage(); $pdf->AddFont('timesbpl', '', 'timesbpl.php'); $pdf->SetFont('timesbpl','',9); $pdf->WriteHTML($buffer); $pdf->Output(); ?>
A przypadkiem HTML2PDF nie interpretuje <B> i wtedy laduje odpowiedniego fonta??
Wiem dlaczego tak się dzieje, ale nie wiem jak to rozwiązać
Otóż jak używałem zwykłej czcionki Arial
<?php $pdf->SetFont('Arial','',9); ?>
<?php function SetFont($family,$style='',$size=0) ?>
<?php $style ?>
A nie mozesz np wciagnac wszystkich fontow zanim wywolasz WriteHTML?
Wydaje mi sie ze wtdy powinien sie odwolac do istniejacego fontu (zaladowanego).
Wciągam owszem
<?php $pdf->AddFont('timesbpl', '', 'timesbpl.php'); $pdf->AddFont('timespl', '', 'timespl.php'); ?>
<?php pdf->WriteHTML($buffer); ?>
<?php $pdf->SetFont('timesbpl','B',19); ?>
<?php $objPdf->AddFont('timespl', '', 'timespl.php'); $objPdf->AddFont('timespl', 'B', 'timesbpl.php'); ?>
A ja mam inny problem. Uzywam HTML2PDF. Jesli wstawie jakis tekst w tabele albo uzyje tagow takich jak <p> </p> to mi sie wywalaja polskie czcionki. Dopoki jade z czystym tekstem jest OK, wstawie <P> albo <TABLE> i sie sypie.
W czym tkwi blad?
Pozdrawiam,
Salvi
Moze mi ktos jeszcze podrzucić polską czcionkę tzn na mejla albo podac link bo ja robie wszystko zgodnie z manualem no i niestety polskiej czcionki jak nie było tak nie ma tylko niektore litery są ok brakuję ą i jeszcze czegoś Dzięki za pomoc(
daj maila stary to podrzuce
udało sie komus wygenerowac PDFa przy uzyciu fontów z kodowanie UTF-8 ?
ps. Moze mi ktos podeslac fonty polskie w iso 8859-2 ?
Witam.
Możecie mi pomoć? Mam polskie czcionki zrobione i dodaje je do projektu a tu ERROR :
Jezeli to jest w scriptcie php to moze zapomniales :
<?php $pdf->AddFont('verdana', '', 'verdana.php'); $pdf->SetFont('verdana', '', 10); ?>
No wlasnie mam to jest addfont i setfont
na serwerz emam pliki czcionek ( php,z,afm,pfb,ttf) juz wszystko tam wrzucilem.
I wlasnie nei kumam dlaczego ten error.
Zrobilem jeszcze raz czcionke i mam inny error
No such file or directory....Font file not found....
Nie ma pliku font/verdanapl.z - proste .
no nie takie proste bo czcionka tam jest :/
hmmm teraz znow mam inny problem poprzedni rozwiazalem. Otoz jak wygeneruje mi juz PDFa to czcionka jest zastosowana tylko do pierwszej linilki. potem juz leca standardowe czcionki. Wiecie moze co jest nie tak?
Pozdrawiam
hm.. a dlaczgo uważacie ze lepiej uzywac generatora ezpdf
niż tego ktory jest standardowo częscią jezyka php?
Przekonaj sie sam, uzyj tego i tego i zobaczysz co jest lepsze.
A tak wogole czy ta konwersja znakow musi byc tak skoplikowana ?
Nie da sie tego jakos prosciej zrobic ?
A jesli sie nie da to skad moge wziasc opisywanu tu
na forum program makefont.php ?
Czy ktoś z Was mógłby mi napisać coś o generowaniu dokumentów z ograniczeniami ?
NP. takich które można occzytac tylk oraz? nie można drukowa? są zabezpoieczone hasłem? etc etc ..
Z poważaniem
łukasz
czy jest możliwość za pomocą fpdf pisania po istniejącym pliku pdf?
jeśli tak, w jaki sposób to zrobić?
Witam,
Otóż mam problem.
Korzystam z FPDF.
O zmianie sposobo generowania plików .pdf nie ma mowy.
A potrzebuję umieścić w plikach znaki specjalne takie jak na przykład: ® €¼§ i wiele innych.
Z formularza przychodzą jako encje HTML (FCKedytor) tylko nie potrafię sprawić żeby wyświetlały się poprawnie w .pdf Domyślam się że będę usiał zmapować te encje na coś innego, tylko nie wiem na co :/
Jakieś pomysły?
A nie można tego wyświetlić odwołując się do kodu ASCII danego znaku?
wstawic grafike i po klopocie :-)
... czyli wygenerowaniu sobie wszystkich znaków, dostaję dziurę pomiędzy 127 a 160 znakiem. A jest tam kilka które by mi się przydały.
<?php for( $i=1; $i<=256; $i++ ) { $strTemat.= "($i)" . chr($i); } ?>
<?php class My_FPDF extends FPDF { function subWrite($h, $txt, $link='', $subFontSize=12, $subOffset=0) { // resize font $subFontSizeold = $this->FontSizePt; $this->SetFontSize($subFontSize); // reposition y $subOffset = ((($subFontSize - $subFontSizeold) / $this->k) * 0.3) + ($subOffset / $this->k); $subX = $this->x; $subY = $this->y; $this->SetXY($subX, $subY - $subOffset); //Output text $this->Write($h, $txt, $link); // restore y position $subX = $this->x; $subY = $this->y; $this->SetXY($subX, $subY + $subOffset); // restore font size $this->SetFontSize($subFontSizeold); } } ?>
1. Nie w każdej czcionce bedziesz miał te znaki, spróbuj użyć jakiejś innej czcionki
2. Co do indeksów to Ci chyba nie pomogę. Jak umieszczasz tekst, w cell'ach cy poprzez Write (czy jakos tak, nigdy tego drugiego nie używałem)? Z tego co kiedyśczytałem Write można podać pozycję tekstu na stronie. Trochę to żmudne, bo trzeba pamiętać poprzednią pozycję, przed sub, przeliczyć ją na nową (dla sub) i później przywrócić starą ale tylko Y.
To taki pomysł, niesprawdzony, ale może coś z tego wyrzeźbisz. Jak sięuda to się pochwal
Wie ktoś może jak fpdfem polączyć kilka pdfów w jeden ? A jezeli nie fpdfem to czym.
Przy okazji małego projektu w Symfony natknołem sie na pewne rozszeżenie FPDF.
Może zainteresuje to osoby które poszukują rozwiązania kodowania w utf-8 w plikach pdf.
1. pierwsza biblioteka : http://www.tecnick.com/public/code/cp_dpage.php?aiocp_dp=tcpdf
oraz druga bibiliteka:
UFPDF: Unicode/UTF-8 extension for FPDF
2. http://www.acko.net/node/56
3. http://www.acko.net/files/ufpdf.zip
Po rozpakowaniu pliku ufpdf.zip w katalogu tolls znajdziecie dwa pliki: ttf2ufm.exe, makefontuni.php.
odpalamy dla czcinki arial.ttf (oczywiście trzeba ją najpierw skopiować do tego katalogu):
Aby zmniejszyc rozmiar generowanego pliku przez Fpdf
mozna sprobowac ustawic w wygenerowanych
przez makefont zbiorach:
$file='';
$originalsize=0;
Testowalem to rozwiazanie dla arial i chodzi pod Acrobat 7 doskonale
z polskimi lterami i pliki sa male.
nie powiem zeby tworzenie pdfow bylo proste...
jak zrobic czcionke dla kodowania utf-8 ?
sa jakies gotowe pliki?
Spróbuj http://pl.php.net/iconv aby przekonwertować z iso na utf
a jest cos podobnego do TCPDF tylko ze na PHP4 ?
Kodowanie,
probowalem roznych pakietow kodujacych
i jest problem zwlaszcza z ó i Ó.
Dlatego napisalem wlasne funkcje kodujace i wygenerowalem
fonty polskie dla Fpdf.
Umozliwiaja one generowac Pdf i Pdf bookmarki
z polskimi literami z Utf-8..
Fakt jest z tyum troche zabawy ale wyglada dobrze ..
Mozesz zobaczyc rezultat na (tespotwalem pod Acrobat 70: http://216.122.197/Iwa/PolishFontsBookmarks.pdf
nie mozna otworzyc pdf z podanej lokalizacji
chodzi mi o wszystkie znaki, nie tylko polskie.
czy musialbym generowac osobna czcionke dla kazdego kraju / jezyka?
Fpdf nie ma opcji unicode
chociaz sa rozszezenia Fpdf, ktore to
umozliwiaja jak UFPDF..
okej ma mozliwosc ale jak mam to zrobic zeby kazda litera z kazdego alfabetu mogla zostac do PDF wrzucona?
A ja mam taki problem. Potrzebuję tego do licencjatu: generuję pdfa, ustalam sobie komórki drukowane za pomocą "Cell" np długości 3 cm, okazuje się, że jednak trafiła się jedna wartość (tekst), której długość przekroczy te 3 cm. Wiadomo, ze wtedy zaczyna sie problem. Czy można tak uzyć MultiCella, żeby po wypisaniu tego co ma wypisać, nie przerzucał mnie do następnej linii.
Jeżeli możecie, proszę dajcie radę, jak się z tym uporać.
Definiowanie dłuższego pola jest niemożliwe, a występuje ono w środku tabeli...
Rozwiazenie,
jesli jest mozliwe to zmienic rozmiar fontu aby cell
zmiescila sie w 3 cm.
http://www.fpdf.org/
i w sekcji Scripts
Takie pytanie:
Zamierzam użyć FPDF do generowania pewnego dokumentu o stałej treści ale zmiennych danych które się w nim bedą pojawiały, ten dokument w zależności od ilości wybranych rekordów bedzie miał jedną lub więcej stron. Dane muszę pobierać z MySQL ale mam problem z nagłówkami kiedy dodaję do dokumentu gdzie są linie (a w zasadzie to przed) wyświetlające/"wrzucające" tekst do pdf'a otrzymuję w wyniku komunikat tego typu:
Warning: Cannot modify header information - headers already sent by (output started at f:\program files\apache group\Apache\htdocs\funkcje_bazy.php:21) in f:\program files\apache group\Apache\htdocs\fpdf\fpdf\fpdf.php on line 1022
FPDF error: Some data has already been output to browser, can't send PDF file
jak to ominąć, mam mało czasu więc liczę na jakieś szybkie wskazówki lub rozwiązania, jeśli nic szybko nie wymyśle bedę musiał zastosować rozwiązanie (jedyne chyba) alternatywne czyli poprostu HTML ale nie chce tego robić bo nie jest to format zbyt dobry do drukowania szczególnie jeśli strona zawiera sporo informacji - trudno jak wiadomo dopasować HTML do formatu choćby A4, a pdf do tego jest idealny
pomóżcie więc proszę
Witam (posta puściłem na Przedszkolu ale jako ze sprawa niezwykle pilna a ja od rana nie znalazlem nigdzie nawet słowka tym postanowiłem zapyta tutaj mam nadzieję że Moderator się nie pogniewa)
Czy w ramach fpdf lub innych takich wspanialych projektów istnieje mozliwosc laczenia 2 pdfow w calosc?
Przykład:
Mam np. 10 rozych 1 stronicowych pdfow powiedzmy kazdy plik to opis jakiegos urządzenia. (np. komputerPC.pdf, drukarkaLPT.pdf, SkanerLPT.pdf itd) i teraz wybieram sobie ladnie w formualrzyku co chce miec w pdfie i np po kliknieciu generuj powstaje mi pdf zalozmy 4stronowy gdzie kazda strona to strona z konretnego pdfa ...
Sprawa naprawde ekdtremalnie pilna,
Pozdrawiam
Wielkie Dzieki !!
Hej!
A nie macie problemu z dziwnym "rozstrzeleniem" polskich znaków? U mnie po wygenerowaniu PDF'a praktycznie po każdym polskim znaku jest jakby spacja. Czym to może byc spowodowane?
Pozdrawiam,
who?
niespodziewałem sie że tak nieelegancko jest rozwiązane generowanie pdf w php.. zamiast generować pdf przedewszystkim zajmuje sie konwertowaniem i tworzeniem odpowiednich czcionek... które na dodatek nie ładnie wyglądaja lub jeszcze niekiedy mam kwadraciki
zamotane to jakoś nadmiernie generowanie zwykłych pdf-ów... ale tak jest z wieloma rzeczami w php niestety
Proszę o przesłanie polskich czcionek w standarcie iso-8859-2 do FPDF'a na adres: rzast@interia.pl
No własnie mam podobny problem. Nie robi pliku .amf ;/ mignie czarne okienko i koniec. Nawet jak print screna da to nic jakies spis komend wyskauje ;/ HELP ME. jelsi mozecie przeslijcie mi na bimhernas@gmail.com czcionke Times (pl) Bardzo prosze bo program na nowym kompie nie działa
Witam
Jak w Fpdf lub FPDI wyciagnac informacje o liczbie stron jakiegos PDFa ?
Potrzebuje za pomoca fpdi zaimportowac do generowanego pdfa wybrane przeze mnie pliki pdf niesety roznia sie one w liczbie stron... a moze jest w fpdi komenda by importowal calosc pdfa a nie po stronie
Pilne dośc
Pozdrawiam serdecznie
_____________
nie bylo pytania:
dla zaintersowanych:
$pagecount = $pdf->setSourceFile($sample_file_url);
Ja mam takie pytanie. Wygenerowałem sobie czcionkę. Teraz tworze sobie pdf używając FPDF i wszytsko jest ok jak wpiszę text ręcznie to są polskie znaczki, ale jak dane idą z bazy danych to już nie. Dodam, że w bazie mam kodowanie latin2_general_ci. Skąd się to może brać??.
moze w tej klasie jest ustawione inne kodowanie?
nie latin tylko utf albo cos takiego.
To nie możliwe przecież by nie wypisało normalnego tekstu dobrze.
witam moze to stary temat i go odswierzam ale probowalem stworzyc wg opisu polskiego arialapl ale pomimo dobrych rezultatow jak w opisie niestety nie dziaja mi wszystkie polskie znaki tzn chodza wszystkie poza ż nie wiem czym ten blad jest spodowany moze ktos zna rozwiaznie przesylam funkje ktora zamienia znaki i dzialaja mi wszystkie poza 'ż'
function zmiana($string)
{
$pierwszy=$string;
//ó
$pierwszy=str_replace("ó","ó",$pierwszy);
//e
$pierwszy=str_replace("ę","ę",$pierwszy);
//l
$pierwszy=str_replace("ł","ł",$pierwszy);
//a
$pierwszy=str_replace("ą","ą",$pierwszy);
//z
$pierwszy=str_replace("ż","ż",$pierwszy);
//n
$pierwszy=str_replace("ń","ń",$pierwszy);
//echo"$pierwszy";
return ($pierwszy);
}
stymze to 1 ó to sa tagi pozostale sa tak samo zrobione //&#....... ale w w widoku normalnym tego nie widac
proilbym o przeslanie dobrych czcionek polkich najlepiej jak ktos ma ariala na adres felek_00@o2.pl
Witam,
mam następujący problem: musze wprowadzić do pdf'a obrócony tekst ale w formie multicell'a tzn.
parę linii tekstu + jego justowanie L,R,C,J a następnie go obrócić o 15 st. załóżmy do tego musi on "leżeć" w odpowiednim miejscu strony. Znalazłem wcześniej w wątku TextWithRotation, ale on działa na pojedynczych liniach nie na większej ilości tekstu z formatowaniem.
czy ktoś rozwiązywał taki problem ?
pozdrawiam
Piotr Ufel
Mam pytanko: czy ktoś używał do tworzenia PDFlib i czy udało się uzyskać polskie fonty (kodowanie nie ma dla mnie znaczenia może być iso może utf). Jesli tak to proszę o info jak to zrobić.
poniewaz ttf2pt1 po wpsaniu polecenia, zamiast wygenetowac czcionke, jedynie wyswietla dostepne opcje,
prosze was o udostepnienie, lub przeslanie czcionki (arial/verdana lub cos takiego).afm na adres landisl@o2.pl
p.s. bede jej uzywal do R&OS a
mógłby mi ktoś podesłać czcionki skompilowane do php bo walcze już pół dnia i nie mogę sobie poradzić za chiny cały czas mam krzaki, potrzebuje verdane, tahome błagam
lencka2@tlen.pl
Mam pewien problm otóż generuje pdf na podstawie informacji z bazy danych. I teraz tekst jest ze znakami enter. Jak wstawie taki txt do Cella to w pdf mam kwadracik. Próbowałem przed wstawieniem do komórki przepuścić go przez str_replace('/n',' ',$tekst) ale nie pomogło. Nie wiem jak wychwycić ten znak?? Od czego to może zależeć?
może spróbuj
str_replace('\n',' ',$tekst)
ewentualnie zamiast \n to \r lub \n\r ( \r\n )
innych znaków nowej linii nie ma.
Witam!
Mam podobny problem co pare osob. Nie moge wygenerowac polskiej czcionki za pomoca ttf2pt1. Czy moglbym prosic o plik z polskim Timesem
Z gory wielkie dzieki.
P.s. Inne czcionki tez mile widziane. Moj mail to dupa_salata@o2.pl .
mam formularz we flashu - wysyłam dane, generuje i zapisuje pdf-a teraz mam pytanie - jak wysłać to mailem jako załacznik - tak zeby wyniki formularza byly wysyłane jako załacznik w pdf-ie?
mam taki kod
<?php include ('class.ezpdf.php'); $pdf =& new Cezpdf(); $pdf->selectFont('./fonts/Helvetica.afm'); $data2 = http://www.php.net/array( http://www.php.net/array('num'=>'1.','Pytanie'=>'Rodzaj:', 'type'=>$_POST["rodzaj"]) ,http://www.php.net/array('num'=>'2.','Pytanie'=>'Imie:', 'type'=>$_POST["o_imie"]) ,http://www.php.net/array('num'=>'3.','Pytanie'=>'Nazwisko:', 'type'=>$_POST["o_nazw"]) ,http://www.php.net/array('num'=>'4.','Pytanie'=>'E-mail:', 'type'=>$_POST["o_email"]) ,http://www.php.net/array('num'=>'5.','Pytanie'=>'Numer telefonu:', 'type'=>$_POST["o_tel"]) ) $pdf->ezTable($data); $pdf->ezSetDy(-50); $pdf->ezTable($data); $pdfcode = $pdf->ezOutput(); $fp=http://www.php.net/fopen('form.pdf','wb'); http://www.php.net/fwrite($fp,$pdfcode); http://www.php.net/fclose($fp); ?>
Odnośnie mojego poprzedniego posta.
Męczyłem i wymęczyłe.
Błąd jest w pliku html2fpdf. W wielu miejscach zamiast zmiennej $FontFamily wpisane jest na stałe wartość Arial. Wymieniłem to tałatajstwo i skryp drukuje już ładne tabelki, czcionka się nie zmienia jak jest nowa linijka.
ale fajnie, udało mi sie samemu... taki kod:
<?php include ('class.ezpdf.php'); require('fpdf.php'); require_once('Mail.php'); require_once('mime.php'); $to = "mysz0n@tlen.pl"; $from = "mysz0n@tlen.pl"; $subject = "uda sie??"; // email header format complies the PEAR's Mail class // this header includes sender's email and subject $headers = http://www.php.net/array('From' => $from,'Subject' => $subject); $pdf =& new Cezpdf(); $pdf->selectFont('./fonts/Helvetica.afm'); $pdf->ezTable($data); //$pdf->Cell(40,10,"$data"); $data = http://www.php.net/array( http://www.php.net/array('num'=>'1.','Pytanie'=>'Rodzaj:', 'type'=>$_POST["rodzaj"]) ,http://www.php.net/array('num'=>'2.','Pytanie'=>'Imie:', 'type'=>$_POST["o_imie"]) ,http://www.php.net/array('num'=>'3.','Pytanie'=>'Nazwisko:', 'type'=>$_POST["o_nazw"]) ,http://www.php.net/array('num'=>'4.','Pytanie'=>'E-mail:', 'type'=>$_POST["o_email"]) ,http://www.php.net/array('num'=>'5.','Pytanie'=>'Numsdfsdfsdfsfer telefonu:', 'type'=>$_POST["o_tel"]) ); // $pdf->ezTable($mysz0n); $pdf->ezTable($data); $pdf->ezSetDy(-50); $pdf->ezTable($data); $pdf->ezTable($data); $pdfcontent = $pdf->Output("helloworld.pdf", "S"); // We will send this email as HTML format // which is well presented and nicer than plain text // using the heredoc syntax // REMEMBER: there should not be any space after PDFMAIL keyword $htmlMessage = "wysyłam panu w załaczniku wypełniony formularz!"; // create a new instance of the Mail_Mime class $mime = new Mail_Mime(); // set HTML content $mime->setHtmlBody($htmlMessage); // IMPORTANT: add pdf content as attachment $mime->addAttachment($pdfcontent, 'application/pdf', 'helloworld.pdf', false, 'base64'); // build email message and save it in $body $body = $mime->get(); // build header $hdrs = $mime->headers($headers); // create Mail instance that will be used to send email later $mail = &Mail::factory('mail'); // Sending the email, according to the address in $to, // the email headers in $hdrs, // and the message body in $body. $mail->send($to, $hdrs, $body); ?>
<?php include ('class.ezpdf.php'); $pdf =& new Cezpdf('a4'); $diff=http://www.php.net/array(185=>'aogonek',165=>'Aogonek',230=>'cacute',198=>'Cacute',234=>'eogonek',202=>'Eogonek', 241=>'nacute',209=>'Nacute',179=>'lslash',163=>'Lslash',156=>'sacute',140=>'Sacute', 159=>'zacute',143=>'Zacute',191=>'zdot',175=>'Zdot'); //177=>'aogonek' //177=>'question',185=>'question',97=>'question',198=>'Cacute', // a / c / e / n / o / l / s / zi / zy / // 177 / 230 / 234 / 241 / 243 / 179 / 182 / 188 / 191 / // 161 / 198 / 202 / 209 / 211 / 163 / 166 / 172 / 175 / $pdf->selectFont('./fonts/arial.afm',http://www.php.net/array('encoding'=>'WinAnsiEncoding','differences'=>$diff)); $wstaw1='ążśźćęłóń ĄŻŚŹĆĘŁÓŃ'; $pdf->ezText($wstaw1,10,http://www.php.net/array('justification'=>'right')); $pdf->stream(); ?>
a jak zmniejszyć rozmiar generowanego pdf'a? Mam już tylko 1 czcionke SansSerif, a rozmiar pliku to ok.200KB.
Przeczytaj dokładnie cały temat i zajrzyj tu:
http://forum.php.pl/index.php?showtopic=17189
P.S. Potwierdzam działanie w pełni doskonałe
Udało mi się uruchomić FPDF-a, załączyć fonty z polskimi znakami (kodowanie ISO-8859-2), załączanie HTMLa bez najmniejszych problemów ...
Dzięki wielkie za ten cały temat
Witam!
Wiem, że forum jest dla php, ale jest to jedyne miejsce gdzie znalazłem info o generowaniu plików formularza fdf.
A mam następujący problem: W pliku pdf zrobiony jest formularz umowy z klientem. Ponieważ firma nie chce kupować dla swoich przedstawicieli Adobe Pro chcą to robić mniej więcej w następujący sposób. Wypełnia się najważniejsze dane w Excelu i eksportuje do pliku fdf (do konkretnej ścieżki). W pliku pdf otwieranym przez Adobe Readera jest przycisk importuj dane, które wciąga z pliku fdf wszystkie niezbędne informacje i wrzuca do formularza. Na tym etapie jest wszystko proste i juz jest zrobione.
Niestety nie wiem jak zakodować polskie znaki, aby po zapisaniu w pliku fdf były do odczytania przez pdf'a. Patrzyłem jak robi to Adobe Pro i koduje to w jakiś przedziwny sposób.
Czy ktos zna jakieś rozwiązanie? Może być nawet jakiś mało miły dla uzytkownika work-around. Niestety w gre nie wchodzi eksportowanie danych z Adobe Readera na jakis serwer i zasysanie stamtad.
Bede bardzo wdzieczny za pomoc.
Witam
Chciałem za pomocą html2pdf zapisywać strony (taką jedną z wynikami z formularzy).
html2pdf - http://www.tufat.com/s_html2ps_html2pdf.htm - darmowe narzędzie oparte o fpdf
Mój problem polega na tym iż generując pdf-a z polskimi znakami muszę koniecznie osadzić czcionki jakich używam, przez taki zabieg niestety plik robi się dosyć spory.
Nie osadzając czcionek zamiast polskich literek otrzymuję w ich miejsce spacje.
Kombinowałem na wiele sposobów podżucając czcionki fpdf jednak nie bardzo pomogło, w najlepszym wypadku z czcionkami dodanymi do fpdf uzyskałem efekt dodania spacji po polskiej literze (ale i tak osadzałem czcionkę). Ogółem html2pdf ładnie działa bez generowania czcionek - wystarczy mu podać tylko czcionki ttfi resztę sam robi - o ile osadzi się czcionkę to jest OK.
Co zrobić żeby nie osadzać czcionki a mieć ogonki?
wszystko pięknie ładnie ale jak w FPDF tworzyć tabele?
ok mam w tutorialu FPDFa było
Witam
Może się komuś przyda.
Zauważyłem, że dokumenty FPDF, które są pod PHP5 bardzo długo się generują. Jeśli więc ktoś na swoim serwerze ma taką możliwość polecam zmianę na PHP4 (choć to może również zależeć od ustawień PHP5 na danym serwerze, dokładnie nie badałem tej kwestii, bo szkoda mi na to czasu)
witam używam dompdf do generowania PDF. w klasie tej jest pewien błąd chodzi o styl
line-trough czyli tekst przekreślony, za każdym razem przekreśla niżej albo wyżej aby to poprawić należy otworzyć plik text_renderer.cls.php, a następnie odnaleźć ten fragment kodu
<?php case "underline": $deco_y += $height * (1 + self::UNDERLINE_OFFSET); break; case "overline": $deco_y += $height * self::OVERLINE_OFFSET; break; case "line-through": $deco_y -= $height * ( 0.25 + self::LINETHROUGH_OFFSET); break; ?>
<?php $deco_y -= $height * ( -0.75 + self::LINETHROUGH_OFFSET); ?>
poszukaj na forum, ponieważ komuś już podawałem linki do polskiego ariala i arialab.
Chciałbym do PDF'a dołączyć wektorowe logo firmy. Jest zapisane w formacie AI (Adobe Illustrator). Czy biblioteka FPDF potrafi dołącząć jakikolwiek format wektorowy? Bo jeśli nie to pomyślałem, że możnaby przerobić logo na jeden znak czcionki TTF, którą następnie należałoby tradycyjnie przekonwertować na plik logo.php oraz logo.z.
Robił ktoś z Was może już coś takiego? Prosiłbym o wszelkie wskazówki lub gotowy plik czczionki, za który jestem gotów zapłacić.
Logo umieściłem na serwerze FTP:
ftp://ftp.nexis.pl/aocc.zip
nic z tego, FPDF obsługuje tylko parę rodzaji plików... np PNG, ale JPG z tego co pamiętam to nie obsługuje. Poprostu zmień sobie format pliku.
Po pierwsze: FPDF obsługuje pliki JPEG, więc nie wprowadzaj ludzi w błąd, a poza tym
Czy mógłby mi ktoś na maila podesłać czcionki ARIAL, VERDANA I TIMES (bold i pochyłe też) w kodowaniu UTF-8 dla klasy FPDF?
Mail: rasgan@o2.pl
<?php http://www.php.net/header( 'Content-Length:' . http://www.php.net/strlen( $this->buffer ) ); ?>
Witam.
Walcze z klasą fpdf i html2fpdf, pobrałem zestaw 3.0.2 beta.
Mam wygenerowane i są wczytywane fonty arial i arialb.
Sam fpdf wysypywał się na lini ładowania fontu którego nie ma.
czy mogę prosić o całkowity pusty druk wpłaty/przelewu? może być w pdf lub jpg
Dzieki
Witam! Mam pytanko / prośbę.
Korzystam z fpdfa i mam przed sobą problem którego nie mogę w żaden sposób przeskoczyć.
Mam w php plik generujący kod kreskowy w formacie PNG, wywoływany przez barcode.php?v=XXX&width=XXX&height=XXX.
W jaki sposób tak wygenerowany kod kreskowy wstawić do komórki w Multicell?? Z góry dzięki za pomoc
Przeglądałem temat ale nie mogę znaleźć odpowiedzi, która pomoże mi zacząć pracę z FPDF. Otóż mam stronkę na divach i jako podstronę chciałem includować stronkę generującą raporty w FPDF. Otrzymuję następujący błąd:
FPDF error: Some data has already been output, can't send PDF file
Wynika z niego że już niby generowałem coś ze stronki ale to nie możliwe bo kod wygląda tak:
<?php http://www.php.net/session_start(); if(/*Warunki zalogowania*/) { $_SESSION['status'] = "DENIED"; http://www.php.net/header('Location: ../../index.php'); http://www.php.net/exit; }else { require('fpdf.php'); $pdf=new FPDF(); $pdf->AddPage(); $pdf->SetFont('Arial','B',16); $pdf->Cell(40,10,'Hello World!'); $pdf->Output(); } ?>
Kicok, o tym właśnie już w nocy pomyślałem. Zmieniłem tak, że do DIV ładuję stronkę która będzie miała formularz (ew. linki) do stronek php które otworzą się w nowym oknie. Jednak w Operze, IE mam białe okno a firefox wyrzuca że plik nie zaczyna się od %PDF czy coś takiego. Ma ktoś jakiś przykład jak generować pdf ze sprawdzeniem zalogowania (bo nie każdy może mieć dostęp do tych danych).
@Riggs
Ten błąd:
nastepujacy problerm.
Wygenerowalem sobie czcionke z polskimi znakami i niby wszystko dziala.
Mi pod FF2 i IE7 odtworzyło...
Więc nie wiem gdzie masz problem w skrypcie, czy sofcie.
rozumiem że pliki *.map które są potrzebne do stworzenia odpowiedniej czcionki są wymagane, szukam więc odpowiedniego dla utf-8 ale przydałby się też iso8859-2 ale nie mam ich w paczce którą "reklamował" KaMeLeOn, w ogole nie ma tam katalogu /font/makefont o ktorym pisze, jest tylko plik copyright i ttfpt1.exe, skąd wziąć te .map, jaką konkretnie komendą je uwzględnić i w jakim katalogu powinny się znajdować, jak mozecie zarzuccie examplem
z ISO sobie poradziłem od razu (chociaz faktycznie w jednej paczce co sciagnalem to nie bylo nic poza ttf2pt i readme) , z tym że myślałem że może gdzieś dałoby się odgrzebać UTF-8, ale skoro nie ma to luz;
szkoda bo trzeba pamietac o tym kodowaniu jak sie ma utf-8
pozdro
Zainteresuj się UFPDF: http://acko.net/node/56
Nie korzystałem z tego nigdy, więc nie wiem czy się nada, ale z tego co przeczytałem to zapowiada się obiecująco.
Witam
Dołączam się do prośby o polskie czcionki. Pół dnia walczę z tt2pt1 i nic
Mój mail: alskar@o2.pl
ja się męczyłem 2 dni i dałem rady, więc davaj davaj
Udało się, ale musiałem wywalić parametr -b z polecenia ttf2pt1.
Teraz gra i buucy
Witam.
Mam swoje czcionki Arialpl i ArialplBOLD.
Stosuje FPDF do generwoania pdfow, ale mam problem.
Wpisując
Bo źle dodajesz czcionki, powinno być:
$pdf->AddFont('arialpl', '', 'arialpl.php');
$pdf->AddFont('arialpl', 'B', 'arialplBOLD.php');
P.S. Ale tu się śmietnik zrobił, ja jakoś zrobiłem tak jak było napisane i działa bez problemu, a jakoś tyle osób ma "problem"...
Witam
Mam skrypt który generuje mi do formatu PDF z klasą w FPDF. Jedank kiedy zrobiłem sobie polskie czcionki to litery miedzy sobą w zadaniu sie zlewają czy można określić ich długość odstępu
Wygląda to tak da się temu zaradzić?
Pozdrawiam
Piotrwusek
Proszę o odpowiedz
Witam
Może mi ktoś pomóc w tym temacie http://forum.php.pl/Wysylanie_pdfa_jako_zalacznika_t79681.html ? Do mojego skryptu użyłem rozwiązań wymienionych w tym temacie, jednak mam problem z wysłaniem maila z załącznikiem w podfie.
Cześć,
u mnie wszystko śmiga jak należy... ale tylko lokalnie.
Jak tylko wyślę skrypty na serwer przy uruchamianiu skryptu dostaję błąd - alert Acrobat Readera "The file is damaged and could not be repaired".
Serwer lokalny jest na windzie, produkcyjny na linuxie.
Będę niezmiernie wdzięczny za jakąkolwiek pomoc.
ja mam to samo, na linuxie nie generuje poprawnych plikow pdf.
ale rozmiar jest taki sam jak z tym poprawnym wygenerowanym na windowsie.
wiec chyba nie o to chodzi ze jakas inna tresc.
ja korzystam z CPDF
witam, rzuciłem okiem tak na owe propozycje, jednak mam dwa pytania o których chciałbym się dowiedzieć:
1.czy/które klasy dołączają do pdfa czcionki (tzn., czy osoba uruchamiająca program musi mieć zainstalowaną ową czcionkę w systemie) ?
2. czy/ które klasy dają możliwość spłaszczenia pliku (tzn. "wychnięcia" go w formacie pdf 1.3) ?
Będę wdzięczny za odpowiedź, pozdrawiam.
Ja mam problem tego rodzaju. Mam stronę z formularzem z kodowaniem charset=ISO-8859-2. I teraz jak robie submit do php gdzie mam np $imie=$_POST['imie']; a później
$pdf->Text(20,80, 'Imię:');
$pdf->Text(80,80, "$imie");
to wpisuje mi ładnie Imię a potem jak dam np Mieczysław to zamiast 'ł' są już krzaczki.Jakiś pomysł o co może chodzić ?
nigdy w zyciu nei mialem problemu z generowaniem czcionek w FPDF za pomoca ttf2pt1 a teraz poprstu mam wrazenie ze tam brakuej plikow, w pierwszym poscie kaza wpisac polecenei do pliku ktorego nie ma w tym archiwum! Czy moze ktos podac link do pelnego archwium programu ttf2pt1? Bardzo prosze.
//edit
dobra znalazlem, teraz gorszy problem, *.map ktore sa w makefont wywalaja jakies bledy, domyslam sie ze chodzi o francuskie znaki, a ja je musze miec, jak to zrobic?
//edit
ok poradzilem sobie, wystarczy uzyc kodowania windows 1252
Witam serdecznie
Wczoraj użyłem pierwszy raz fpdf do generowania PDF-ów i żaden z podanych tu sposobów mi nie pomógł. Potrzebowałem kodowania UTF-8 a jak wiadomo ttf2pt1 może mi przeknowertować co najwyżej do ISO. Dlatego też postanowiłem zmienić trochę klasę (Czcionki zmieniałem ttf2pt1).
Teraz wygląda to tak:
<?php function Text($x,$y,$txt) { //Output a string $s=http://www.php.net/sprintf('BT %.2f %.2f Td (%s) Tj ET',$x*$this->k,($this->h-$y)*$this->k,$this->_escape($txt)); if($this->underline && $txt!='') $s.=' '.$this->_dounderline($x,$y,$txt); if($this->ColorFlag) $s='q '.$this->TextColor.' '.$s.' Q'; $this->_out(iconv("UTF-8","ISO-8859-2",$s)); } ?>
<?php function Text($x,$y,$txt) { //Output a string $s=http://www.php.net/sprintf('BT %.2f %.2f Td (%s) Tj ET',$x*$this->k,($this->h-$y)*$this->k,$this->_escape($txt)); if($this->underline && $txt!='') $s.=' '.$this->_dounderline($x,$y,$txt); if($this->ColorFlag) $s='q '.$this->TextColor.' '.$s.' Q'; $this->_out($s)); ?>
A ma ktoś z Was już jakieś doświadczenia z http://pl.php.net/manual/pl/book.haru.php ?
witam. drobny problemik opisałem w temacie: http://forum.php.pl/PHPgenerowanie_pdf_t101138.html
moge prosić o pomoc w jego rozwiązaniu bo przecież chyba brak odpowiedzi nie świadczy o braku możliwego rozwiązania.
ewentualnie powiedzcie w jaki sposób z innego ułożenia danych źródłowych dojść do możliwosci rysowania tabeli.
PS. co do problemu to liczba wierszy jak i kolumn będzie się zmieniać to i skrypt musi być uniwersalny.
EDIT
problem nie aktualny. zastosowałem fpdf i tutaj dane są odczytywane z pliku. tu udało mi się zrobić samemu.
tamto udało się obejść ale teraz znowu potrzebuje pomcy. Moge prosić o zaglądnięcie do ostatniego postu:
http://forum.php.pl/index.php?s=&showtopic=101243&view=findpost&p=508733
i jakąś poprawną odpowiedź.
pozwole sobie podzielić z wami dość ciekawym liunkiem:
http://fpdf.fruit-lab.de/index.php?id=3
zasada tamtejszego formularza jest prosta. wskazujecie plik ttf wybieracie kodowanie i przerabia on go tak aby można było używać czcionki w fpdf. fajna sprawa. za jednym podejsciem dostajemy odpowiednie czcionki bez instalacji innych programó i ręcznej zabawy.
dzwine, temat wisi od 2003 roku a na dobra sprawe kwestia polkich fontów nie jest wyjasniona w 100%.... ehh
chce generowac pdfa za pomoca html2fpdf, wiec moj problem molega na tym ze jak mam
<?php require_once('html2fpdf.php'); $objPDF = new FPDF(); $objPDF->AddPage(); $objPDF->AddFont('Arial', '', 'arial.php'); $objPDF->SetFont('Arial', '', 15); $objPDF->Cell(40, 40, 'ążźśćńłśęó ŻĄŚŹĆĘŁÓŃa<br>'); $objPDF->Output(); ?>
<?php require_once('html2fpdf.php'); http://www.php.net/ob_start(); include_once('plik_do_wrzucenia.php'); $htmlbuffer = http://www.php.net/ob_get_contents(); http://www.php.net/ob_end_clean(); $pdf = new HTML2FPDF('P','mm','A4'); $pdf->AddPage(); $pdf->UseCSS(true); //$pdf->AddFont('Arial', '', 'arial.php'); - linia jest zakomentowana bo jak ja odkomentuje dostaje info ze arial jest juz zaladowany $pdf->SetFont('Arial', '', 15); $pdf->WriteHTML($htmlbuffer); $pdf->Output("file.PDF", "D"); ?>
Panowie kochani, macie moze gotowy uklad faktury vat do zapisu w pdf?
Witam
Zbudowałem sobie bazę danych w MySql w PHP napisałem formularze dostępu i obsługi danych lecz nie potrafię napisać kodu php służącego do wydruku danych w postaci np faktury czy zamówienia. Jestem młodym programistą i po przeczytaniu dostępnych postów nt i wielu godzinach pisania nic mi nie wyszło. Jeżeli jest ktoś kto posiada działający "skrypt" wydruku do pdf proszę o przesłanie plików. Niezamierzam go użyć wprost lecz przerobić do moich potrzeb. Bardzo proszę o pomoc. Mój e-mail pwpib@wp.pl.
Witam
Projekt: po napisaniu w edytorze tekstu e-maila ma się on wysłać jako załącznik PDF pod wskazany adres.
Z generowaniem i wysyłaniem problemu najmniejszego nie ma, użyłem tej biblioteki Spipu http://prgm.spipu.net/?id=29&page i działa.
No nie do końca - nie ma polskich znaków. Przy korzystaniu z samej biblioteki FPDF to rozwiązanie http://ntxt.net/?id=polskie_znaki_w_FPDF pomogło i polskie znaki były, tymczasem biblioteka Spipu, mimo że oparta o FPDF wywala przy tym samym rozwiązaniu błąd:
Mam problem z polskimi znakami w PDFlibie. Próbuję rozwiązać go przez użycie pliku czcionki Arial z dysku (używam serwera lokalnego).
Niestety, jakiej ścieżki w pdf_load_font() bym nie użył, wywala mi błąd: "Metrics data for font 'C:/WINDOWS/Fonts/arial.ttf' not found".
Czy 'metrics data' to jakieś dodatkowe dane, które muszę wyciągnąć z pliku czcionki, czy chodzi o brak dostępu? Błąd wyskakuje także w sytuacji, kiedy wrzucę fonta pod './arial.ttf'. Proszę Was o pomoc, bo siedzę nad tym już parę godzin, a niczego sensownego nie uzyskałem...
Powinieneś chyba używać czcionek Type3, a nie TrueType. Jeśli chodzi o Arial, to jest wbudowana pod nazwą Helvetica.
Hmm. Początkowo używałem Helvetiki, ale ona chyba nie zawiera polskich znaków... Może trzeba użyć innego kodowania? Próbowałem iconv() i różnych ISO/win/UTF, próbowałem zmienić kodowanie z 'host' na inne przy załadowaniu czcionki (w dokumentacji nie znalazłem listy możliwych kodowań, a przy 'unicode' wyskoczył mi błąd w stylu 'Kodowanie Unicode jest niedostępne przy tej konfiguracji', bez żadnych wskazówek co do rozwiązania problemu). Żadnego kodowania innego niż 'host' nie udało mi się użyć.
W dokumentacji czytałem, że PDFlib obsługuje fonty TrueType, ale myślałem też o Type3... Tylko nie mam pojęcia, czym przekonwertować jedno na drugie i nigdy wcześniej nie robiłem takich rzeczy... Nie wiem też, jak wygląda (rozszerzenia) czcionka w formacie Type3, nigdy nie miałem z nim styczności. Najgorsze, że ten problem muszę rozwiązać do środy, a będę na to miał bardzo mało czasu (koniec roku, 3 sprawdziany w 2 dni :/ ). Pomóżcie...
Aha: moja wersja PDFliba to 2.1.6 i pochodzi z PECLa.
///EDIT:
Jako że czas bardzo mnie goni (a na szukanie konwertera z TTF do Type3 zmarnowałem tyle czasu, że jutro zawalę pewnie sprawdzian z biologii), zmieniłem PDFliba, który kusił mnie szybkością, na FPDF. Teraz wreszcie śmiga jak należy, błędami nie sypie i rozpoznaje czcionki. Kiedyś może dowiem się, jak zmusić PDFliba do współpracy, teraz nie mam na niego czasu ani cierpliwości. Dzięki za fatygę, Erix
Czy wie ktoś czy na serwerach nazwa.pl jest włączony support PDF?
Mam pytanie dotyczące skryptu TCPDF. Mianowicie czy da się jakoś zmusić skrypt, żeby zapisywał wygenerowane PDF'y w którymś z katalogów na serwerze?
EDIT: Znalazłem rozwiązanie
$pdf->Output("./jakiśtam-folder/artykul.pdf", "F");
Czy bedzie ktos tak mily i podzieli sie fontami bo mam mac'a i tam nie wygeneruje czcionek
witam wszytkich.
slowem wstepu chcialbym podziekowac za wyczerpujacy tutorial dotyczacy generowania pdfow.
zdaje sobie sprawe ze to forum dotyczy generalnie php ale jakby nie patrzec bazy danych sa fundamentem w tworzeniu 'czegokolwiek'.
korzystajac z waszych wskazowek udalo mi sie uzyskac polskie literki w dokumentach pdf ALE...
...dane ktore pochodza bezopsrednio z bazy danych(mam na mysli tutaj mysql-a) nie wyswietlaja sie z ółęść itp.
z racji tego ze jeden obrazek zastapi tysiac slow dolaanczam screen-a.
http://img517.imageshack.us/i/hmmj.jpg/
oto roboczo-experymentalny plik konfiguracyjny mysql. uzywam WAMP server w wersji 2.0i
wtedy pdf w ogole mi sie nie generuje
a co z czcionkami PL masz?
ustawilem tak
nie ten post sory - do usuniecia
Niestety nie pomoge bo nie mam czcionek
Męczyłem ten temat przez ostatnie kilka dni.
Poszukiwałem biblioteki która wygeneruje mi PDF z podanego kodu HTML bez jakiś ciężkich kombinacji i przerabiania kodu.
Postanowiłem podzielić się ze wszystkimi moimi doświadczeniami. Mam nadzieję że komuś się to jeszcze przyda.
1. FPDF
Nie jest to gotowiec który sam przemieli HTML+CSS i wypluje gotowego PDF'a.
Trzeba tu wszystko robić "ręcznie" czyli ustawiać położenia, fonty, elementy itd. Na bazie FPDF powstały inne biblioteki o czym poniżej:
2. html2fpdf
http://html2fpdf.sourceforge.net/ fatalna, wygląda jakby autor wszystkie siły zużył na tworzeniu biblioteki i stronę zrobił ktoś inny;)
Po wygrzebaniu z sieci ostatnie wersji i zainstalowaniu pojawia się oczywiście nieśmiertelny problem z polskimi fontami. Przerobiłem cały ten cyrk z generowaniem polskich czcionek i w końcu udało mi się wygenerować PDFa z polskimi znakami.
Niestety bardziej rozbudowany kod HTML (tabelki, css) kładzie wszystko. Cały tekst się po prostu rozwala. Krótko mówiąc idea dobra ale jeszcze daleko do prawidłowego rozwiązania.
3. dompdf
http://www.digitaljunkies.ca/dompdf/ na szczęście dość dobra. Udało mi się to uruchomić razem z polskimi fontami (oczywiście z kombinacjami). Niestety przy bardziej rozbudowanym HTMLu skrypt się wywala sypiąc błędami.
4. mpdf
Porządnie opracowana http://mpdf.bpm1.com/, w zakładce "Documentation" wszystko porządnie napisane z przykładami.
Co najważniejsze nie trzeba kombinować z polskimi czcionkami. Biblioteka wspiera różnego rodzaju czcionki, nawet chińskie czy arabskie.
Generuje PDF'a o przyzwoitym rozmiarze, z polskimi znakami. Dobrze radzi sobie z rozbudowanym HTML'em i CSS
http://www.website.vel.pl/net/skierowanie.pdf
Zdecydowanie polecam
Wygląda na to że na obecną chwilę nic lepszego nie znajdę.
Zatem jeżeli ktoś szuka rozwiązania na HTML -> PDF - to http://mpdf.bpm1.com/download
Poniżej kilka porad i uwag (dotyczy wersji aktualnej w chwili pisania posta czyli 4.1.1):
include('mpdf/mpdf.php'); $mpdf=new mPDF(); $html = "<p>Hello World!</p>"; $mpdf->WriteHTML($html); $mpdf->Output(); http://www.php.net/exit;
include('mpdf/mpdf.php'); $html = http://www.php.net/file_get_contents("moj_plik.html"); $mpdf=new mPDF('iso-8859-2'); $mpdf->allow_charset_conversion=true; $mpdf->charset_in='ISO-8859-2'; $mpdf->WriteHTML($html); $mpdf->Output("moj_plik.pdf","F"); http://www.php.net/exit;
include('mpdf/mpdf.php'); $mpdf=new mPDF('iso-8859-2','', 0, '', 10, 10, 10, 10, 0, 0, 'P'); $mpdf->allow_charset_conversion=true; $mpdf->charset_in='ISO-8859-2'; //wejściowe kodowanie to ISO $stylesheet = http://www.php.net/file_get_contents('style.css'); $mpdf->WriteHTML($stylesheet,1); $mpdf->WriteHTML($html); $mpdf->Output("moj_plik.pdf","F"); http://www.php.net/exit;
Witam,
dotychczas moje pliki .pdf czy .rtf były generowane z wcześniej przygotowanych szablonów. Tym razem potrzebuje czegoś takiego:
Z bazy danych wyszukiwane są osoby spełniające dane kryteria( to żaden problem), wyświetlają się osoby oraz formularz, gdzie w checbox'ach wypisane są kryteria które mają być wyświetlone w pdf'ie (np, pobiera wszystkie dane ale chcę żeby wyświetliło się imię, nazwisko i tel.) czy jest możliwość wygenerowania takiego pdf'a??. Proszę o jakąś wskazówkę. Dodam jeszcze, że chciałbym wydrukować wszystkie osoby spełniające wcześniejsze warunki na jednej stronie, a nie każdą z osobna.
To klasyczne zadanie PHP, nic w tym niezwykłego nie ma: pobrać dane z bazy i wyświetlić. Z tym że zamiast "wyświetlić" ma być "zapisać w pdf'ie".
Dane przygotowujesz tak jakby miały pojawić się na ekranie, tylko zamiast wyświetlać zapisujesz je do zmiennej, np $html.
Potem wykorzystując bibliotekę mpdf generujesz dokument pdf.
W moim poprzednim poście jest to opisane.
Witam
Ja poszukuję natomiast sposobu lub biblioteki, która potrafi konwertować Latex-a zagnieżdżonego w tekście na dokument PDF. Czy to jest do napisania w PHP?
Nie spotkałem w swoich poszukiwaniach biblioteki PHP która to obsługuje. Nie wiem, może jest, ale trochę wątpię. Skoro najlepsza jaką udalo mi się znaleźć ma problemy ze wszystkimi elementami HTML to co dopiero z tym latex.
Brick bardzo fajna biblioteka , przetestowalem to u siebie w Zendzie i dziala ladnie .. podpiolem swoje kodowanie i polskie czcionki tez sa czego nei moglem zrobic w fpdf . Jak narazie zapowiada sie ciekawie , musze tylko do tego przysiasc.
Dzieki bardzo za rade ... biblioteka mpdf jest chyba tym czego szukalem do generowania pdfow, dokladniej stwierdze jak ja potestuje.
Witajcie
Mam taki problem z TCPDF, jak wstawie czcionke bez polskich znakow to skrypt generuje mi jedna strone w przeciagu ok sekundy, a gdy wybiore jakas z polskimi znakami to generacja jednej strony PDF trwa ponad 15 sekund. Znalazlem rozwiazanie do FPDF gdzie trzeba bylo zakomentowac jednego headera, jednak w przypadku TCPDF nie wiem jak pgo przyspieszyc. Moze ktos z was mial taki problem.
Pozdro.
Czy w tym dokumencie używasz możesz kilku czcionek? U mnie przy dwóch czcionkach (Times New Roman + Bold) pdfy kilku stronicowe zajmują ok 0,5 mb.
Brak literki 'Ś' i 'ą' w generowanym PDF. Polskie czcionki wygenerowałem. Pozostałe polskie znaki są, brakuje tylko tych dwóch znaków. Jeśli pobieram z bazy dane to te 'Ś' i 'ą' wyświetlają się prawidłowo, problem pojawia się gdy chce na sztywno wpisać te znaki. Można je jakoś zastąpić ?
Wniosek: używaj takiego samego kodowania przy wpisywaniu, co pobierane z bazy. A jak nie możesz - iconv.
A nie latwiej skompilowac sobie czcionki zeby chodzily z polskimi znaczkami?
Moze ktorys z kolegow podzieli sie czcionkami bo nie mam wingrowsa i nie mam jak skompilowac czcionek
Jakich potrzebujesz? Mam tylko jakiegoś times'a na stanie
Przyjme kazde byle sprawdzone i dzialajace w PL bo nie mam na czym testowac
moje czcionki: http://dl.dropbox.com/u/5345217/rozne/timsy.zip
Daj znac czy wszystko dziala
dziekuje bardzo. Dam znac jak tylko do tego siade
Witam, czy znacie jakieś dobre tutoriale do obsługi TCPDF, ich dokumentacja do mnie nie przemawia. Największym moim problemem jest przekazania zmiennych do generowanego pdf-a. interesuje mnie tylko TCPDF ze względu na możliwość skorzystania z 2D Barcode.
Bardzo proszę o pomoc.
A przypadkiem zamiast tekstu, który wyrzucasz w pdfie dajesz nazwę zmiennej?
typu wynik['cos'] lub $cos to nie wyświetli mi się zmienna. Pewnie muszę coś tutaj odpowiednio przypisać $pdf->
$html = <<<EOF EOF;
Mam następujący problem:
$pdf->Image('img.php?p=plakat.jpg',10,8,33);
$pdf->Image('http://192.168.0.13/htdocs/test-fpdf/img.php?p=plakat.jpg',10,8,33);
Proszę pomóżcie chciałbym w najnowszym TCPDF użyć czcionki otagowanej jako 'times', robie tak:
$pdf->SetFont('times', '', 14, '', true);
$html = "ąęłżćąąąąążżżżżńńńóóó";
$pdf->writeHTMLCell($w=0, $h=0, $x='', $y='', $html, $border=0, $ln=1, $fill=0, $reseth=true, $align='', $autopadding=true);
Lecz nie działa. Czy mógłby któs opisać krok po kroku instalcję p[olskich czcionek dla timesa?
Witam szanowne grono.
Mam problem jak w temacie.
W jaki sposob i przy użyciu czego najlatwiej stworzyc plik pdf z polskimi znakami oraz polem umozliwiajacym podpisanie go cyfrowo?
Za wszelkie wskazowki bede bardzo wdzieczny.
Sprawa jest dla mnie mega PILNA wiec jeszcze raz goraco prosze o podpowiedzi.
Z gory wielkie dzieki.
Witam serdecznie, chciałbym prosić szanownych kolegów i koleżanki o pomoc... bowiem mam problem z polskimi znakami w FPDF... Korzystam z kodowania UTF8 na stronie html... w bazie SQL mam latin2 jak się nie mylę... i korzystałem już podawanych tutaj rozwiązań czcionki arialpl, ale niestety nie udaje mi się uzyskać efektu w postaci polskich znaków w PDF...
Bardzo proszę o pomoc i podpowiedź a może nawet przesłanie gotowej czcionki np. arial na emaila ?
pozdrawiam
Witam korzystam z TCPDF w systemie Linux i mam dwa problemy z tym generatorem, próbuje wygenerować dane z formularza do PDF i napotkałem następujące problemy:
1. po wywołaniu algorytmy wyświetla się następujący błąd TCPDF ERROR: Some data has already been output, can't send PDF file plik generujący PDFa jest dołączony do pliku głównego na po dodaniu danych do bazy.
2. Podczas generowania zostaje przerwany tekst dokładnie w miejscu gdzie widnieje napis Zajecia
<?php require_once('tcpdf/config/lang/pol.php'); require_once('tcpdf/tcpdf.php'); // create new PDF document $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); // set document information $pdf->SetCreator(PDF_CREATOR); $pdf->SetAuthor('Marek Drzycimski'); $pdf->SetTitle('System bazodanowy dla przedszkola'); $pdf->SetSubject('Umowa'); $pdf->SetKeywords('TCPDF, PDF, example, test, guide'); // set default header data $pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 006', PDF_HEADER_STRING); // set header and footer fonts $pdf->setHeaderFont(http://www.php.net/array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); $pdf->setFooterFont(http://www.php.net/array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); // set default monospaced font $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); //set margins $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); $pdf->SetHeaderMargin(PDF_MARGIN_HEADER); $pdf->SetFooterMargin(PDF_MARGIN_FOOTER); //set auto page breaks $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); //set image scale factor $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); //set some language-dependent strings $pdf->setLanguageArray($l); // --------------------------------------------------------- // set font $pdf->SetFont('dejavusans', '', 10); // add a page $pdf->AddPage(); // writeHTML($html, $ln=true, $fill=false, $reseth=false, $cell=false, $align='') // writeHTMLCell($w, $h, $x, $y, $html='', $border=0, $ln=0, $fill=0, $reseth=true, $align='', $autopadding=true) // create some HTML content $html = " <b>Dane dziecka<br></b> <table border='100'> <tr> <td>Imię</td> <td>$imie_d</td> </tr> <tr> <td>Nazwisko</td><td>$nazwisko_d</td> </tr> <tr> <td>Pesel</td> <td>$pesel_d</td> </tr> <tr> <td>Data urodzenia</td> <td>$data_ur</td> </tr> <tr> <td>Zajęcia</td> <td></td> </tr> <tr> <td></td> <td><Tanice</td> </tr> <tr> <td></td> <td>Angielski</td> </tr> <tr> <td>Uwagi</td> <td>$uwagi</td> </tr> </table> <b>Dane Rodziców</b> <table> <tr> <td>Dane Ojca</td> <td></td> </tr> <tr> <td>Imię</td> <td>$imie_o</td> </tr> <tr> <td>Nazwisko</td> <td>$nazwisko_o</td> </tr> <tr> <td>Numer Dowodu</td> <td>$nrdowodu_o</td> </tr> <tr> <td>Telefon Kontakotwy</td> <td>$tel_kon_o</td> </tr> <tr> <td>Dane Matki</td> <td></td> </tr> <tr> <td>Imię</td> <td>$imie_m</td> </tr> <tr> <td>Nazwisko</td> <td>$nazwisko_m</td> </tr> <tr> <td>Numer Dowodu</td> <td>$nrdowodu_m</td> </tr> <tr> <td>Telefon Kontakotwy</td> <td>$tel_kon_o</td> </tr> <tr> <td>Email</td> <td>$email</td> </tr> </table> <b>Adres Zamieszkania</b> <table> <tr> <td>Ulica</td><td>$ulica_az</td> </tr> <tr> <td>Numer domu</td>$nr_d_az</td> </tr> <tr> <td>Numer mieszkania</td>$nr_m_az</td> </tr> <tr> <td>Kod pocztowy</td>$kod_pocztowy_az</td> </tr> <tr> <td>Miasto</td><td>$miasto_az</td> </tr> </table> <b>Adres do korespondecji</b> <table> <tr> <td>Ulica</td><td>$ulica_ak</td> </tr> <tr> <td>Numer domu</td><td>$nr_d_ak</td> </tr> <tr> <td>Numer mieszkania</td>$nr_m_ak</td> </tr> <tr> <td>Kod pocztowy</td><td>$kod_pocztowy_ak</td> </tr> <tr> <td>Miasto</td><td>$miasto_ak</td> </tr> </table> <b>Osoby upoważnione do odbierania dziecka:</b> <table> <tr> <td>Dane pierwszej osoby</td> </tr> <tr> <td>Nazwisko</td><td>$nazwisko_ko1</td> </tr> <tr> <td>Imię</td><td>$imie_ko1</td> </tr> <tr> <td>Nr dowodu</td><td>$nrdowodu_ko1</td> </tr> </table>"; // output the HTML content $pdf->writeHTML($html, true, false, true, false, ''); // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // reset pointer to the last page $pdf->lastPage(); // --------------------------------------------------------- //Close and output PDF document $pdf->Output('example_006.pdf', 'I'); //============================================================+ // END OF FILE //============================================================+ ?>
Witajcie.
Potrzebuje napisać skrypt, który będzie generował fakturę VAT i zapisywał ją do pliku PDF.
Zamierzam skorzystać z biblioteki fpdf.
Mam jednak następujący dylemat:
Lepiej stworzyć w pliku graficznym fakturę, wczytać ją i naprowadzić na nią tekst?
// W tym przypadku niektóre pola również musiałyby być "rysowane".
Czy może lepiej aby biblioteka "rysowała" wszystkie pola.
A FPDI?
Nie znałem tej biblioteki.
Dziękuje za podpowiedź. Na pewno skorzystam.
Nie czytałem całego wątku, ale chciałem się z Wami podzielić pewną "zdobyczą".
Znalazłem świetną stronkę do generowania fontów dla fpdf.
http://fpdf.fruit-lab.de/index.php?id=3
Dla potomnych
Pozdawiam
Witam!
Próbowałem generować pdf-y z polskimi znakami za pomocą html2pdf jednak po wielu negatywnych opiniach i nie udanych próbach zrezygnowałem z tej biblioteki i przerzuciłem się na polecaną mPDF (http://www.mpdf1.com/mpdf/index.php). Jednak tutaj też mam spore problemu z polskimi znakami. Czy ktoś mógłby powiedzieć jak trzeba skonfigurować lub co trzeba zrobić w mPDF-ie by pdf-y miały polskie znaki. Czas mnie nagli z ukończeniem projektu.
Z góry dziękuje za pomoc.
Pewnie musisz użyć czcionki, która obsługuje polskie znaki. Tutaj są jakieś czcionki obsługujące utf-8: http://www.mpdf1.com/mpdf/fonts-for-sfpdf. Z tego co pamiętam to DejaVuSans obsługuje znaki z naszego zakresu i jest dosyć ładna.
$pdf = new mPDF('UTF-8','A4',14,'DejaVuSans');
@kazdnodzieja:
Musiałeś namieszać, ja dzisiaj instalowałem najnowszą wersję mpdf i polskie czcionki były "w standardzie". mpdf inkludowany bez żadnych parametrów.
A ja do jednego z przykładów dodałem tekst z polskimi czcionkami i zamiast
ąśżźćółńÓŁĘĄŚŻĆŃ
mam
[[#185]][[#156]][[#191]][[#159]][[#230]][[#243]][[#179]][[#241]][[#211]][[#163]]
[[#202]][[#165]][[#140]][[#175]][[#198]][[#209]]
takie pytanie trochę retoryczne, ale jednak. bo widzę, że ustawiłeś argument mpdf aby kodował w utf8. a kodowanie pliku masz poprawne?
Otworzyłem pierwszy plik z przykładów, example01_basic.php i wstawiłem ciąg ąśżźćółńÓŁĘĄŚŻĆŃ i stąd te błędy
Już działą, cache przeglądarki trzymał jakaś starą wersje strony
to ja trochę z innej beczki.
mam pdftk i mam szablon pdf w którym mam pola formularza, i teraz po wypełnieniu tych pół (z poziomu php) nie mam polskich znaków, czcionka w dokumencie to myriadpro i courier, czy ktoś się spotkał z podobnym problemem? albo wie jak mniej więcej rozwiązać ten problem?
internet mówi, że jest to raczej nie do zrobienia, ale mu trochę nie wierze
myślę, że musisz pokombinować albo z kodowaniem znaków, albo z formatem fontów . Do tej pory żadnych problemów nie sprawiał mi TrueType, więc spróbuj przy generowaniu pdf'a użyć właśnie tego formatu
Mam pytanie dotyczące biblioteki: mPDF
<? $html = 'test'; include("../mpdf.php"); $mpdf=new mPDF(); $mpdf->WriteHTML($html); $mpdf->Output('name.pdf', 'I'); ?>
A jak zmienisz drugi parametr w metodzie Output na F oraz podasz ścieżkę w pierwszym parametrze to zadziała?
dziękuję
cześć,
trochę się podepnę pod temat.
obecnie bawię się generowaniem plików pdf.
niby nic, ale czy ktoś próbował przekonwertować pdf'a do cmyk'a
obecnie rozkminiam gs'a ale nie udaje mi sie wygenerować w cmyku, identify wskazuje go jako sRGB
obecnie już coś takiego wyklepałem ale nadal ..:/
Ja tam używam newpdf.php do tworzenia pdf. Plik napisałem 2 lata temu w webinariumDot i dotychczas wywalił około macierzy pdf (jakieś 900 - 1k TB).
Musi być aktywny slot HT4 na hoście serwera bo skrypt używa sensora HARM.
Wlisik, daruj sobie. Archeologia + pisanie pierdół.
Jak można poprzez bibliotekę fpdf wkleić statystyki np. z google charts lub inne do wygenerowania raportu w .pdf?
Czy ktoś odkrył jak w mPDF uzyskać polskie czcionki - ale w stopce / nagłówku ? gdyż mam z tym problem - czcionki PL mam w treści dokumentu, ale nie w stopce i nagłówku
Witam korzystam z fpdf klient zażyczył sobie wklejanie generowanego w locie pliku png bo już taki owy posiada
dostaje taki error FPDF error: Image file has no extension and no type was specified: Resource id #4
wiem ze mogę zapisać generowany plik tymczasowo na dysku ale to się mija z celem czy można to jakoś ominąć bez grzebania w classie bo inne skrypty też jej używają
Witam, generalnie z polskimi znakami w PDF nie mam problemów, ale mam inny:
chodzi mi o to że mam zbudowaną stronę z HTML+css3 - zaokrąglone rogi i tło naprzemiannie
table tbody tr:nth-child(even) { background: #FFFFFF; } table tbody tr:nth-child(odd) { background: #f9f9f9; }
Z dokumentacji wynika, że mPDF wspomaga border-radius: http://mpdf1.com/manual/index.php?tid=384
To nie wiem dlaczego u mnie nie zadziałało :/
może dlatego że mam border-radius: 20px 20px 0 0;
sprawdzę.
--
border-top-left-radius: 10px; border-top-right-radius: 10px
border-top-left-radius: 10px 10px; border-top-right-radius: 10px 10px
Proponuję korzystanie z usług umożliwiających generowanie plików PDF, jest to szybsze i prostsze w wdrożeniu. Używanie HTML i CSS jest dużo prostsze niż projektowanie PDF-a.
Np. https://gemdocs.pl
Przepraszam ale mam problem. Działam według turtoialu KaMeLeOna (4 past w tym dziale). Proszę powiedzcie mi w jakim miejscu mam wpisać komendę na wygenerowanie plików z czcionkami... Myślałem, że chodzi o pole komend windowsa, które się pobiera ale zaraz po otwarciu pliku ten się zamyka. Próbowałem na różnych komputerach by nie wiedziałem co jest przyczyną problemu. Czy mógłby mi ktoś pomóc? Pobrałem wszystko tak jak w turtoilau ale nie wiem gdzie wpisać komendę...
http://www.fpdf.org/makefont
Użyj biblioteki mPDF.
Czas odkurzyć temat po wielu latach ciszy
Od wczoraj męczę się z FPDF i FPDI. Najpierw z polskimi znakami (już sobie poradziłem), a teraz z linkiem w źródłowym pliku PDF.
Ogólnie rzecz polega na tym, mam plik źródłowy, który muszę wczytać, nanieść na niego info kto go pobiera i kiedy a następnie "wypluć" użytkownikowi do pobrania. Problem w tym, że w źródłowym PDFie jest kilka graficznych odnośników do zewnętrznych stron www. Niestety w dokumencie wynikowym linki te są pousuwane.
do importu używam $pageCount = $pdf->setSourceFile( $attachment ); a następnie w pętli tworzę kolejne strony przez addPage() i dodaję stronę ze źródła useImportPage().
To tak w dużym skrócie. Ktoś ma pomysł jak przenieść również te linki graficzne??
A miałeś styczność z mPDF? Tam w ogóle nie trzeba generować plików dla czcionek tylko podstawić .ttf lub .otf. No i obsługuje też szablony: https://mpdf.github.io/what-else-can-i-do/importing-files-templates.html
Myślę, że sprawdzenie tego zajmie Ci mniej czasu niż dyskusja na forum:)
Composer to jedno polecenie odpalane z konsoli żeby dodać nową paczkę. Czytałeś poradniki? Na pewno jest mnóstwo.
Starsza wersja bez potrzeby instalowania z composerem: https://github.com/lynxbee/mpdf
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)