Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.php > #4227 > unrolled thread

PDF-Anzeige aus per Ajax gerufenem PHP-File

Started byRalph Stahl <post@rstahl.de>
First post2017-08-31 16:23 +0200
Last post2017-09-18 09:56 +0200
Articles 20 on this page of 25 — 7 participants

Back to article view | Back to de.comp.lang.php


Contents

  PDF-Anzeige aus per Ajax gerufenem PHP-File Ralph Stahl <post@rstahl.de> - 2017-08-31 16:23 +0200
    Re: PDF-Anzeige aus per Ajax gerufenem PHP-File "Christoph M. Becker" <cmbecker69@arcor.de> - 2017-08-31 18:21 +0200
      Re: PDF-Anzeige aus per Ajax gerufenem PHP-File Ralph Stahl <post@rstahl.de> - 2017-09-02 09:10 +0200
        Re: PDF-Anzeige aus per Ajax gerufenem PHP-File Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2017-09-02 11:16 +0000
          Re: PDF-Anzeige aus per Ajax gerufenem PHP-File Ralph Stahl <post@rstahl.de> - 2017-09-03 15:18 +0200
            Re: PDF-Anzeige aus per Ajax gerufenem PHP-File "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2017-09-03 17:39 +0200
              Re: PDF-Anzeige aus per Ajax gerufenem PHP-File Claus Reibenstein <4spamersonly@kabelmail.de> - 2017-09-03 17:51 +0200
                Re: PDF-Anzeige aus per Ajax gerufenem PHP-File "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2017-09-03 18:31 +0200
                  Re: PDF-Anzeige aus per Ajax gerufenem PHP-File Ralph Stahl <post@rstahl.de> - 2017-09-04 10:07 +0200
              Re: PDF-Anzeige aus per Ajax gerufenem PHP-File Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-09-08 11:57 +0200
            Re: PDF-Anzeige aus per Ajax gerufenem PHP-File Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2017-09-03 19:53 +0000
        Re: PDF-Anzeige aus per Ajax gerufenem PHP-File "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2017-09-03 17:49 +0200
          Re: PDF-Anzeige aus per Ajax gerufenem PHP-File Ralph Stahl <post@rstahl.de> - 2017-09-04 10:08 +0200
            Re: PDF-Anzeige aus per Ajax gerufenem PHP-File "Christoph M. Becker" <cmbecker69@arcor.de> - 2017-09-04 13:20 +0200
            Re: PDF-Anzeige aus per Ajax gerufenem PHP-File "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2017-09-04 19:16 +0200
              Re: PDF-Anzeige aus per Ajax gerufenem PHP-File "Christoph M. Becker" <cmbecker69@arcor.de> - 2017-09-04 19:30 +0200
                Re: PDF-Anzeige aus per Ajax gerufenem PHP-File Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-09-08 12:01 +0200
                  Re: PDF-Anzeige aus per Ajax gerufenem PHP-File "Christoph M. Becker" <cmbecker69@arcor.de> - 2017-09-08 12:56 +0200
                    Re: PDF-Anzeige aus per Ajax gerufenem PHP-File Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-09-08 13:00 +0200
                    Re: PDF-Anzeige aus per Ajax gerufenem PHP-File Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-09-08 13:14 +0200
                      Re: PDF-Anzeige aus per Ajax gerufenem PHP-File "Christoph M. Becker" <cmbecker69@arcor.de> - 2017-09-13 17:57 +0200
                        Re: PDF-Anzeige aus per Ajax gerufenem PHP-File Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-09-13 20:13 +0200
              Re: PDF-Anzeige aus per Ajax gerufenem PHP-File Ralph Stahl <post@rstahl.de> - 2017-09-05 12:14 +0200
    Re: PDF-Anzeige aus per Ajax gerufenem PHP-File Arno Welzel <usenet@arnowelzel.de> - 2017-09-17 15:00 +0200
      Re: PDF-Anzeige aus per Ajax gerufenem PHP-File Ralph Stahl <post@rstahl.de> - 2017-09-18 09:56 +0200

Page 1 of 2  [1] 2  Next page →


#4227 — PDF-Anzeige aus per Ajax gerufenem PHP-File

FromRalph Stahl <post@rstahl.de>
Date2017-08-31 16:23 +0200
SubjectPDF-Anzeige aus per Ajax gerufenem PHP-File
Message-ID<oo95sc$uni$1@dont-email.me>
Moin!

Folgende Situation in einer PHP/jQuery-Applikation:

Auf einer Website ist ein Button, per Klick darauf wird mittels
jQuery-post() ein PHP-File (sagen wir "create-pdf.php") gerufen. In
selbigem wird mit der bekannten PDF-Bibliothek TCPDF ein PHP-Dokument
erzeugt, das ich dann zum Drucken oder Speichern aufpoppen lassen möchte
(der Browser ist so eingestellt).

In Kurzfassung dieses Stückchens Javascript heißt also:

$('#mein_button').on('click', function() {
    $.post('create-pdf.php', {Parameter...});
});

Mit TCPDF ist die entscheidende letzte Zeile in create-pdf.php:

$pdf->Output("filename.pdf", 'I');

Das ist äquivalent zu

<?php
$file = './path/to/the.pdf';
$filename = 'Custom file name for the.pdf';
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="' . $filename . '"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($file));
header('Accept-Ranges: bytes');
@readfile($file);

Das klappt prima, solange ich create-pdf.php direkt im Browser aufrufe.
Den Aufruf über Ajax kann ich zwar in der Konsole von Firefox verfolgen
und man sieht auch die obigen Header richtig - nur poppt nichts, die
Daten geht ins Leere.

