Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] zapis odczyt z pliku pdf
Swirek
post 14.10.2011, 16:03:35
Post #1





Grupa: Zarejestrowani
Postów: 221
Pomógł: 20
Dołączył: 4.05.2006
Skąd: Polska

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


Pobieram z zewnętrznego serwera dane w postaci binarnej jest to dokładnie plik pdf.

jak mam odczytać i wyświetlić te dane jako już działający normalny pdf?

  1. $file = "plik.pdf";
  2. $fp = fopen($file, "wb");
  3. flock($fp, 2);
  4. fwrite($fp, $wartosc2[1]);
  5. flock($fp, 3);
  6. fclose($fp);
  7.  
  8. $nazwa = $file;
  9. $otworz = fopen($nazwa, "rb");
  10. $tresc = fread($otworz, filesize($nazwa));
  11. fclose($otworz);


funkcja zapisuje mi plik pdf ale nie potrafię go otworzyć bo jest uszkodzony, bo te dane trzeba pewnie "przerobić" ale nie wiem jak.
jak mam dane z pliku pdf zapisane binarnie zapisać do pliku lub przechwycić je w locie, aby wyświetlić je w przeglądarce?

i przy okazji w php5 jest nowa funkcja zapisująca plik zamiast flock fopen ale mi uciekła. Może ktoś przypomnieć?

z góry dziękuję


--------------------
Macho odpadacie ;) .
Go to the top of the page
+Quote Post
Fifi209
post 14.10.2011, 16:16:50
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


file_put_contents
file_get_contents

Co do otwierania przez przeglądarkę - pod warunkiem, że ma wtyczkę.
Wysyłasz do przeglądarki nagłówki przez header informujące o tym że to plik pdf i go odczytujesz. To co ona zrobi, czy zapisze czy otworzy to jej sprawa.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
pifarek
post 14.10.2011, 16:17:08
Post #3





Grupa: Zarejestrowani
Postów: 91
Pomógł: 15
Dołączył: 3.03.2009
Skąd: Włocławek

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


  1. header ("Content-Type: application/pdf");
  2. $content = file_get_contents('http://www.futrega.org/wk/wk.pdf');
  3.  
  4. echo $content;

O takie coś ci chodzi?


--------------------
www.swiths.com
Go to the top of the page
+Quote Post
Swirek
post 14.10.2011, 16:28:13
Post #4





Grupa: Zarejestrowani
Postów: 221
Pomógł: 20
Dołączył: 4.05.2006
Skąd: Polska

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


zrobiłem coś takiego dodałem nagłówek

  1. $file = "plik.pdf";
  2. file_put_contents($file, $danebinarne);
  3.  
  4. echo "%PDF-".$file;


wyskoczyło mi wcześniej że na początku nie ma %PDF- i dlatego dodałem ale w takim wypadku wywala plik jest uszkodzony i nie mógł być naprawiony
co mogę jeszcze zrobić by to uruchomić?

edit:

zmieniłem na (pomojam zapis nie potrzebny)

  1. echo "%PDF-".$danebinarne;


Ten post edytował Swirek 14.10.2011, 16:31:19


--------------------
Macho odpadacie ;) .
Go to the top of the page
+Quote Post
Fifi209
post 14.10.2011, 17:06:12
Post #5





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


A możesz pokazać cały skrypt?


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
Swirek
post 14.10.2011, 17:13:30
Post #6





Grupa: Zarejestrowani
Postów: 221
Pomógł: 20
Dołączył: 4.05.2006
Skąd: Polska

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


  1. header ("Content-Type: application/pdf");
  2.  
  3. $Siodemka2 = new Siodemka();
  4. $Siodemka2->_WydrukEtykietaPdf($numery);
  5.  
  6. preg_match('#<ns0:result>(.*)</ns0:result>#', $Siodemka2->__getLastResponse(), $wartosc);
  7.  
  8. echo "%PDF-".$wartosc[1];
  9.  


wszystkie zbędne znaki spacje wywaliłem.

między znacznikami <ns0:result> jest wartość binarna pliku która zostaje pobrana od kuriera.

edit:

pobieranie danych od kuriera przebiega pomyślnie dane zapisane do parametru $wartosc są dokładnie takie jak zwraca mi api kuriera, problem jest tylko z wyrzuceniem ich na ekran w postaci pdf

Ten post edytował Swirek 14.10.2011, 17:17:18


--------------------
Macho odpadacie ;) .
Go to the top of the page
+Quote Post
mls
post 14.10.2011, 21:10:00
Post #7





