Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: generowanie plików *.pdf + polskie czcionki
Forum PHP.pl > Forum > PHP
Stron: 1, 2, 3, 4, 5
gam3r
ja się męczyłem 2 dni i dałem rady, więc davaj davaj
alskar
Udało się, ale musiałem wywalić parametr -b z polecenia ttf2pt1.
Teraz gra i buucy
Diabeu
Witam.

Mam swoje czcionki Arialpl i ArialplBOLD.
Stosuje FPDF do generwoania pdfow, ale mam problem.

Wpisując
Kod
$pdf=new PDF();

$pdf->AddPage();

$pdf->AddFont('arialpl', '', 'arialpl.php');
$pdf->AddFont('arialplb', '', 'arialplBOLD.php');

$html = '';

$pdf->SetFont('arialpl','',8);
$pdf->Cell(0,5,'data '.date("m-d-Y"),0,0,'R');
$pdf->Ln(10);

$pdf->SetFont('arialplb','',10);
$pdf->Cell(0,5,$nazwa,0,0,'L');
$pdf->Ln();

$pdf->WriteHTML($html);
$pdf->Output();



czcionka jest pogrubiona i nie wyskakuja żadne błędy.
Jak zrobie to korzystajac z pogrubienia jako HTML:

Kod
$pdf=new PDF();

$pdf->AddPage();

$pdf->AddFont('arialpl', '', 'arialpl.php');
$pdf->AddFont('arialplb', '', 'arialplBOLD.php');


$html='You can now easily print text mixing different
styles : <B>bold</B>, <I>italic</I>, <U>underlined</U>, or
<B><I><U>all at once</U></I></B>!<BR>You can also insert links
on text, such as <A HREF="http://www.fpdf.org">www.fpdf.org</A>,
or on an image: click on the logo.';

$pdf->SetFont('arialpl','',10);
$pdf->SetFont('arialplb','',10);

$pdf->WriteHTML($html);
$pdf->Output();



wyskakuje mi komunikat: FPDF error: Undefined font: arialpl B

jak usune znacznik <B> to dziala prawidlowo. Nie moge po prostu stosowac pogrubienia jako <B>.
Wie ktoś czemu ?

pozdrawiam
Sedziwoj
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"...
Diabeu
Cytat(Sedziwoj @ 19.09.2007, 13:44:26 ) *
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"...


Masz racje, źle dodałem.

Teraz nie wyświetla błędu, ale również nie pogrubia jako <B></B> czcionki. Może wiesz czemu ? smile.gif korzystam z tego http://www.fpdf.org/en/script/script41.php skryptu

Skorzystalem z innego skryptu i wszystko jest OK. Dzięki za pomoc !
Piotrwusek
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
MOniToR
Witam

Może mi ktoś pomóc w tym temacie http://forum.php.pl/Wysylanie_pdfa_jako_za...ika_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.
trylik
Cytat(maston @ 17.08.2005, 21:22:33 ) *
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 dry.gif

Kod
Warning: filesize(): Stat failed for font/verdanapl.z (errno=2 - No such file or directory) in /usr/local/apache/www/htdocs/.../include/fpdf.php on line 1812
FPDF error: Font file not found


mam dokładnie taki sam błąd, ale plik .z jest tam gdzie trzeba...

co może być przyczyną?
Harmider
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.
Sedziwoj
Cytat(Harmider @ 9.04.2008, 16:43:39 ) *
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.


To zobacz chociażby notatnikiem co jest w tym "PDF'ie", bo pewnie masz komunikaty błędów znając życie.
AxZx
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
simperium
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.
przemast
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ć ?
misiek172
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
vego007
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:
  1. <?php
  2. function Text($x,$y,$txt)
  3. {
  4. //Output a string
  5. $s=sprintf('BT %.2f %.2f Td (%s) Tj ET',$x*$this->k,($this->h-$y)*$this->k,$this->_escape($txt));
  6. if($this->underline && $txt!='')
  7. $s.=' '.$this->_dounderline($x,$y,$txt);
  8. if($this->ColorFlag)
  9. $s='q '.$this->TextColor.' '.$s.' Q';
  10. $this->_out(iconv("UTF-8","ISO-8859-2",$s));
  11. }
  12. ?>