Was ist an der Idee verkehrt? Ich rufe das Ganze doch in dem Browser
auf, an den die Daten (das PDF) geschickt werden, sonst würde ich das
doch auch nicht in der Konsole verfolgen können. Javascript läuft im
Browser, das lokale Ende von Ajax auch. Einziger Unterschied beider
"Verfahren" ist, dass ich create-pdf.php einmal direkt im Browser
aufrufe und einmal indirekt unsichtbar.

Kann ich das irgendwie lösen? Jemand ne Idee? Ich wäre sehr dankbar.

Ralph


[toc] | [next] | [standalone]


#4230

From"Christoph M. Becker" <cmbecker69@arcor.de>
Date2017-08-31 18:21 +0200
Message-ID<oo9d1k$t85$1@solani.org>
In reply to#4227
Am 31.08.2017 um 16:23 schrieb Ralph Stahl:

> Folgende Situation in einer PHP/jQuery-Applikation:
> 
> Auf einer Website ist ein Button, per Klick darauf wird mittels
> jQuery-post() ein PHP-File (sagen wir "create-pdf.php") gerufen. In
> selbigem wird mit der bekannten PDF-Bibliothek TCPDF ein PHP-Dokument
> erzeugt, das ich dann zum Drucken oder Speichern aufpoppen lassen möchte
> (der Browser ist so eingestellt).
> 
> In Kurzfassung dieses Stückchens Javascript heißt also:
> 
> $('#mein_button').on('click', function() {
>     $.post('create-pdf.php', {Parameter...});
> });
> 
> Mit TCPDF ist die entscheidende letzte Zeile in create-pdf.php:
> 
> $pdf->Output("filename.pdf", 'I');
> 
> Das klappt prima, solange ich create-pdf.php direkt im Browser aufrufe.
> Den Aufruf über Ajax kann ich zwar in der Konsole von Firefox verfolgen
> und man sieht auch die obigen Header richtig - nur poppt nichts, die
> Daten geht ins Leere.

Was passiert, wenn du create-pdf.php direkt im Browser abrufst, hängt
vom Browser und dessen Einstellungen ab. Bei mir würde das PDF direkt
herunter geladen, aber nicht angezeigt, weil mein PDF-Reader nicht in
den Browser integriert ist.

Wenn du das ganze per XHR ("Ajax") durchführen willst, dann müsstest du
selbst für die Anzeige sorgen, was z.B. mit
<https://mozilla.github.io/pdf.js/> möglich ist.

Aber was spricht dagegen statt des Buttons einfach einen Link zu
create-pdf.php anzubieten?

-- 
Christoph M. Becker

[toc] | [prev] | [next] | [standalone]


#4232

FromRalph Stahl <post@rstahl.de>
Date2017-09-02 09:10 +0200
Message-ID<oodl8d$s0j$1@dont-email.me>
In reply to#4230
Christoph M. Becker schrieb:
> Am 31.08.2017 um 16:23 schrieb Ralph Stahl:
> 
>> Folgende Situation in einer PHP/jQuery-Applikation:
>>
>> Auf einer Website ist ein Button, per Klick darauf wird mittels
>> jQuery-post() ein PHP-File (sagen wir "create-pdf.php") gerufen. In
>> selbigem wird mit der bekannten PDF-Bibliothek TCPDF ein PHP-Dokument
>> erzeugt, das ich dann zum Drucken oder Speichern aufpoppen lassen möchte
>> (der Browser ist so eingestellt).
>>
>> In Kurzfassung dieses Stückchens Javascript heißt also:
>>
>> $('#mein_button').on('click', function() {
>>     $.post('create-pdf.php', {Parameter...});
>> });
>>
>> Mit TCPDF ist die entscheidende letzte Zeile in create-pdf.php:
>>
>> $pdf->Output("filename.pdf", 'I');
>>
>> Das klappt prima, solange ich create-pdf.php direkt im Browser aufrufe.
>> Den Aufruf über Ajax kann ich zwar in der Konsole von Firefox verfolgen
>> und man sieht auch die obigen Header richtig - nur poppt nichts, die
>> Daten geht ins Leere.
> 
> Was passiert, wenn du create-pdf.php direkt im Browser abrufst, hängt
> vom Browser und dessen Einstellungen ab. Bei mir würde das PDF direkt
> herunter geladen, aber nicht angezeigt, weil mein PDF-Reader nicht in
> den Browser integriert ist.
> 
> Wenn du das ganze per XHR ("Ajax") durchführen willst, dann müsstest du
> selbst für die Anzeige sorgen, was z.B. mit
> <https://mozilla.github.io/pdf.js/> möglich ist.

Ich brauche Barcodes, die scheint das auf den ersten Blick nicht zu
können. Ich gucke es mir trotzdem mal genauer an, sieht interessant aus.
> 
> Aber was spricht dagegen statt des Buttons einfach einen Link zu
> create-pdf.php anzubieten?
> 

Sowas ähnliches versuche ich gerade. Das PDF wird mit Daten aus einer
Datenbank erzeugt und heißt jedesmal anders, das macht es verzwickt.
Zumal ich nicht weiß (wissen kann), wie der Nutzer PDFs im Browser
öffnet, also wie dessen Einstellungen sind.

Danke für die Ideen!

Ralph

[toc] | [prev] | [next] | [standalone]


#4234

FromStefan+Usenet@Froehlich.Priv.at (Stefan Froehlich)
Date2017-09-02 11:16 +0000
Message-ID<1t59aa92c0i6146n3e8%sfroehli@Froehlich.Priv.at>
In reply to#4232
On Sat, 02 Sep 2017 09:10:13 Ralph Stahl wrote:
> Ich brauche Barcodes, die scheint das auf den ersten Blick nicht zu
> können. Ich gucke es mir trotzdem mal genauer an, sieht interessant aus.