Grupa: Zarejestrowani
Postów: 677
Pomógł: 89
Dołączył: 31.08.2003
Skąd: Warszawa

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


To może pokaż jeszcze fragment tego, co zawiera zmienna $wartosc - bo jest bardzo prawdopodobne, że nie ma tam wcale danych binarnych...


--------------------
Go to the top of the page
+Quote Post
Swirek
post 14.10.2011, 22:18:28
Post #8





Grupa: Zarejestrowani
Postów: 221
Pomógł: 20
Dołączył: 4.05.2006
Skąd: Polska

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


Cytat(mls @ 14.10.2011, 21:10:00 ) *
To może pokaż jeszcze fragment tego, co zawiera zmienna $wartosc - bo jest bardzo prawdopodobne, że nie ma tam wcale danych binarnych...


  1. JVBERi0xLjQKJeLjz9MKNSAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGU....
  2. Pj4+L01lZGlhQm94WzAgMCAyODAgMjgwXT4+CmVuZG9iagoxMCAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDEyNTE+PnN0cmVhbQp4nI1Xa1IbRxD+r1P0T1Epjea1szP+t3rgCGGtvFqVYhVVqQ3IlIKBGHAp4Qy5hZXNvdXJjZXM8PC9Qcm9jU2V0IFsvUERGIC9UZXh0IC9JbWF
    nZUIgL0ltYWdlQyAvSW1hZ2VJXS9Gb250PDwvRjEgMiAwIFI+Pj4+L1N1YnR5cGUvRm9ybS9CQm94WzAgMCAxMTMuMTYgNDguMDJdPj5zdHJlYW0KeJyVkj1OBDEMhfucIiU0
    D9txYqdF2j1BrgBISDR7/4IJszuMcBrk7ot/Xp5N2UGSGa5ZKd/eksDaDgld7rCiyg5/nnfIBJZQzwqT0IAdGqAQRKOAElE9RJ1oIZQotZSVqtLgIVUJuqAKjm31jgqaP0whLJyqiNOrw+OgRodTp9ymD6dOVrceqo1mTaAy9f1Vagbx0NS3uhaposWluC1UdQbFb3VdXVC344TOx0K8sIupIspl6q
    t1MTPKogeX3zX+k70nzjNuH+l1pJcrb/M4j4lpC861QaYIErI8vtKTciFqXU3Z7Xl8pstI3wTfqWMKZW5kc3RyZWFtCmVuZG9iago5IDAgb2JqCj
    w8L01hdHJpeCBbMSAwIDAgMSAwIDBdL0ZpbHRlci9GbGF0ZURlY29kZS9UeXBlL1hPYmplY3QvRm9ybVR
    5cGUgMS9MZW5ndGggMTU2L1Jlc291cmNlczw8L1Byb2NTZXQgWy9QREYgL1RleHQgL0ltYWdlQiAvSW1h
    Z2VDIC9JbWFnZUldL0ZvbnQ8PC9GMSAyIDAgUj4+Pj4vU3VidHlwZS9Gb3JtL0JCb3hbMCAwIDU0LjQgMzIuMDJdPj5zdHJlYW0KeJyVkLEOAiEMhvc+RUddsC2Fw9VEJzeZ3NXExOXefxByh5e0k+lCPv5+LRCWQIIcMori/AAJuiAKZUXaTgYVj1isinW4unRlU7u2I8mmJAaxfsneJkdvi3GwrTcm74t5vGHrVbeJqssUm0ns7Um8P
    f3+g/4gT2DsNb/gVOFw4TaFsXZMrRhlCtwhCU1YP7C73u77+oZzhS/E6F5sCmVuZHN0cmVhbQplbmRvYmoKNiAwIG9iago8PC9Db3VudCA0L1R5cGUvUGFnZXMvSVRYVCgyLjE
    uNykvS2lkc1s3IDAgUiAxMSAwIFIgMTUgMCBSIDE5IDAgUl0+PgplbmRvYmoKMjAgMCBvYmoKPDwvVHlwZS9DYXRhbG9nL1BhZ2VzIDYgMCBSPj4KZW5kb2JqCjIxIDAg
    b2JqCjw8L0NyZWF0aW9uRGF0ZShEOjIwMTExMDE0MjMxNjQzKzAyJzAwJykvUHJvZHVjZXIoaVRleHQgM
    i4xLjcgYnkgMVQzWFQpL01vZERhdGUoRDoyMDExMTAxNDIzMTY0MyswMicwMCcpPj4KZW5kb2JqCnhyZW
    YKMCAyMgowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDkyODggMDAwMDAgbiAKMDAwMDAwNjA2NyAwMDA
    wMCBuIAowMDAwMDA4OTA5IDAwMDAwIG4gCjAwMDAwMDYxNTUgMDAwMDAgbiAKMDAwMDAwMDAxNSAwMDAw
    MCBuIAowMDAwMDEwNTk2IDAwMDAwIG4gCjAwMDAwMDEzMzcgMDAwMDAgbiAKMDAwMDAwNzU5MSAwMDAwM
    CBuIAowMDAwMDEwMjE3IDAwMDAwIG4gCjAwMDAwMDE1MjYgMDAwMDAgbiAKMDAwMDAwMjg0NiAwMDAwMC
    BuIAowMDAwMDA4NDQxIDAwMDAwIG4gCjAwMDAwMDgwNTYgMDAwMDAgbiAKMDAwMDAwMzAzNyAwMDAwMCB
    uIAowMDAwMDA0MzYxIDAwMDAwIG4gCjAwMDAwMDk3NTIgMDAwMDAgbiAKMDAwMDAwNzIwOCAwMDAwMCBu
    IAowMDAwMDA0NTU0IDAwMDAwIG4gCjAwMDAwMDU4NzQgMDAwMDAgbiAKMDAwMDAxMDY4MCAwMDAwMCBuI
    AowMDAwMDEwNzI2IDAwMDAwIG4gCnRyYWlsZXIKPDwvSUQgWzxlYTBlMjdiZWNiM2M2OTE2NTZiN2VhYj
    c0OTYxNjA0OD48YTI5ZDAyNzg1ZmM3M2E1YTMyM2UyNjk4NGRlM2UzMjA+XS9Sb290IDIwIDAgUi9TaXplIDIyL0luZm8gMjEgMCBSPj4Kc3RhcnR4cmVmCjEwODQ5CiUlRU9GCg==
  3.  