zamiast

  1. <?php
  2. function Text($x,$y,$txt)
  3. {
  4. //Output a string
  5. $s=sprintf('BT %.2f %.2f Td (%s) Tj ET',$x*$this->k,($this->h-$y)*$this->k,$this->_escape($txt));
  6. if($this->underline && $txt!='')
  7. $s.=' '.$this->_dounderline($x,$y,$txt);
  8. if($this->ColorFlag)
  9. $s='q '.$this->TextColor.' '.$s.' Q';
  10. $this->_out($s));
  11. ?>


Może komuś się to przyda
Pozdrawiam
DeyV
A ma ktoś z Was już jakieś doświadczenia z Haru PDF ?
mateuszpi
witam. drobny problemik opisałem w temacie: Temat: PHPgenerowanie pdf

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=&showt...st&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.
mysz0n
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

  1. <?php
  2. require_once('html2fpdf.php');
  3. $objPDF = new FPDF();
  4.  $objPDF->AddPage();
  5.  $objPDF->AddFont('Arial', '', 'arial.php');
  6.  $objPDF->SetFont('Arial', '', 15);
  7.  $objPDF->Cell(40, 40, 'ążźśćńłśęó  ŻĄŚŹĆĘŁÓŃa<br>');
  8.  $objPDF->Output();
  9. ?>


to widze ladne piekne poslkie znaki, ale jak juz dam


  1. <?php
  2. require_once('html2fpdf.php');
  3.  
  4. include_once('plik_do_wrzucenia.php');
  5. $htmlbuffer = ob_get_contents();
  6. $pdf = new HTML2FPDF('P','mm','A4');  
  7.  
  8. $pdf->AddPage();
  9. $pdf->UseCSS(true);
  10. //$pdf->AddFont('Arial', '', 'arial.php');    - linia jest zakomentowana bo jak ja odkomentuje dostaje info ze arial jest juz zaladowany
  11. $pdf->SetFont('Arial', '', 15);
  12. $pdf->WriteHTML($htmlbuffer);
  13. $pdf->Output("file.PDF", "D");
  14. ?>


polskie znaki magicznie znikaja.
wydaje mi sie ze skrypt olewa mojego ariala i laduje helvetice - bo jak usune wsyztskie inne fonty z folderu fonts/ to pokazuje jakies bledy i prosi o helvetike.
mial ktos kiedys cos takieko ? jak to rozwiazac ?

ogolnie teraz zobaczyłem ze mam tak - jak coś jest bez <div> <span> to jest spoko, ale jak tylko pojawia sie div na stronie - do samego konca nie mam juz polskich fontów - why ?
sparco
Panowie kochani, macie moze gotowy uklad faktury vat do zapisu w pdf?
achtung
Cytat(sparco @ 12.01.2009, 22:44:54 ) *
Panowie kochani, macie moze gotowy uklad faktury vat do zapisu w pdf?


Witam,

dołaczam się do pytania i prośby przedmówcy:)

Pzdr
pwpib
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.
dassystem
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:

Cytat
Fatal error: Call to undefined method HTML2PDF::AddPage()


Ma ktoś jakieś doświadczenie ? sciana.gif

EDIT

Po użyciu klasy TCPDF i przekonwertowaniu czcionki arial ogonki są na Foxit Readerze, natomiast na Adobe Reader 9.1 wyrzuca jednym ciągiem pionowe ślaczki po lewej stronie...

worriedsmiley.gif
Hellelujah
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...
erix
Powinieneś chyba używać czcionek Type3, a nie TrueType. Jeśli chodzi o Arial, to jest wbudowana pod nazwą Helvetica.
Hellelujah
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 smile.gif
TheaSiX
Czy wie ktoś czy na serwerach nazwa.pl jest włączony support PDF?
Ivellios
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 tongue.gif

$pdf->Output("./jakiśtam-folder/artykul.pdf", "F");
DannyM
Czy bedzie ktos tak mily i podzieli sie fontami bo mam mac'a i tam nie wygeneruje czcionek
MartinPL
witam wszytkich.