Für Barcodes nimm am besten barcode(1) und kopiere das Ergebnis wo
immer Du es auch hinhaben möchtest.

Servus,
   Stefan

-- 
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich
Offizieller Erstbesucher(TM) von mmeike

Nur rupfen ist herzlicher als paffen! Stefan: Für Politik und Hausgebrauch!
(Sloganizer)

[toc] | [prev] | [next] | [standalone]


#4235

FromRalph Stahl <post@rstahl.de>
Date2017-09-03 15:18 +0200
Message-ID<oogv76$8sk$1@dont-email.me>
In reply to#4234
Stefan Froehlich schrieb:
> On Sat, 02 Sep 2017 09:10:13 Ralph Stahl wrote:
>> Ich brauche Barcodes, die scheint das auf den ersten Blick nicht zu
>> können. Ich gucke es mir trotzdem mal genauer an, sieht interessant aus.
> 
> Für Barcodes nimm am besten barcode(1) und kopiere das Ergebnis wo
> immer Du es auch hinhaben möchtest.
> 
> Servus,
>    Stefan
> 

barcode(1)??? Ich ahne, was du meinst, aber ich benutzte TCPDF sowieso
und brauche auch kein unscharfes Bild, sondern Postscript. Aber danke!

Ralph

[toc] | [prev] | [next] | [standalone]


#4236

From"Peter J. Holzer" <hjp-usenet3@hjp.at>
Date2017-09-03 17:39 +0200
Message-ID<slrnoqo8hm.4i5.hjp-usenet3@hrunkner.hjp.at>
In reply to#4235
On 2017-09-03 13:18, Ralph Stahl <post@rstahl.de> wrote:
> Stefan Froehlich schrieb:
>> On Sat, 02 Sep 2017 09:10:13 Ralph Stahl wrote:
>>> Ich brauche Barcodes, die scheint das auf den ersten Blick nicht zu
>>> können. Ich gucke es mir trotzdem mal genauer an, sieht interessant aus.
>> 
>> Für Barcodes nimm am besten barcode(1) und kopiere das Ergebnis wo
>> immer Du es auch hinhaben möchtest.
>
> barcode(1)??? Ich ahne, was du meinst, aber ich benutzte TCPDF sowieso
> und brauche auch kein unscharfes Bild, sondern Postscript.

Wolltest Du schreiben "ich brauche kein Postscript, sondern PDF"?
barcode(1) erzeugt nämlich Postscript. Und unscharf sieht das auch nicht
aus (tatsächlich wäre es ein bisschen ein Kunststück, unscharfe Barcodes
zu erzeugen).

Aber natürlich ist die Verwendung eines externen Programms eher wenig
sinnvoll, wenn man bereits eine Libary hat, die das gleiche kann.

        hp


-- 
   _  | Peter J. Holzer    | Fluch der elektronischen Textverarbeitung:
|_|_) |                    | Man feilt solange an seinen Text um, bis
| |   | hjp@hjp.at         | die Satzbestandteile des Satzes nicht mehr
__/   | http://www.hjp.at/ | zusammenpaßt. -- Ralph Babel

[toc] | [prev] | [next] | [standalone]


#4238

FromClaus Reibenstein <4spamersonly@kabelmail.de>
Date2017-09-03 17:51 +0200
Message-ID<f12mnmFdhiiU1@mid.individual.net>
In reply to#4236
Peter J. Holzer schrieb am 03.09.2017 um 17:39:

> On 2017-09-03 13:18, Ralph Stahl <post@rstahl.de> wrote:
>
>> Stefan Froehlich schrieb:
>>
>>> Für Barcodes nimm am besten barcode(1) [...]
>>
>> barcode(1)??? Ich ahne, was du meinst, aber [...]
> 
> Wolltest Du schreiben "ich brauche kein Postscript, sondern PDF"?
> barcode(1) erzeugt nämlich Postscript. [...]

Irgendwie kann ich Euren Ausführungen nicht folgen. Das mag sicher daran
liegen, dass ich mit "barcode(1)" nichts anfangen kann. Es wäre nett,
wenn mich mal jemand aufklären würde.

Google habe ich schon gefragt, aber außer einer man-page kam da leider
nichts Brauchbares (und von Unix/Linux steht im Thread nix).

Gruß
Claus

[toc] | [prev] | [next] | [standalone]


#4239

From"Peter J. Holzer" <hjp-usenet3@hjp.at>
Date2017-09-03 18:31 +0200
Message-ID<slrnoqobjf.k00.hjp-usenet3@hrunkner.hjp.at>
In reply to#4238
On 2017-09-03 15:51, Claus Reibenstein <4spamersonly@kabelmail.de> wrote:
> Peter J. Holzer schrieb am 03.09.2017 um 17:39:
>> On 2017-09-03 13:18, Ralph Stahl <post@rstahl.de> wrote:
>>> Stefan Froehlich schrieb:
>>>> Für Barcodes nimm am besten barcode(1) [...]
>>>
>>> barcode(1)??? Ich ahne, was du meinst, aber [...]
>> 
>> Wolltest Du schreiben "ich brauche kein Postscript, sondern PDF"?
>> barcode(1) erzeugt nämlich Postscript. [...]
>
> Irgendwie kann ich Euren Ausführungen nicht folgen. Das mag sicher daran
> liegen, dass ich mit "barcode(1)" nichts anfangen kann. Es wäre nett,
> wenn mich mal jemand aufklären würde.

