Wie Externe Logos in Rechnungs-PDFs Geladen Werden
In diesem Artikel
In vielen Web-Apps kann ein Logo, das im Editor gut aussieht, im heruntergeladenen PDF fehlen. Ursache sind meist die Sicherheitsregeln des Browsers, nicht das Logo selbst. Invoice Generator verhindert das mit einem kleinen Bild-Proxy auf dem Server. Hier erfahren Sie, was er tut und wann er zum Einsatz kommt.
Warum ein Logo von einer Anderen Website ein Problem Ist
Ihr PDF wird nicht auf unseren Servern erstellt. Die App zeichnet die Rechnung in einem versteckten Rahmen in Ihrem Browser, wandelt sie in ein Bild um und speichert dieses als PDF. Browser schränken diese Art des Zeichnens ein: Stammt ein Bild von einer anderen Website, die das nicht ausdrücklich erlaubt hat, darf die Seite seine Pixel nicht auslesen. Ein Logo, das direkt von einer anderen Website verlinkt ist, etwa Ihrer eigenen Website oder einem Bild-Host, würde deshalb oft im PDF fehlen oder die PDF-Erstellung verhindern.
Der Proxy Liefert das Logo über Unsere Eigene Adresse
Um das zu verhindern, ändert der PDF-Schritt die Adresse des Logos kurz vor dem Zeichnen. Ist das Logo ein normaler Weblink (http oder https) zu einer anderen Website, ersetzt die App ihn durch einen Link zu ihrem eigenen Bild-Proxy und gibt die ursprüngliche Adresse mit. Weil das Bild dann von derselben Website kommt wie die App, lässt der Browser den PDF-Schritt damit arbeiten.
Logos, die das nicht brauchen, bleiben unverändert:
- Eingebettete Bilddaten, so wie hochgeladene Logos und Logos im Unternehmensprofil gespeichert werden, sind bereits Teil der Seite.
- Bilder auf unserer eigenen Website liegen bereits auf derselben Website.
- Bilder im Speicher des Browsers stammen von der Seite selbst.
In der Praxis ist der Proxy vor allem wichtig, wenn eine Logo-URL in eine Rechnung eingetragen wurde und die Rechnung noch nicht in einem Konto gespeichert ist. Beim Speichern in einem Konto wird ein externes Logo nämlich in eingebettete Bilddaten umgewandelt.
Was der Proxy Prüft
Der Proxy leitet nicht einfach alles weiter, was er bekommt. Bei jeder Anfrage:
- Prüft er, ob die Adresse eine gültige http- oder https-URL ist, und lehnt alles andere ab.
- Lädt er das Bild von der ursprünglichen Website herunter.
- Prüft er, ob die Antwort wirklich ein Bild ist, und lehnt sie andernfalls ab, damit keine Webseite oder Datei als Logo durchgereicht werden kann.
- Setzt er eine Grenze von 2 MB durch, zuerst anhand der Größe, die die Website angibt, und dann noch einmal beim tatsächlichen Download, damit eine Website mit falscher Größenangabe sie nicht umgehen kann.
Schlägt eine dieser Prüfungen fehl, gibt der Proxy statt eines Bildes eine Fehlermeldung zurück. Die Lösung ist dann, die Logodatei direkt hochzuladen, wie unten beschrieben.
Caching und Limits
Bei einer erfolgreichen Antwort darf der Browser das Bild 24 Stunden lang behalten, sodass beim Herunterladen mehrerer PDFs hintereinander nicht jedes Mal dasselbe Logo abgerufen wird. Der Proxy hat ein eigenes Limit von 500 Anfragen pro 15 Minuten und IP-Adresse, getrennt vom Limit für den Rest der App, sodass viele PDFs nicht das Limit aufbrauchen, das Sie für alles andere brauchen.
Die Zuverlässigste Wahl
Der Proxy kommt mit externen Logos zurecht, die zuverlässigste Wahl ist aber weiterhin, Ihre Logodatei direkt hochzuladen oder sie im Unternehmensprofil zu speichern. In beiden Fällen wird sie als eingebettete Bilddaten gespeichert, die zur Rechnung gehören. Sie hängt also nicht davon ab, dass eine andere Website erreichbar ist, und sieht im Editor, im PDF und in jedem Freigabelink gleich aus. Halten Sie die Datei klein und scharf, deutlich unter der Grenze von 2 MB, damit PDFs schnell erstellt und verschickt werden können.
Ähnliche Artikel
Wie eine Rechnung Gespeichert Wird: Eine Zeile pro Position, Plus eine Vollständige Kopie
Eine gespeicherte Rechnung besteht aus einer Datenbankzeile pro Position, verbunden über eine gemeinsame Gruppen-ID, und jede Zeile enthält eine vollständige Kopie der Rechnung. Beim Speichern einer Änderung werden all diese Zeilen in einer Transaktion ersetzt.
Warum Anmeldeversuche Begrenzt Werden
Anmeldung, Registrierung, Zwei-Faktor-Prüfungen und das erneute Senden von Bestätigungs-E-Mails teilen sich ein Kontingent von 10 Versuchen pro Stunde und IP-Adresse. Das ist deutlich strenger als die Grenze für normale Anfragen in der App. Darum unterscheiden sich die Zahlen.
Wie Registrierung und E-Mail-Verifizierung Tatsächlich Funktionieren
Beim Anlegen eines Kontos wird in derselben Datenbanktransaktion ein persönlicher Arbeitsbereich eingerichtet. Der Bestätigungslink ist 24 Stunden gültig, und wer auf einen abgelaufenen Link klickt, bekommt automatisch einen neuen zugeschickt.
Wie Ihr Logo Beim Hochladen Gespeichert Wird
Ein als externe URL eingefügtes Logo wird serverseitig abgerufen, gegen eine 2-MB-Grenze und einen echten Bild-Inhaltstyp geprüft und vor dem Speichern in eine eigenständige Daten-URL umgewandelt.
Warum Sie Nach Einer Stunde Abgemeldet Werden
Jedes Sitzungstoken läuft exakt nach einer Stunde ab, und es gibt keinen versteckten Aktualisierungsmechanismus, der es still und heimlich verlängert — plus die eine bewusste Ausnahme für Anmeldungen mit Zwei-Faktor-Authentifizierung.
Wie Kundenportal-Links Ablaufen
Ein Portallink ist standardmäßig 30 Tage gültig, prüft das Ablaufdatum bei jeder Anfrage statt im Voraus, und ordnet die Dokumente eines Kunden über einen exakten Abgleich zu — nicht über einen Fremdschlüssel.