post był za długi więc skróciłem krzaczki:)


--------------------
Macho odpadacie ;) .
Go to the top of the page
+Quote Post
Fifi209
post 14.10.2011, 22:35:53
Post #9





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


I Twoim zdaniem to zapis binarny (zero-jedynkowy) ?


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
Swirek
post 14.10.2011, 22:40:36
Post #10





Grupa: Zarejestrowani
Postów: 221
Pomógł: 20
Dołączył: 4.05.2006
Skąd: Polska

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


http://www.siodemka.com/narzedzia/wsparcie...epniane-metody/

ostatnia metoda wink.gif


--------------------
Macho odpadacie ;) .
Go to the top of the page
+Quote Post
mls
post 14.10.2011, 22:41:52
Post #11





Grupa: Zarejestrowani
Postów: 677
Pomógł: 89
Dołączył: 31.08.2003
Skąd: Warszawa

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


base64_decode i będzie binarny... wink.gif

Tak więc autorze wątku, może spróbuj po prostu:
  1. header ("Content-Type: application/pdf");
  2. $Siodemka2 = new Siodemka();
  3. $Siodemka2->_WydrukEtykietaPdf($numery);
  4. $wartosc = null;
  5.  
  6. if (preg_match('#<ns0:result>(.*)</ns0:result>#', $Siodemka2->__getLastResponse(), $wartosc))
  7. echo(base64_decode($wartosc[1]));


--------------------
Go to the top of the page
+Quote Post
Swirek
post 14.10.2011, 22:45:31
Post #12





Grupa: Zarejestrowani
Postów: 221
Pomógł: 20
Dołączył: 4.05.2006
Skąd: Polska

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


Cytat(mls @ 14.10.2011, 22:41:52 ) *
base64_decode i będzie binarny... wink.gif

Tak więc autorze wątku, może spróbuj po prostu:
  1. header ("Content-Type: application/pdf");
  2. $Siodemka2 = new Siodemka();
  3. $Siodemka2->_WydrukEtykietaPdf($numery);
  4. $wartosc = null;
  5.  
  6. if (preg_match('#<ns0:result>(.*)</ns0:result>#', $Siodemka2->__getLastResponse(), $wartosc))
  7. echo(base64_decode($wartosc[1]));



Wiedziałem że coś tam trzeba przerobić biggrin.gif
Rączki całuje i dziękuje biggrin.gif


--------------------
Macho odpadacie ;) .
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 26.04.2025 - 02:11