Die Notation mit Zahl in runden Klammern stammt aus dem Unix-Manual und
bedeutet "Kapitel 'barcode' in Abschnitt 1". Abschnitt 1 wiederum ist
"Commands and Application Programs". "barcode(1)" ist also Jargon für
"das Unix/Linux Command Line Utility barcode". (Entsprechend wäre
barcode(2) ein hypothetischer System Call namens barcode (ein Patch für
einen solchen würde wohl einen Torvaldschen Tobsuchtsanfall auslösen)
und barcode(3) eine Library-Funktion dieses Namens (die gibt es zwar
nicht, aber eine entsprechende Manpage gibt es sehr wohl - beschreibt
halt nicht eine Funktion, sondern die ganze Library).


> Google habe ich schon gefragt, aber außer einer man-page kam da leider
> nichts Brauchbares (und von Unix/Linux steht im Thread nix).

War aber ziemlich sicher das, was Stefan gemeint hat. Und wenn man in
Ermangelung genauerer Angaben mal annimmt, dass ein Webserver mit PHP
unter Linux läuft, liegt man wahrscheinlich öfter richtig als falsch.
Wenn's nicht stimmt, wird es der OP schon sagen.

        hp


-- 
   _  | Peter J. Holzer    | Fluch der elektronischen Textverarbeitung:
|_|_) |                    | Man feilt solange an seinen Text um, bis
| |   | hjp@hjp.at         | die Satzbestandteile des Satzes nicht mehr
__/   | http://www.hjp.at/ | zusammenpaßt. -- Ralph Babel

[toc] | [prev] | [next] | [standalone]


#4241

FromRalph Stahl <post@rstahl.de>
Date2017-09-04 10:07 +0200
Message-ID<ooj1l4$lmu$1@news.albasani.net>
In reply to#4239
Peter J. Holzer schrieb:
> On 2017-09-03 15:51, Claus Reibenstein <4spamersonly@kabelmail.de> wrote:
>> Peter J. Holzer schrieb am 03.09.2017 um 17:39:
>>> On 2017-09-03 13:18, Ralph Stahl <post@rstahl.de> wrote:
>>>> Stefan Froehlich schrieb:
>>>>> Für Barcodes nimm am besten barcode(1) [...]
>>>>
>>>> barcode(1)??? Ich ahne, was du meinst, aber [...]
>>>
>>> Wolltest Du schreiben "ich brauche kein Postscript, sondern PDF"?
>>> barcode(1) erzeugt nämlich Postscript. [...]
>>
>> Irgendwie kann ich Euren Ausführungen nicht folgen. Das mag sicher daran
>> liegen, dass ich mit "barcode(1)" nichts anfangen kann. Es wäre nett,
>> wenn mich mal jemand aufklären würde.
> 
> Die Notation mit Zahl in runden Klammern stammt aus dem Unix-Manual und
> bedeutet "Kapitel 'barcode' in Abschnitt 1". Abschnitt 1 wiederum ist
> "Commands and Application Programs". "barcode(1)" ist also Jargon für
> "das Unix/Linux Command Line Utility barcode". (Entsprechend wäre
> barcode(2) ein hypothetischer System Call namens barcode (ein Patch für
> einen solchen würde wohl einen Torvaldschen Tobsuchtsanfall auslösen)
> und barcode(3) eine Library-Funktion dieses Namens (die gibt es zwar
> nicht, aber eine entsprechende Manpage gibt es sehr wohl - beschreibt
> halt nicht eine Funktion, sondern die ganze Library).
> 
> 
>> Google habe ich schon gefragt, aber außer einer man-page kam da leider
>> nichts Brauchbares (und von Unix/Linux steht im Thread nix).
> 
> War aber ziemlich sicher das, was Stefan gemeint hat. Und wenn man in
> Ermangelung genauerer Angaben mal annimmt, dass ein Webserver mit PHP
> unter Linux läuft, liegt man wahrscheinlich öfter richtig als falsch.
> Wenn's nicht stimmt, wird es der OP schon sagen.
> 
>         hp
> 
> 

Der OP ;-) sagt, dass er (also ich) das als Linux-Programm nicht kennt.
Ich kann auch sicher nicht davon ausgehen, dass es auf dem Webserver des
Providers installiert ist (bei meinem Ubuntu ist es das nicht, wenn auch
nachholbar) und ich dort per Systemcall darauf zugreifen kann. Sonst
wäre das schon eine feine Sache.

Mein Missverständnis sowie die drei Fragezeichen beruhen darauf, dass
ich gerade kürzlich eine freie PHP-Klasse "barcode" gefunden hatte, die
untaugliche Ergebnisse produzierte, nämlich unscharfe png-Bilder.

Dennoch danke für den Tip! Klingt gar nicht mal schlecht, ich habs mir
eben installiert und sehe mal, ob ich damit was anfangen kann.

Ralph

[toc] | [prev] | [next] | [standalone]


#4248

FromThomas 'PointedEars' Lahn <PointedEars@web.de>
Date2017-09-08 11:57 +0200
Message-ID<2749988.0BqoNYWBHr@PointedEars.de>
In reply to#4236
Peter J. Holzer wrote:

