Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP] generowanie PDF za pomocą FPDF, Problem z Output(); przy requred z innego katalogu
shpaque
post
Post #1





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


mam problem - witajcie - jak robilem plik w katalogu fpdf bylo ok, teraz nie. A nie chce walic tab moich oplikow wole to robic w innym folderze

  1. require('../fpdf/fpdf.php');
  2. class PDF extends FPDF
  3. {
  4. // Page header
  5. function Header()
  6. {
  7. // Logo
  8. $this -> Image('./../img/no-grey.svg', 10, 6, 30);
  9. // Arial bold 15
  10. $this -> SetFont('Arial', 'B', 15);
  11. // Move to the right
  12. $this -> Cell(80);
  13. // Title
  14. $this -> Cell(30, 10, 'Title', 1, 0, 'C');
  15. // Line break
  16. $this -> Ln(20);
  17. }
  18.  
  19. // Page footer
  20. function Footer()
  21. {
  22. // Position at 1.5 cm from bottom
  23. $this -> SetY(-15);
  24. // Arial italic 8
  25. $this -> SetFont('Arial', 'I', 8);
  26. // Page number
  27. $this -> Cell(0, 10, 'Page '.$this->PageNo().' / {nb}', 0, 0, 'C');
  28. }
  29. }
  30. $pdf = new FPDF('P', 'mm', 'A4');
  31. $pdf -> AddPage('P');
  32. $pdf -> SetFont('Arial', 'B', 14);
  33. $pdf -> SetMargins(20, 20, 20);
  34.  
  35. $pdf -> SetTitle($abstract['abstractTitle']);
  36. $pdf -> SetSubject($abstract['abstractTitle']);
  37. $pdf -> SetAuthor('X Konferencja Adeptów Fizjologii');
  38. $pdf -> SetCreator('Skrypt FPDF wykonany dla X Konferencji Adeptów Fizjologii');
  39.  
  40. $pdf -> Header();
  41. $pdf -> MultiCell(0, 5, 'Tekst, który zostanie wygenerowany za pomocą Biblioteki FPDF.', 0, 'J', 0);
  42.  
  43. $x = $pdf -> GetX();
  44. $y = $pdf -> GetY();
  45. $pdf -> SetXY($x, $y + 10);
  46.  
  47. $pdf -> MultiCell(0, 5, 'To już drugi text, który zostanie wygenerowany.', 0, 'J', 0);
  48. $pdf -> Footer();
  49.  
  50. $file = htmlspecialchars($abstract['abstractAuthor'])." - ".htmlspecialchars($abstract['abstractTitle']).".pdf";
  51. $pdf -> Output('I', $file)


wywala

  1. Fatal error: Uncaught exception 'Exception' with message 'FPDF error: Some data has already been output, can't send PDF file (output started at /home/smusic/ftp/_x-kaf/admin/abstracts.php:35)' in /home/smusic/ftp/_x-kaf/fpdf/fpdf.php:271 Stack trace: #0 /home/smusic/ftp/_x-kaf/fpdf/fpdf.php(1052): FPDF->Error('Some data has a...') #1 /home/smusic/ftp/_x-kaf/fpdf/fpdf.php(999): FPDF->_checkoutput() #2 /home/smusic/ftp/_x-kaf/php/abstracts.php(106): FPDF->Output('I', 'Hainz von Klops...') #3 /home/smusic/ftp/_x-kaf/admin/abstracts.php(103): include('/home/smusic/ft...') #4 {main} thrown in /home/smusic/ftp/_x-kaf/fpdf/fpdf.php on line 271
Go to the top of the page
+Quote Post
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Przetłumacz sobie błąd bo masz jasno powiedziane co jest nie tak.
Go to the top of the page
+Quote Post
shpaque
post
Post #3





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


przetlumaczylem - "niektore...zostaly juz wyprowadzone" ale tego zupelnie nie rozumiem. Dlaczego jak wezme parametr F wszystko dziala jak nalezy?
Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Przecież masz napisane że w pliku /home/smusic/ftp/_x-kaf/admin/abstracts.php:35 masz już robiony jakiś output ergo nie możesz wyświetlić PDF Inline
Go to the top of the page
+Quote Post
shpaque
post
Post #5





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


no ale jak, gdzie mam robiuony? przeciez output robie dopiero tam
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




moze zajrzyj wpierw do tego pliku abstracts.php linia 35 i sprawdz co tam jest? Potem sie wyklocaj ze php zle dziala
Go to the top of the page
+Quote Post
shpaque
post
Post #7





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


