Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] łączenie pdf'ów - PDFMerger
hettmix
post
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 10.03.2012

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


Witam.

Mam następujący problem - w polu blob bazy program zapisuję pliki pdf generowane przez użytkowników. Zapis tych plików oraz ich późniejszy odczyt/wyświetlenie działa bez żadnych problemów. To z czym nie mogę się aktualnie uporać, to pobranie wszystkich plików pdf z bazy i wygenerowanie jednego zbiorczego pdf'a.
Jako że program działa na serwerku Synology nie mogę doinstalować np. PDFTK, w związku z czym skorzystałem z klasy PDFMerger.
  1. $strSQL = "SELECT pdf_plik FROM tbl_zwykle_2str_pdf";
  2. $objQuery = mysql_query($strSQL);
  3. $resultData = array();
  4. for ($i=0;$i<mysql_num_rows($objQuery);$i++) {
  5. $result = mysql_fetch_array($objQuery);
  6. array_push($resultData,$result);
  7. }
  8.  
  9. $pdf = new PDFMerger;
  10.  
  11. $pdf->addPDF($resultData, 'all')
  12. ->merge('file', '/modules/mod_zbiorczy_pdf/tmp/zbiorczy_test.pdf');
  13.  
  14. echo "PDF Created Click <a href=\"/modules/mod_zbiorczy_pdf/tmp/zbiorczy_test.pdf\">here</a> to Download";

Powyższy kod zwraca jednak błędy:
- file_exists() expects parameter 1 to be string PDFMerger.php on line 47
- uncaught exception 'Exception' with message 'Could not locate PDF on 'Array' PDFMerger.php on line 58

Będę wdzięczny za pomoc w rozwiązaniu tego problemu, bądź naprowadzenie na właściwe tory. Pewnie można ten temat ugryźć z innej strony.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





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




Czy Ty wogóle czytasz dokumentacje? Czytasz co ci ludzie piszą? Bo widzę, że nie. Ciągle wychodzisz z założenia "Bo ja wolę" i się go konsekwentnie trzymasz....

Powiedz mi proszę, czego nie zrozumiałeś w tym co ci napisałem
Cytat
Pamiętaj tylko o tym, że addPDF przyjmuje tylko jedną ścieżkę a nie tablicę ścieżek. Musisz wywołać addPDF tyle razy, ile będziesz miał ścieżek

?

A najlepsze to juz w ogóle jest to:
readfile($result['pdf_nazwa_pliku'])
Po grzyba ty tam readfile dałes?
Go to the top of the page
+Quote Post
hettmix
post
Post #3





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 10.03.2012

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


Cytat(nospor @ 22.11.2012, 09:32:34 ) *
Czy Ty wogóle czytasz dokumentacje? Czytasz co ci ludzie piszą? Bo widzę, że nie. Ciągle wychodzisz z założenia "Bo ja wolę" i się go konsekwentnie trzymasz....

Powiedz mi proszę, czego nie zrozumiałeś w tym co ci napisałem

?

A najlepsze to juz w ogóle jest to:
readfile($result['pdf_nazwa_pliku'])
Po grzyba ty tam readfile dałes?


Nie ma się co tak gorączkować, w końcu człowiek uczy się na błędach. Zwłaszcza początkujący w dane dziedzinie.
Kod wygląda więc tak:
  1. define( '_JEXEC', 1 ) or die('Direct Access to this location is not allowed.');
  2.  
  3. header('Content-type: application/pdf');
  4. header("Pragma: no-cache");
  5. header("Expires: 0");
  6. header("Cache-Control: must-revalidate");
  7.  
  8. require "/volume1/web/Joomla_1.5/connection/connection.php";
  9. include "/volume1/web/Joomla_1.5/joomla-auth-porzadkowe.php";
  10. include "/volume1/web/Joomla_1.5/joomla-config-porzadkowe.php";
  11. include "/volume1/web/Joomla_1.5/modules/mod_zbiorczy_pdf/pdfmerger/PDFMerger.php";
  12.  
  13.  
  14. $strSQL = ("SELECT pdf_nazwa_pliku FROM tbl_zwykle_2str_pdf") or die('Błąd zapytania select');
  15. $objQuery = mysql_query($strSQL);
  16. $resultData = array();
  17. for ($i=0;$i<mysql_num_rows($objQuery);$i++) {
  18. $result = mysql_fetch_array($objQuery);
  19. array_push($resultData,$result['pdf_nazwa_pliku']);
  20. }
  21.  
  22. $pdf = new PDFMerger;
  23. $pdf->addPDF($resultData[0], 'all')
  24. ->merge('browser', '');

Wszystko ładnie działa, po zmianie wskaźnika tablicy generują się właściwe pliki pdf - nie wiem tylko jak przekazać do funkcji addPDF wszystkie pliki.
Go to the top of the page
+Quote Post

Posty w temacie


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: 12.10.2025 - 07:12