> On 2017-09-03 13:18, Ralph Stahl <post@rstahl.de> wrote:
>> Stefan Froehlich schrieb:
>>> On Sat, 02 Sep 2017 09:10:13 Ralph Stahl wrote:
>>>> Ich brauche Barcodes, die scheint das auf den ersten Blick nicht zu
>>>> können. Ich gucke es mir trotzdem mal genauer an, sieht interessant
>>>> aus.
>>> Für Barcodes nimm am besten barcode(1) und kopiere das Ergebnis wo
>>> immer Du es auch hinhaben möchtest.
>> barcode(1)??? Ich ahne, was du meinst, aber ich benutzte TCPDF sowieso
>> und brauche auch kein unscharfes Bild, sondern Postscript.
> 
> Wolltest Du schreiben "ich brauche kein Postscript, sondern PDF"?
> barcode(1) erzeugt nämlich Postscript.

PDF verwendet für Layout und Grafik ein Subset von _PostScript_.

-- 
PointedEars
Zend Certified PHP Engineer <http://www.zend.com/en/yellow-pages/ZEND024953>
<https://github.com/PointedEars> | <http://PointedEars.de/wsvn>
Twitter: @PointedEars2 | Please do not cc me./Bitte keine Kopien per E-Mail.

[toc] | [prev] | [next] | [standalone]


#4240

FromStefan+Usenet@Froehlich.Priv.at (Stefan Froehlich)
Date2017-09-03 19:53 +0000
Message-ID<1t59ac5ca5i74ean3e8%sfroehli@Froehlich.Priv.at>
In reply to#4235
On Sun, 03 Sep 2017 15:18:39 Ralph Stahl wrote:
> Stefan Froehlich schrieb:
> > On Sat, 02 Sep 2017 09:10:13 Ralph Stahl wrote:
> >> Ich brauche Barcodes, die scheint das auf den ersten Blick nicht zu
> >> können. [...]

> > Für Barcodes nimm am besten barcode(1) und kopiere das Ergebnis wo
> > immer Du es auch hinhaben möchtest.

> barcode(1)??? Ich ahne, was du meinst, aber ich benutzte TCPDF
> sowieso und brauche auch kein unscharfes Bild, sondern Postscript.
> Aber danke!
 
barcode(1) ist, wie Peter dankenswerterweise inzwischen schon
ausgeführt hat, im wesentlichen ein unter Unix und insbesondere
Linux verfügbares Programm, mit dem man beliebige Barcodes im
PostScript-Format erzeugen kann. Wenn Du Barcodes brauchst, ist das
jedenfalls ein überlegenswerter Ansatz; die eps-Datei kannst Du
danach relativ leicht wo auch immer und wie auch immer einbinden.

Servus,
   Stefan

-- 
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich
Offizieller Erstbesucher(TM) von mmeike

Entspannung ohne Grenzen: Stefan!
(Sloganizer)

[toc] | [prev] | [next] | [standalone]


#4237

From"Peter J. Holzer" <hjp-usenet3@hjp.at>
Date2017-09-03 17:49 +0200
Message-ID<slrnoqo93r.4i5.hjp-usenet3@hrunkner.hjp.at>
In reply to#4232
On 2017-09-02 07:10, Ralph Stahl <post@rstahl.de> wrote:
> Christoph M. Becker schrieb:
>> Am 31.08.2017 um 16:23 schrieb Ralph Stahl:
>>> Auf einer Website ist ein Button, per Klick darauf wird mittels
>>> jQuery-post() ein PHP-File (sagen wir "create-pdf.php") gerufen. In
>>> selbigem wird mit der bekannten PDF-Bibliothek TCPDF ein PHP-Dokument
>>> erzeugt, das ich dann zum Drucken oder Speichern aufpoppen lassen möchte
>>> (der Browser ist so eingestellt).
>>>
>>> In Kurzfassung dieses Stückchens Javascript heißt also:
>>>
>>> $('#mein_button').on('click', function() {
>>>     $.post('create-pdf.php', {Parameter...});
>>> });
>>>
>>> Mit TCPDF ist die entscheidende letzte Zeile in create-pdf.php:
>>>
>>> $pdf->Output("filename.pdf", 'I');
>>>
>>> Das klappt prima, solange ich create-pdf.php direkt im Browser aufrufe.
>>> Den Aufruf über Ajax kann ich zwar in der Konsole von Firefox verfolgen
>>> und man sieht auch die obigen Header richtig - nur poppt nichts, die
>>> Daten geht ins Leere.

Ich glaube, Du bist in der falschen Gruppe. Deine Frage ist nicht, wie
Du mit PHP PDF-Files erstellst (das weißt Du ja offensichtlich), sondern
wie Du mit JavaScript ein PDF-File in einem Popup-Fenster darstellen
kannst.


>> Was passiert, wenn du create-pdf.php direkt im Browser abrufst, hängt
>> vom Browser und dessen Einstellungen ab. Bei mir würde das PDF direkt
>> herunter geladen, aber nicht angezeigt, weil mein PDF-Reader nicht in
>> den Browser integriert ist.
>> 
>> Wenn du das ganze per XHR ("Ajax") durchführen willst, dann müsstest du
>> selbst für die Anzeige sorgen, was z.B. mit
>> <https://mozilla.github.io/pdf.js/> möglich ist.
>
> Ich brauche Barcodes, die scheint das auf den ersten Blick nicht zu
> können.

Barcodes sind nichts anderes als schwarze Rechtecke. Warum sollte PDF.js
das nicht können? (Falls das nicht klar ist: PDF.js stellt PDF-Dokumente
dar, es erzeugt sie nicht. PDF.js ist u.a. die Grundlage für den
eingebauten PDF-Viewer in Firefox).

        hp


-- 
   _  | Peter J. Holzer    | Fluch der elektronischen Textverarbeitung:
|_|_) |                    | Man feilt solange an seinen Text um, bis
| |   | hjp@hjp.at         | die Satzbestandteile des Satzes nicht mehr
__/   | http://www.hjp.at/ | zusammenpaßt. -- Ralph Babel