slowem wstepu chcialbym podziekowac za wyczerpujacy tutorial dotyczacy generowania pdfow. smile.gif

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.



oto roboczo-experymentalny plik konfiguracyjny mysql. uzywam WAMP server w wersji 2.0i

Kod
# Example MySQL config file for medium systems.
#
# This is for a system with little memory (32M - 64M) where MySQL plays
# an important part, or systems up to 128M where MySQL is used together with
# other programs (such as a web server)
#
# You can copy this file to
# /etc/my.cnf to set global options,
# mysql-data-dir/my.cnf to set server-specific options (in this
# installation this directory is C:\mysql\data) or
# ~/.my.cnf to set user-specific options.
#
# In this file, you can use all long options that a program supports.
# If you want to know which options a program supports, run the program
# with the "--help" option.

# The following options will be passed to all MySQL clients
[client]
#password    = your_password
port        = 3306
socket        = /tmp/mysql.sock

# Here follows entries for some specific programs

# The MySQL server
[wampmysqld]
port        = 3306
socket        = /tmp/mysql.sock
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
basedir=c:/wamp/bin/mysql/mysql5.1.36
log-error=c:/wamp/logs/mysql.log
datadir=c:/wamp/bin/mysql/mysql5.1.36/data

# Don't listen on a TCP/IP port at all. This can be a security enhancement,
# if all processes that need to connect to mysqld run on the same host.
# All interaction with mysqld must be made via Unix sockets or named pipes.
# Note that using this option without enabling named pipes on Windows
# (via the "enable-named-pipe" option) will render mysqld useless!
#
#skip-networking

# Disable Federated by default
skip-federated

# Replication Master Server (default)
# binary logging is required for replication
log-bin=mysql-bin

# binary logging format - mixed recommended
binlog_format=mixed

# required unique id between 1 and 2^32 - 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id    = 1

# Replication Slave (comment out master section to use this)
#
# To configure this host as a replication slave, you can choose between
# two methods :
#
# 1) Use the CHANGE MASTER TO command (fully described in our manual) -
#    the syntax is:
#
#    CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>,
#    MASTER_USER=<user>, MASTER_PASSWORD=<password>;
#
#    where you replace <host>, <user>, <password> by quoted strings and
#    <port> by the master's port number (3306 by default).
#
#    Example:
#
#    CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306,
#    MASTER_USER='joe', MASTER_PASSWORD='secret';
#
# OR
#
# 2) Set the variables below. However, in case you choose this method, then
#    start replication for the first time (even unsuccessfully, for example
#    if you mistyped the password in master-password and the slave fails to
#    connect), the slave will create a master.info file, and any later
#    change in this file to the variables' values below will be ignored and
#    overridden by the content of the master.info file, unless you shutdown
#    the slave server, delete master.info and restart the slaver server.
#    For that reason, you may want to leave the lines below untouched
#    (commented) and instead use CHANGE MASTER TO (see above)
#
# required unique id between 2 and 2^32 - 1
# (and different from the master)
# defaults to 2 if master-host is set
# but will not function as a slave if omitted
#server-id       = 2
#
# The replication master for this slave - required
#master-host     =   <hostname>
#
# The username the slave will use for authentication when connecting
# to the master - required
#master-user     =   <username>
#
# The password the slave will authenticate with when connecting to
# the master - required
#master-password =   <password>
#
# The port the master is listening on.
# optional - defaults to 3306
#master-port     =  <port>
#
# binary logging - not required for slaves, but recommended
#log-bin=mysql-bin

# Point the following paths to different dedicated disks
#tmpdir        = /tmp/        
#log-update     = /path-to-dedicated-directory/hostname

# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = C:\mysql\data/
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = C:\mysql\data/
#innodb_log_arch_dir = C:\mysql\data/
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
#innodb_buffer_pool_size = 16M
#innodb_additional_mem_pool_size = 2M
# Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 5M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
default-character-set=utf8