ciekawe, linia 35 wyglada tak:

  1. <?php
  2. ini_set('display_errors', 1);
  3.  
  4. if (!isset($_SESSION['email']))
  5. {
  6. echo "<script>alert('Strona widoczna tylko dla zalogowanych Administratorów!');</script>";
  7. echo "<script>document.location.href = \"./../index.php\";</script>";
  8. }
  9.  
  10. if (isset($_GET['section']))
  11. {
  12. $section = $_GET['section'];
  13. $abstractDataBase = './../db/abstracts.csv';
  14. $abstractColumns = ['abstractEmail', 'abstractTitle', 'abstractAuthors', 'abstractAuthor', 'authorEmail', 'abstractAfiliation', 'abstractSection', 'presentForm', 'abstractText'];
  15. $abstracts = array_map(function ($record) use ($abstractColumns) {return array_combine($abstractColumns, str_getcsv($record, '|'));}, file($abstractDataBase));
  16. array_multisort(array_column($abstracts, 'abstractEmail'), SORT_FLAG_CASE | SORT_STRING, $abstracts);
  17. $currentSection = array_filter($abstracts, function ($abstract) use ($section) {return $abstract['abstractSection'] === $section;});
  18. $count = count($currentSection);
  19.  
  20. if ($section === 's1') {$title = '<b>Sesja I</b>: Pre i postnatalne procesy rozwojowe i adaptacyjne w ustroju';}
  21. if ($section === 's2') {$title = '<b>Sesja II</b>: Komórkowe i sygnalizacyjne transformacje w fizjopatologii nowotworów';}
  22. if ($section === 's3') {$title = '<b>Sesja III</b>: Diagnostyka i terapia w gastroenterologii';}
  23. if ($section === 's4') {$title = '<b>Sesja IV</b>: Genetyczne i epigenetyczne czynniki kształtujące układowe funkcjonowanie ustroju';}
  24. if ($section === 's5') {$title = '<b>Sesja V</b>: Stan odżywienia jako wykładnik zdrowia i podatności na choroby';}
  25. if ($section === 's6') {$title = '<b>Sesja VI</b>: Fizjologia i patofizjologia centralnego układu nerwowego';}
  26. if ($section === 's7') {$title = '<b>Sesja VII</b>: Substancje pochodzenia naturalnego jako czynniki prawidłowego funkcjonowania organizmu';}
  27. if ($section === 's8') {$title = '<b>Sesja VIII</b>: Badania funkcjonalne komórek – metody i techniki';}
  28. if ($section === 's9') {$title = '<b>Sesja IX</b>: Fizjologia zwierząt bezkręgowych lub Fizjologia bezkręgowców';}
  29. if ($section === 's10') {$title = '<b>Sesja X</b>: Fizjologia bakterii';}
  30. }
  31. else
  32. {
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




czy mozesz pokazac caly ten plik
/home/smusic/ftp/_x-kaf/admin/abstracts.php:35
?
Go to the top of the page
+Quote Post
shpaque
post
Post #9





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


nospor, czyli jak ddaje Output('F', $file); to nie ma bledu w lini 35 gdzie zamykany jest nawias (IMG:style_emoticons/default/smile.gif) ale jak dam Output('I', $file) - nagle sie pojawia?

  1. <?php
  2. ini_set('display_errors', 1);
  3.  
  4. if (!isset($_SESSION['email']))
  5. {
  6. echo "<script>alert('Strona widoczna tylko dla zalogowanych Administratorów!');</script>";
  7. echo "<script>document.location.href = \"./../index.php\";</script>";
  8. }
  9.  
  10. if (isset($_GET['section']))
  11. {
  12. $section = $_GET['section'];
  13. $abstractDataBase = './../db/abstracts.csv';
  14. $abstractColumns = ['abstractEmail', 'abstractTitle', 'abstractAuthors', 'abstractAuthor', 'authorEmail', 'abstractAfiliation', 'abstractSection', 'presentForm', 'abstractText'];
  15. $abstracts = array_map(function ($record) use ($abstractColumns) {return array_combine($abstractColumns, str_getcsv($record, '|'));}, file($abstractDataBase));
  16. array_multisort(array_column($abstracts, 'abstractEmail'), SORT_FLAG_CASE | SORT_STRING, $abstracts);
  17. $currentSection = array_filter($abstracts, function ($abstract) use ($section) {return $abstract['abstractSection'] === $section;});
  18. $count = count($currentSection);
  19.  
  20. if ($section === 's1') {$title = '<b>Sesja I</b>: Pre i postnatalne procesy rozwojowe i adaptacyjne w ustroju';}
  21. if ($section === 's2') {$title = '<b>Sesja II</b>: Komórkowe i sygnalizacyjne transformacje w fizjopatologii nowotworów';}
  22. if ($section === 's3') {$title = '<b>Sesja III</b>: Diagnostyka i terapia w gastroenterologii';}
  23. if ($section === 's4') {$title = '<b>Sesja IV</b>: Genetyczne i epigenetyczne czynniki kształtujące układowe funkcjonowanie ustroju';}
  24. if ($section === 's5') {$title = '<b>Sesja V</b>: Stan odżywienia jako wykładnik zdrowia i podatności na choroby';}
  25. if ($section === 's6') {$title = '<b>Sesja VI</b>: Fizjologia i patofizjologia centralnego układu nerwowego';}
  26. if ($section === 's7') {$title = '<b>Sesja VII</b>: Substancje pochodzenia naturalnego jako czynniki prawidłowego funkcjonowania organizmu';}
  27. if ($section === 's8') {$title = '<b>Sesja VIII</b>: Badania funkcjonalne komórek – metody i techniki';}
  28. if ($section === 's9') {$title = '<b>Sesja IX</b>: Fizjologia zwierząt bezkręgowych lub Fizjologia bezkręgowców';}
  29. if ($section === 's10') {$title = '<b>Sesja X</b>: Fizjologia bakterii';}
  30. }
  31. else
  32. {
  33. echo "<script>alert('Nie wybrano sesji!');</script>";
  34. echo "<script>document.location.href = \"./../admin/admin.php\";</script>";
  35. }
  36.  
  37. if ((isset($_GET['author'])) && (isset($_GET['email'])) && (isset($_GET['title'])))
  38. {
  39. $abstractAuthor = $_GET['author'];
  40. $authorEmail = $_GET['email'];
  41. $abstractTitle = $_GET['title'];
  42.  
  43. if (($abstractAuthor === 'all') && ($authorEmail === 'all') && ($abstractTitle === 'all'))
  44. {
  45.  
  46. }
  47. else
  48. {
  49. $currentAbstract = array_filter($currentSection, function ($abstract) use ($authorEmail, $abstractAuthor, $abstractTitle) {return (($abstract['authorEmail'] === $authorEmail) && ($abstract['abstractAuthor'] === $abstractAuthor) && ($abstract['abstractTitle'] === $abstractTitle));});
  50. $abstract = reset($currentAbstract);
  51.  
  52. require('./../fpdf/fpdf.php');
  53. require('./../fpdf/makefont/makefont.php');
  54. MakeFont('./../fonts/Cairo-Regular.ttf', 'cp1252');
  55. MakeFont('./../fonts/Cairo-Bold.ttf', 'cp1252');
  56.  
  57. class PDF extends FPDF
  58. {
  59. // Page header
  60. function Header()
  61. {
  62. // Logo
  63. $this -> Image('./../img/no-grey.svg', 10, 6, 30);
  64. // Arial bold 15
  65. $this -> SetFont('Arial', 'B', 15);
  66. // Move to the right
  67. $this -> Cell(80);
  68. // Title
  69. $this -> Cell(30, 10, $abstract['abstractTitle'], 1, 0, 'C');
  70. // Line break
  71. $this -> Ln(20);
  72. }
  73.  
  74. // Page footer
  75. function Footer()
  76. {
  77. // Position at 1.5 cm from bottom
  78. $this -> SetY(-15);
  79. // Arial italic 8
  80. $this -> SetFont('Arial', 'I', 8);
  81. // Page number
  82. $this -> Cell(0, 10, 'Page '.$this->PageNo().' / {nb}', 0, 0, 'C');
  83. }
  84. }
  85.  
  86. $pdf = new FPDF('P', 'mm', 'A4');
  87. $pdf -> AddPage('P');
  88. $pdf -> SetFont('Arial', 'B', 14);
  89. $pdf -> SetMargins(20, 20, 20);
  90.  
  91. $pdf -> SetTitle(htmlspecialchars($abstract['abstractTitle']));
  92. $pdf -> SetSubject(htmlspecialchars($abstract['abstractTitle']));
  93. $pdf -> SetAuthor('X Konferencja Adeptów Fizjologii');
  94. $pdf -> SetCreator('Skrypt FPDF wykonany dla X Konferencji Adeptów Fizjologii');
  95.  
  96. $pdf -> Header();
  97. $pdf -> MultiCell(0, 5, $abstract['abstractTitle'], 0, 'C', 0);
  98.  
  99. $x = $pdf -> GetX();
  100. $y = $pdf -> GetY();
  101. $pdf -> SetXY($x, $y + 10);
  102.  
  103. $pdf -> MultiCell(0, 5, $abstract['abstractText'], 0, 'J', 0);
  104. $pdf -> Footer();
  105.  
  106. $pdfOutput = htmlspecialchars($abstract['abstractAuthor'])." - ".htmlspecialchars($abstract['abstractTitle']).".pdf";
  107. $pdf -> Output('I', $pdfOutput);
  108. }
  109. }
  110. ?>
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Opcja F zapisuje pdf do pliku
Opcja I pluje plik do przegladarki z naglowkami do sciagniecia

Niewazne czy masz F czy I to masz gdzies po drodze output. Tylko ze dla zapisania do pliku, to output nie przeszkadza ale gdy juz slesz dodatkowe naglowki (w opcji I) to nie mozesz miec wczesniej zadnego output. Ot i cala filozofia.

ps: ciagle mi sie wydaje iz pokazujesz niewlasciwy plik (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
shpaque
post
Post #11





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


problem w tym ze pokazuje wlasciwy plik a skoro on widzi dodatkowo blad w linii 35 to jakim cudem??

problem lezy gdzies podejrzewam jednak w pliku fpdf.php, bo kiedy ten sam skrypt mialem w pliku wewnatrz katalogu fpdf - bylo ok, a kiedy robie to z zewnatrz - robi sie taki michalek - a nie chce jak pisalem wyzej - wrzucac pliku do katalogu z fpdf

Ten post edytował shpaque 15.01.2018, 15:01:35
Go to the top of the page
+Quote Post
nospor
post
Post #12





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




moze na serwerze masz inna wersje pliku niz pokazujesz nam tutaj.

Linia 35 to otwarcie nawiasu, tam nic nie ma.

ps: sprawdz logi bo byc moze masz blad o sciezkach
Go to the top of the page
+Quote Post
shpaque
post
Post #13





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


teraz mam tak

  1. Fatal error: Uncaught exception 'Exception' with message 'FPDF error: Some data has already been output, can't send PDF file (output started at /home/smusic/ftp/_x-kaf/admin/abstracts.php:35)' in /home/smusic/ftp/_x-kaf/fpdf/fpdf.php:271 Stack trace: #0 /home/smusic/ftp/_x-kaf/fpdf/fpdf.php(1052): FPDF->Error('Some data has a...') #1 /home/smusic/ftp/_x-kaf/fpdf/fpdf.php(999): FPDF->_checkoutput() #2 /home/smusic/ftp/_x-kaf/php/abstracts.php(111): FPDF->Output('I', 'Hainz von Klops...') #3 /home/smusic/ftp/_x-kaf/admin/abstracts.php(103): include('/home/smusic/ft...') #4 {main} thrown in /home/smusic/ftp/_x-kaf/fpdf/fpdf.php on line 271
Go to the top of the page
+Quote Post
Pyton_000
post
Post #14





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


przed

$pdf -> Output('I', $pdfOutput);

wstaw

die();

i zobacz w źródle co Ci wypluje.
Go to the top of the page
+Quote Post
trueblue
post
Post #15





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


A swoją drogą, po co Ci klasa PDF, skoro jej nie używasz?
Go to the top of the page
+Quote Post
shpaque
post
Post #16





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


jak mam die to mam pusto.

jak nie uzywam klasy?
Go to the top of the page
+Quote Post
trueblue
post
Post #17





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


A gdzie używasz?
Go to the top of the page
+Quote Post
shpaque
post
Post #18





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


jeszcze nie wiem gdzie uzywam - przeciez zdefiniowana jest a podobno idzie automatycznie po addpage
"This method is used to render the page header. It is automatically called by AddPage() and should not be called directly by the application."

a nie wiem bo ciagle siedze w bledach i nie moge sie bawic klasami dopoki nie wygeneruje w koncu tego pdfa! (IMG:style_emoticons/default/smile.gif)

cos mi sie wydaje ze jedyna opcja to plik abstracts.pdf w folderze fpdf, bo inaczej lipa
Go to the top of the page
+Quote Post
nospor
post
Post #19





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Jesli masz to gdzies na serwerze to jesli mozesz to udostepnic, chocby na PW, to chetnie spojrze.
Jesli lokalnie to mozna sie podlaczyc przez teamviewer - rowneiz chetnie spojrze.
Go to the top of the page
+Quote Post
shpaque
post
Post #20





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


problem ewidentnie jest po stronie fpdf ze sciezkami.

ten sam kod w pliku wrzuconym do folderu fpdf dziala bezblednie

wrzucilem "najnowsza" wersje bodajze 1.81 z 2015 roku (IMG:style_emoticons/default/biggrin.gif) moze sprobuje nizsza...

Ten post edytował shpaque 15.01.2018, 16:12:04
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 1.10.2025 - 05:01