[toc] | [prev] | [next] | [standalone]


#4242

FromRalph Stahl <post@rstahl.de>
Date2017-09-04 10:08 +0200
Message-ID<ooj1la$lmu$2@news.albasani.net>
In reply to#4237
Peter J. Holzer schrieb:
> On 2017-09-02 07:10, Ralph Stahl <post@rstahl.de> wrote:
>> Christoph M. Becker schrieb:
>>> Am 31.08.2017 um 16:23 schrieb Ralph Stahl:
>>>> Auf einer Website ist ein Button, per Klick darauf wird mittels
>>>> jQuery-post() ein PHP-File (sagen wir "create-pdf.php") gerufen. In
>>>> selbigem wird mit der bekannten PDF-Bibliothek TCPDF ein PHP-Dokument
>>>> erzeugt, das ich dann zum Drucken oder Speichern aufpoppen lassen möchte
>>>> (der Browser ist so eingestellt).
>>>>
>>>> In Kurzfassung dieses Stückchens Javascript heißt also:
>>>>
>>>> $('#mein_button').on('click', function() {
>>>>     $.post('create-pdf.php', {Parameter...});
>>>> });
>>>>
>>>> Mit TCPDF ist die entscheidende letzte Zeile in create-pdf.php:
>>>>
>>>> $pdf->Output("filename.pdf", 'I');
>>>>
>>>> Das klappt prima, solange ich create-pdf.php direkt im Browser aufrufe.
>>>> Den Aufruf über Ajax kann ich zwar in der Konsole von Firefox verfolgen
>>>> und man sieht auch die obigen Header richtig - nur poppt nichts, die
>>>> Daten geht ins Leere.
> 
> Ich glaube, Du bist in der falschen Gruppe. Deine Frage ist nicht, wie
> Du mit PHP PDF-Files erstellst (das weißt Du ja offensichtlich), sondern
> wie Du mit JavaScript ein PDF-File in einem Popup-Fenster darstellen
> kannst.

nein. Genau genommen will ich wissen (steht ja auch oben), wieso die
Option "I" der PHP-Bibliothek (!) TCPDF das erzeugte PDF nicht im
Browser mit dessen Standardoptionen darstellen kann, wenn ich das
erzeugende PHP-Script mittels Ajax aufrufe und nicht direkt im Browser.
Wird es jetzt klarer? Ich weiß, das ist ein bißchen "von hinten durch
die Brust ins Auge". Vielleicht verstehe ich auch nur pdf.js noch nicht,
aber ich möchte eben gern die Möglichkeiten von TCPDF selbst ausnutzen
und nicht noch eine weitere Bibliothek brauchen - zumal eine, die - wie
du schreibst - im Browser eigentlich schon vorhanden ist.

> 
> 
>>> Was passiert, wenn du create-pdf.php direkt im Browser abrufst, hängt
>>> vom Browser und dessen Einstellungen ab. Bei mir würde das PDF direkt
>>> herunter geladen, aber nicht angezeigt, weil mein PDF-Reader nicht in
>>> den Browser integriert ist.
>>>
>>> Wenn du das ganze per XHR ("Ajax") durchführen willst, dann müsstest du
>>> selbst für die Anzeige sorgen, was z.B. mit
>>> <https://mozilla.github.io/pdf.js/> möglich ist.
>>
>> Ich brauche Barcodes, die scheint das auf den ersten Blick nicht zu
>> können.
> 
> Barcodes sind nichts anderes als schwarze Rechtecke. Warum sollte PDF.js
> das nicht können? (Falls das nicht klar ist: PDF.js stellt PDF-Dokumente
> dar, es erzeugt sie nicht. PDF.js ist u.a. die Grundlage für den
> eingebauten PDF-Viewer in Firefox).

Warum sollte TCPDF das nicht selbst können? Dort drin steckt auch nichts
anderes.

Ralph

[toc] | [prev] | [next] | [standalone]


#4243

From"Christoph M. Becker" <cmbecker69@arcor.de>
Date2017-09-04 13:20 +0200
Message-ID<oojcte$2p4$1@solani.org>
In reply to#4242
Am 04.09.2017 um 10:08 schrieb Ralph Stahl:

> Peter J. Holzer schrieb:
>
>> Ich glaube, Du bist in der falschen Gruppe. Deine Frage ist nicht, wie
>> Du mit PHP PDF-Files erstellst (das weißt Du ja offensichtlich), sondern
>> wie Du mit JavaScript ein PDF-File in einem Popup-Fenster darstellen
>> kannst.
> 
> nein. Genau genommen will ich wissen (steht ja auch oben), wieso die
> Option "I" der PHP-Bibliothek (!) TCPDF das erzeugte PDF nicht im
> Browser mit dessen Standardoptionen darstellen kann, wenn ich das
> erzeugende PHP-Script mittels Ajax aufrufe und nicht direkt im Browser.
> Wird es jetzt klarer? Ich weiß, das ist ein bißchen "von hinten durch
> die Brust ins Auge". Vielleicht verstehe ich auch nur pdf.js noch nicht,
> aber ich möchte eben gern die Möglichkeiten von TCPDF selbst ausnutzen
> und nicht noch eine weitere Bibliothek brauchen - zumal eine, die - wie
> du schreibst - im Browser eigentlich schon vorhanden ist.

Und eben das hat nichts mit PHP zu tun. Das per _XHR_ ("Ajax")
aufgerufene Script erzeugt ein _PDF_, welches im _Browser_ dargestellt
werden soll. Also am besten weiter in d.c.l.js.

-- 
Christoph M. Becker