[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

[mysqld]
port=3306
default-character-set=utf8
default-collation=utf8_general_ci
skip-character-set-client-handshake



dodalem w sekcji 

[mysqld]

default-character-set=utf8
default-collation=utf8_general_ci
skip-character-set-client-handshake

oraz w [mysql]

default-character-set=utf8

i konsekwentnie kazda kolumna w kazdej tabeli ma ustawione "utf8_unicode_ci".

Na zakończenie chcialbym dodac ze dane wyswietlane na stronie ktore pochodza z bazy maja polskie znaczki
jakies wskazowki?
p.s. probowalem dodac zaraz za polaczeniem z baza w pliku ktory odpowiada za generowanie pdf-ow dodac taka linijke

mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER_SET 'utf8_unicode_ci'");

niestety z nieznanych mi przyczyc wtedy plik w ogole nie jest genereowany.
DannyM
Cytat(MartinPL @ 20.11.2009, 12:22:31 ) *
witam wszytkich.

slowem wstepu chcialbym podziekowac za wyczerpujacy tutorial dotyczacy generowania pdfow. smile.gif

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.



oto roboczo-experymentalny plik konfiguracyjny mysql

..
default-character-set=utf8
default-collation=utf8_general_ci
skip-character-set-client-handshake

oraz w [mysql]

default-character-set=utf8

i konsekwentnie kazda kolumna w kazdej tabeli ma ustawione "utf8_unicode_ci".

Na zakończenie chcialbym dodac ze dane wyswietlane na stronie ktore pochodza z bazy maja polskie znaczki
jakies wskazowki?


Jesli dobrze cie rozumiem uzyj
mysql_query("SET CHARACTER SET utf8")..
MartinPL
wtedy pdf w ogole mi sie nie generuje

Kod
Warning: mysql_query() [function.mysql-query]: Access denied for user 'SYSTEM'@'localhost' (using password: NO) in C:\wamp\www\GOLD_NEW\public_files\raporty\raport_miesieczny_zapis.php on line 8

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\wamp\www\GOLD_NEW\public_files\raporty\raport_miesieczny_zapis.php on line 8
FPDF error: Some data has already been output, can't send PDF file


poczatek pliku generujacego pdf-y wyglada tak

Kod
<?php
# definiowanie ustawien bazy
define("MYSQL_HOST", "localhost");
define("MYSQL_USER", "root");
define("MYSQL_PASS", "");
define("MYSQL_DB", "GOLD");

//mysql_query("SET NAMES 'utf8'"); <-- jesli to odhaszuje to pojawia sie to co pokazalem
//mysql_query("SET CHARACTER_SET 'utf8_unicode_ci'");

$polacz = mysql_connect("".MYSQL_HOST."", "".MYSQL_USER."", "".MYSQL_PASS."") or die(mysql_error());
mysql_select_db("".MYSQL_DB."",$polacz) or die(mysql_error());




tak zeby nie bylo nie domowien, te same dane zwracane do przegladarki wygladaja prawidlowo



DannyM
a co z czcionkami PL masz?
MartinPL
 ustawilem tak

Kod
$pdf->AddFont('arial_ce','','arial_ce.php');
$pdf->AddPage();
$pdf->AddFont('arial_ce','B','arial_ce_b.php');
$pdf->Cell(0,5,'Raport prowizyjny dla Agenta '.$dane.' '.$imie.'',0,1,'C');
$pdf->Cell(0,5,'za okres '.$miesiac.'.'.$rok.' r.',0,1,'C');
 

i wlasnie rzecz w tym ze stringi znajdujace sie pod zmienna $dane oraz $imie itp itd sa bez polskich znakow.
Agape
nie ten post sory - do usuniecia
DannyM
Niestety nie pomoge bo nie mam czcionek winksmiley.jpg
Brick
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
Strona projektu 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
Strona projektu 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 strona projektu, 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
Oto przykład
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 polecam pobierać MPDF

Poniżej kilka porad i uwag (dotyczy wersji aktualnej w chwili pisania posta czyli 4.1.1):
  • Biblioteka zawiera gotowe czcionki ale są to darmowe odpowiedniki popularnych czcionek. Autor pisze że to ze względu na prawa autorskie. Niczemu to nie przeszkadza, wszystko wygląda przyzwoicie. Jest możliwość zastosowania własnych czcionek ale tematu nie zgłębiałem
  • Skrypt poprawnie interpretuje większość tagów HTML i CSS ale nie wszystko. Główny problem jest z elementami DIV, dlatego w przykładowym dokumencie musiałem je zamienić na tabelki.
  • Szerokość komórek czy tabeli wyrażona w procentach nie jest poprawnie interpretowana gdy tabela jest osadzona w innej. Przykładowo WIDTH=100% jest pomijany.
  • Jest możliwość załadowania zewnętrznego pliku CSS podczas generowania PDF'a
  • Domyślne kodowanie wsadowego HTML'a to UTF-8 ale jest funkcja do konwertowania innych kodowań na UTF
  • Domyślne kodowanie PDF'a czyli wyjściowe to WINDOWS-1252. Trzeba ustawić wyjściowe kodowanie na ISO lub UTF. Uwaga! PDF'a z kodowaniem UTF waży kilka razy więcej niż z ISO

Kilka przykładów zastosowania (biblioteka znajduje się w katalogu "mpdf"):

1. Hello World, bez polskich fontów, PDF wysyłany do przeglądarki
  1. include('mpdf/mpdf.php');
  2. $mpdf=new mPDF();
  3. $html = "<p>Hello World!</p>";
  4. $mpdf->WriteHTML($html);
  5. $mpdf->Output();


2. HTML z polskimi znakami (ISO-8859-2) czytany z pliku, PDF zapisywany na dysku
  1. include('mpdf/mpdf.php');
  2. $html = file_get_contents("moj_plik.html");
  3. $mpdf=new mPDF('iso-8859-2');
  4. $mpdf->allow_charset_conversion=true;
  5. $mpdf->charset_in='ISO-8859-2';
  6. $mpdf->WriteHTML($html);
  7. $mpdf->Output("moj_plik.pdf","F");


3. HTML z polskimi znakami (ISO-8859-2) czytany z pliku, CSS z pliku, PDF zapisywany na dysku, ustawiamy marginesy dokumentu na 10mm
  1. include('mpdf/mpdf.php');
  2. $mpdf=new mPDF('iso-8859-2','', 0, '', 10, 10, 10, 10, 0, 0, 'P');
  3. $mpdf->allow_charset_conversion=true;
  4. $mpdf->charset_in='ISO-8859-2'; //wejściowe kodowanie to ISO
  5. $stylesheet = file_get_contents('style.css');
  6. $mpdf->WriteHTML($stylesheet,1);
  7. $mpdf->WriteHTML($html);
  8. $mpdf->Output("moj_plik.pdf","F");


To by było na tyle. Wszelkie uwagi mile widziane.
Mam nadzieję że ktoś skorzysta.
polishmilk
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.
Brick
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.
mariosoft
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?
Brick
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.
Niconn
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.
slummer
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.
dziamdziak
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.
chipoldo
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ć ?
erix
Wniosek: używaj takiego samego kodowania przy wpisywaniu, co pobierane z bazy. A jak nie możesz - iconv.
chipoldo
Cytat(erix @ 5.08.2010, 13:19:03 ) *
Wniosek: używaj takiego samego kodowania przy wpisywaniu, co pobierane z bazy. A jak nie możesz - iconv.

Ale problem nie pojawia przy wyświetlaniu danych z bazy. W pobieraniu danych jest wszystko ok - wykorzystuje iconv. Problem tkwi przy generowaniu napisu, który jest na sztwyno wrzucony w generator FPDF. $PDF->Cell(1,1,"Śążźęł"..). ś i ą wyświetla jako kratki w PDF, reszta polskich znaków jest ok.

Poradziłem sobie po prostu na sztywno wpisując | zamist Ś i ? zamiast ą, ale być może jest bardziej ładne rozwiązanie ?smile.gif
dziamdziak
A nie latwiej skompilowac sobie czcionki zeby chodzily z polskimi znaczkami?
DannyM
Moze ktorys z kolegow podzieli sie czcionkami bo nie mam wingrowsa i nie mam jak skompilowac czcionek
dziamdziak
Jakich potrzebujesz? Mam tylko jakiegoś times'a na stanie
DannyM
Przyjme kazde byle sprawdzone i dzialajace w PL bo nie mam na czym testowac smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.