[toc] | [prev] | [next] | [standalone]


#4244

From"Peter J. Holzer" <hjp-usenet3@hjp.at>
Date2017-09-04 19:16 +0200
Message-ID<slrnoqr2iu.vbv.hjp-usenet3@hrunkner.hjp.at>
In reply to#4242
On 2017-09-04 08:08, Ralph Stahl <post@rstahl.de> wrote:
> Peter J. Holzer schrieb:
>> On 2017-09-02 07:10, Ralph Stahl <post@rstahl.de> wrote:
>>> Christoph M. Becker schrieb:
>>>> Am 31.08.2017 um 16:23 schrieb Ralph Stahl:
>>>>> Auf einer Website ist ein Button, per Klick darauf wird mittels
>>>>> jQuery-post() ein PHP-File (sagen wir "create-pdf.php") gerufen.
>>>>> In selbigem wird mit der bekannten PDF-Bibliothek TCPDF ein
>>>>> PHP-Dokument erzeugt, das ich dann zum Drucken oder Speichern
>>>>> aufpoppen lassen möchte (der Browser ist so eingestellt).
[...]
>>>>> Das klappt prima, solange ich create-pdf.php direkt im Browser
>>>>> aufrufe. Den Aufruf über Ajax kann ich zwar in der Konsole von
>>>>> Firefox verfolgen und man sieht auch die obigen Header richtig -
>>>>> nur poppt nichts, die Daten geht ins Leere.
>> 
>> Ich glaube, Du bist in der falschen Gruppe. Deine Frage ist nicht, wie
>> Du mit PHP PDF-Files erstellst (das weißt Du ja offensichtlich), sondern
>> wie Du mit JavaScript ein PDF-File in einem Popup-Fenster darstellen
>> kannst.
>
> nein. Genau genommen will ich wissen (steht ja auch oben), wieso die
> Option "I" der PHP-Bibliothek (!) TCPDF das erzeugte PDF nicht im
> Browser mit dessen Standardoptionen darstellen kann, wenn ich das
> erzeugende PHP-Script mittels Ajax aufrufe und nicht direkt im Browser.

Und der Unterschied zwischen diesen beiden Szenarien liegt eben im
Browser und nicht am Server. Somit hast Du eine JavaScript-Frage und
keine PHP-Frage.


>>>> Was passiert, wenn du create-pdf.php direkt im Browser abrufst, hängt
>>>> vom Browser und dessen Einstellungen ab. Bei mir würde das PDF direkt
>>>> herunter geladen, aber nicht angezeigt, weil mein PDF-Reader nicht in
>>>> den Browser integriert ist.
>>>>
>>>> Wenn du das ganze per XHR ("Ajax") durchführen willst, dann müsstest du
>>>> selbst für die Anzeige sorgen, was z.B. mit
>>>> <https://mozilla.github.io/pdf.js/> möglich ist.
>>>
>>> Ich brauche Barcodes, die scheint das auf den ersten Blick nicht zu
>>> können.
>> 
>> Barcodes sind nichts anderes als schwarze Rechtecke. Warum sollte PDF.js
>> das nicht können? (Falls das nicht klar ist: PDF.js stellt PDF-Dokumente
>> dar, es erzeugt sie nicht. PDF.js ist u.a. die Grundlage für den
>> eingebauten PDF-Viewer in Firefox).
>
> Warum sollte TCPDF das nicht selbst können? Dort drin steckt auch nichts
> anderes.

Doch, das tut genau das umgekehrte. TCPDF *erzeugt* ein PDF-File. In dem
PDF-File steht dann drin: "Male hier ein schwarzes Rechteck hin, und
hier eines, und hier eines ...". PDF.js (bzw. der eingebaute
PDF-Renderer im Browser) *interpretiert* dann diese PDF-File und malt
tatsächlich schwarze Rechtecke auf den Bildschirm des Benutzers (stark
vereinfacht). PDF.js ist somit sowas wie der Acrobat-Reader, in
JavaScript implementiert. Das solltest Du im Normalfall bei modernen
Browsern nicht brauchen, weil die meines Wissens alle schon selber PDF
darstellen können, aber wenn Du spezielle Anforderungen an die
Darstellung hast oder mit älteren Browsern kompatibel sein musst, könnte
es hilfreich sein.

        hp

-- 
   _  | Peter J. Holzer    | Fluch der elektronischen Textverarbeitung:
|_|_) |                    | Man feilt solange an seinen Text um, bis
| |   | hjp@hjp.at         | die Satzbestandteile des Satzes nicht mehr
__/   | http://www.hjp.at/ | zusammenpaßt. -- Ralph Babel

[toc] | [prev] | [next] | [standalone]


#4245

From"Christoph M. Becker" <cmbecker69@arcor.de>
Date2017-09-04 19:30 +0200
Message-ID<ook2k8$hcv$1@solani.org>
In reply to#4244
Am 04.09.2017 um 19:16 schrieb Peter J. Holzer:

> PDF.js ist somit sowas wie der Acrobat-Reader, in
> JavaScript implementiert. Das solltest Du im Normalfall bei modernen
> Browsern nicht brauchen, weil die meines Wissens alle schon selber PDF
> darstellen können, […]

Mein Chrome Version 60.0.3112.113 (Offizieller Build) (64-Bit) kann das
nicht.

-- 
Christoph M. Becker

[toc] | [prev] | [next] | [standalone]


#4249

FromThomas 'PointedEars' Lahn <PointedEars@web.de>
Date2017-09-08 12:01 +0200
Message-ID<4011186.0rgyoF6rpS@PointedEars.de>
In reply to#4245
Christoph M. Becker wrote:

> Am 04.09.2017 um 19:16 schrieb Peter J. Holzer:
>> PDF.js ist somit sowas wie der Acrobat-Reader, in
>> JavaScript implementiert. Das solltest Du im Normalfall bei modernen
>> Browsern nicht brauchen, weil die meines Wissens alle schon selber PDF
>> darstellen können, […]
> 
> Mein Chrome Version 60.0.3112.113 (Offizieller Build) (64-Bit) kann das
> nicht.

Dann ist er kapott(konfiguriert) oder das PDF-Dokument ist kapott.

Chromium “57.0.2987.98 Built on 8.7, running on Debian stretch/sid
(64-bit)”, kann das, ohne Plugin.  Chrome kann es schon viel länger.

-- 
PointedEars
Zend Certified PHP Engineer <http://www.zend.com/en/yellow-pages/ZEND024953>
<https://github.com/PointedEars> | <http://PointedEars.de/wsvn>
Twitter: @PointedEars2 | Please do not cc me./Bitte keine Kopien per E-Mail.

[toc] | [prev] | [next] | [standalone]


#4251

From"Christoph M. Becker" <cmbecker69@arcor.de>
Date2017-09-08 12:56 +0200
Message-ID<oott0i$ia6$1@solani.org>
In reply to#4249
Am 08.09.2017 um 12:01 schrieb Thomas 'PointedEars' Lahn:

> Christoph M. Becker wrote:
>
>> Mein Chrome Version 60.0.3112.113 (Offizieller Build) (64-Bit) kann das
>> nicht.
> 
> Dann ist er kapott(konfiguriert) oder das PDF-Dokument ist kapott.

Nein, ist nicht kapott konfiguriert, sondern ganz absichtlich so. Ich
sehe nämlich nicht, dass ein PDF Dokument Scripte ausführen muss und
verwende daher Sumatra PDF; so habe ich einen Angriffsvektor weniger.

-- 
Christoph M. Becker

[toc] | [prev] | [next] | [standalone]


#4253

FromThomas 'PointedEars' Lahn <PointedEars@web.de>
Date2017-09-08 13:00 +0200
Message-ID<3508580.MguXlFHrqR@PointedEars.de>
In reply to#4251
Christoph M. Becker wrote:

> Am 08.09.2017 um 12:01 schrieb Thomas 'PointedEars' Lahn:
>> Christoph M. Becker wrote:
>>> Mein Chrome Version 60.0.3112.113 (Offizieller Build) (64-Bit) kann das
>>> nicht.
>> Dann ist er kapott(konfiguriert) oder das PDF-Dokument ist kapott.
> 
> Nein, ist nicht kapott konfiguriert, sondern ganz absichtlich so. Ich
> sehe nämlich nicht, dass ein PDF Dokument Scripte ausführen muss und
> verwende daher Sumatra PDF; so habe ich einen Angriffsvektor weniger.

Mit „kapottkonfiguriert“ ist in diesem Zusammenhang jede Einstellung 
gemeint, die von den Voreinstellungen abweicht; also auch diese.
 
-- 
PointedEars
Zend Certified PHP Engineer <http://www.zend.com/en/yellow-pages/ZEND024953>
<https://github.com/PointedEars> | <http://PointedEars.de/wsvn>
Twitter: @PointedEars2 | Please do not cc me./Bitte keine Kopien per E-Mail.

[toc] | [prev] | [next] | [standalone]


#4254

FromThomas 'PointedEars' Lahn <PointedEars@web.de>
Date2017-09-08 13:14 +0200
Message-ID<1627025.0ZlaPeIGzx@PointedEars.de>
In reply to#4251
Christoph M. Becker wrote:

> Am 08.09.2017 um 12:01 schrieb Thomas 'PointedEars' Lahn:
>> Christoph M. Becker wrote:
>>> Mein Chrome Version 60.0.3112.113 (Offizieller Build) (64-Bit) kann das
>>> nicht.
>> Dann ist er kapott(konfiguriert) oder das PDF-Dokument ist kapott.
> 
> Nein, ist nicht kapott konfiguriert, sondern ganz absichtlich so. Ich
> sehe nämlich nicht, dass ein PDF Dokument Scripte ausführen muss

Bist Du sicher, dass Du verstanden hast, was pdf.js tut?

Führt pdf.js Scripts in davon angezeigten PDF-Dokumenten aus?

> und verwende daher Sumatra PDF; so habe ich einen Angriffsvektor weniger.

Nur damit ich das richtig verstehe:

Du verwendest lieber ein bestimmtes *externes*, vergleichsweise *komplexes*, 
*weniger* verbreitetes, *weniger* aktuelles Programm, das auf Deinem System 
mit *Benutzerrechten* ausgeführt wird und dessen Funktionsweise *von dem 
Compiler abhängig ist*, mit dem es compiliert wurde, als eine *einfache*, 
*eingebaute* Browser-Funktionalität, die *in einer Sandbox* läuft – und Du 
glaubst, dass Du damit Angreifern *weniger* Möglichkeiten bietest?

Führt “Sumatra PDF” Scripts in davon angezeigten PDF-Dokumenten aus?

-- 
PointedEars
Zend Certified PHP Engineer <http://www.zend.com/en/yellow-pages/ZEND024953>
<https://github.com/PointedEars> | <http://PointedEars.de/wsvn>
Twitter: @PointedEars2 | Please do not cc me./Bitte keine Kopien per E-Mail.

[toc] | [prev] | [next] | [standalone]


Page 1 of 2  [1] 2  Next page →

Back to top | Article view | de.comp.lang.php


csiph-web