Adobe Acrobat Reader meldet Grafikfehler beim Drucken

Ein merkwürdiges Problem bzgl. dem Drucken aus dem Adobe Acrobat Reader in Kombination mit dem HP PCL6-Treiber trat heute auf. Ob dies etwas mit dem verwendeten Treiber zu tun hat weiß ich nicht, aber da ich es nicht mit einem anderen Treiber ausprobiert habe erwähne ich diesen.

Beim Versuch eine kleine PDF-Datei (ein eingescanntes Dokument) auszudrucken, passierte eine ganze Zeit lang gar nichts und der Druckdialog blieb bei 0% stehen. Nach gefühlt mehreren Minuten kommt dann die Meldung, dass ein Grafikfehler aufgetreten ist:

Vermutlich lässt sich dieses Problem durch einen, meiner Meinung nach, besseren PDF Reader wie den PDF-Xchange-Viewer direkt umgehen. Seitdem ich diesen benutze, ist das Benutzen von PDF’s sowieso einfacher geworden, da der Adobe Reader doch in seinen Funktionen recht „beschnitten“ ist im Vergleich zu anderen Tools.

Das Problem im Adobe Reader ließ sich aber durch eine Einstellungsänderung umgehen. Dazu setzt man unter den „Erweiterten Druckereinstellungen“ den Haken bei „Als Bild drucken“:

Meine Vermutung ist, dass irgendeine Formatierung, vielleicht auch durch etwas dass der Scanner in die Datei geschrieben wurde, bei der Umsetzung durch den Druckertreiber zu dem Problem führt. Was dies bei dem vorliegenden PDF gewesen sein kann ist mir zwar nicht ganz verständlich, da in dem eingescannten Dokument ja sowieso nur Bilder enthalten sind, aber es hat geholfen.

 

Aufpassen wo man eine .htaccess-Datei ablegt

Vor einiger Zeit habe ich Änderungen an einer .htaccess-Datei und diese immer direkt auf den Webspace geladen um die Auswirkungen zu testen. Dafür habe ich mir anfangs die .htaccess-Datei im aktuellen Stand heruntergeladen und auf mein Projekt-Laufwerk gelegt, also einfach ins Stammverzeichnis. Auf diesem Laufwerk lagern auch die Ordner, die im lokalen Apache von Xampp laufen. Wie es der Zufall so will, habe ich an diesen Projekten danach ein paar Tage nicht lokal gearbeitet. Als ich dann weiterarbeiten wollte, ließ sich keines meiner Webprojekte aufrufen. Stattdessen gab es solche 404 oder 500er Fehlermeldungen:

Ich habe dann verzweifelt in den .htaccess-Dateien meiner Webprojekte nach Fehlern gesucht bzw. nach einem Fehler in der Apache- oder Xampp-Konfiguration. Leider kam mir erst nach einiger verschwendeter Zeit in den Sinn, was ich ein paar Tage zuvor gemacht hatte. Kaum hatte ich die .htaccess-Datei im Stammverzeichnis wieder gelöscht, lief wieder alles. Es war mir bis dahin gar nicht bewusst, dass eine .htaccess-Datei in einem übergeordneten Ordner berücksichtigt wird, auch wenn dieser sich ja eigentlich außerhalb des Projektpfades, der in der httpd-vhosts.conf angegeben ist, befindet.

Word Press: Cannot modify header information – headers already sent

Nach dem Umzug eines Word Press-Blogs auf den Webspace bei All-Inkl gab es beim Versuch den Blog aufzurufen nur noch folgende Fehlermeldung:

In den beiden Dateien war nichts auffälliges zu finden. Wie schon desöfteren war die Datei-Kodierung das Problem. Dieses Kodierungsproblem muss beim Download und beim anschließenden neuen Upload mit Filezilla entstanden sein.

Die Dateien im Format UTF8 ohne BOM abspeichern. Dies geht z. B. in Notepad++:

Man findet auch einige Beiträge zu diesem Problem:
https://wordpress.org/support/topic/locked-out-cannot-modify-header-information/page/2/

Realtek – Internen Speaker nutzen

Manchmal kann es vorkommen, dass man statt der angeschlossenen Anlage den internen Speaker des Rechners nutzen möchte. Bei meiner HP Z210 Workstation hat dieser einen recht brauchbaren Sound, falls man sich damit beispielsweise nur Tutorials bei Youtube oder Ähnliches anhört. Allerdings ist dieser automatisch deaktiviert wenn der Treiber ein angeschlossenes Gerät an einem Ausgang erkannt hat. Nun müsste man das Klinkenkabel abziehen, damit der Treiber auf den Speaker wechselt.

Dies kann man aber auch durch einen einfachen Trick erreichen, zumindest bei Realtek-Audio-Chips. Man öffnet hierzu den Audio Manager und ändert den Anschlusstyp von „Lautsprecherausgabe“ auf „Audioeingang“. Dadurch erreicht man dasgleiche wie durch das Ausstecken des Kabels.

Das Schlecht-Sein, dass sich Monopole herausnehmen

Was ein Glück für die Deutsche Post, dass nur Sie Briefmarken druckt und (online) verkauft. Vor einiger Zeit, mittlerweile vor mehreren Jahre, konnte man Briefmarken zum Ausdrucken direkt bei der Deutschen Post auf der normalen Webseite kaufen und mit PayPal bezahlen. Dann wurde diese Möglichkeit irgendwann abgeschafft und man muss seit dem den Umweg über den Dienst „Paypost“ der Post gehen. Was ist das? Eigentlich nichts weiteres als eine unnütze Zwischenebene. Denn bei Postpay hinterlegt man seinen PayPal-Account, bei der Post-Seite hinterlegt bzw. wählt man seinen Postpay-Account. Was soll das? Und jetzt wollte ich mal wieder eine Briefmarke drucken und sehe seit gestern bei dem Versuch zu zahlen nur folgende Meldung:

Das können sich auch nur Monopole erlauben. Jeder andere Webshop-Betreiber wäre jetzt schon von der Konkurrenz platt gewalzt worden.

Plötzlich Annex J

Die Telekom ist schon ein merkwürdiger Verein. Da erzählt man uns fast 3 Jahre lang, dass bei uns kein Annex J schaltbar ist und das auch nie der Fall sein wird und dann das: Vergangene Woche war plötzlich der Router offline und konnte sich eine Zeit lang nicht verbinden. Danach schien alles wie zuvor. Nichts ungewöhnliches also. Heute fiel mir beim Upload einiger größerer Dateien auf, dass wir plötzlich mit 2,7 MBit/s hochladen. Also habe ich mal einen Blick auf die FritzBox gewagt und folgendes entdeckt:

Tja, was soll man sagen. Auf der einen Seite finde ich das super, aber ist es nicht möglich Kunden über so eine Umrüstung zu informieren? Was wäre eigentlich wenn wir keinen Annex J-fähigen Router an dem Anschluss hätten? Leitung tot und keine Ahnung warum? Super Service. Kann man mit dem Kunden nicht kommunizieren? Es würde mich nicht wundern, wenn das schon von Anfang an möglich gewesen wäre. Wahrscheinlich gehen auch 50 MBit/s Download, obwohl hier ja angeblich gar keine Leitung frei ist und wir sowieso nur LTE buchen können.

Port Forwarding unter Windows

Für die Freigabe bestimmter Dienste, wie z. B. einen Webserver hinter einer Firewall, wird eine Weiterleitung der Ports von der öffentlichen IP an die interne IP des Servers benötigt. In diesem Fall vermutlich die Ports 80 und 443. Diese typische Aufgabe des Port Forwardings übernimmt normalerweise ein Router bzw. eine Firewall. Mithilfe des Kommandozeilen-Tools netsh lässt sich eine entsprechende Regel aber sogar unter Windows anlegen. Somit lässt sich ein beliebiger Port unter der IP-Adresse des Windows-Rechners an einen belieibigen Port eines anderen Gerätes weiterleiten.

Hierzu legt man eine Portproxy-Regel in einer administrativen CMD-Konsole an:

In diesem Beispiel würde auf dem Computer, der über eine Netzwerkschnittstelle mit der IP 192.168.0.1 verfügt, jeglicher Traffic der an den Port 9091 geht stur an das Gerät mit der IP 192.168.0.10 an den Port 80 geschickt werden. Somit würde also die Eingabe der Adresse http://192.168.0.1:9091 in einem Browser die gleiche Seite anzeigen, die unter der http://192.168.0.10 angezeigt wird. Lässt man den Parameter listenaddress einfach weg, wird der Port unter allen auf dem Rechner verfügbaren IP-Adressen weitergeleitet.

Unter Windows XP funktioniert dies übrigens nur, wenn das IPv6-Protokoll installiert ist. Die Regel lässt sich zwar auch ohne IPv6 anlegen, funktioniert dann aber nicht.

IPv6 lässt sich mit folgendem Befehl installieren:

Nach der Installation ist kein Neustart nötig. Lediglich falls man IPv6 mit dem Bfehel uninstall wieder deinstalliert muss man danach den Computer neu starten.

Die angelegten Regeln bleiben dauerhaft bestehen und verschwinden nicht nach einem Neustart.
Diese lassen sich aber mit einem delete-Befehl wieder entfernen:

Wo kann man dies sinnvoll einsetzen? Besonders praktisch ist dies hinter einem VPN, wenn der VPN-Tunnel nicht durch den Router sondern auf einem Windows-PC aufgebaut wird und man aber eine direkte Verbindung zu weiteren Geräten im Netzwerk benötigt. Dies kann z. B. der Fall sein, wenn man über Standorte verfügt die über OpenVPN angebunden sind. So kann man über den Rechner beispielsweise auch auf den Router vor Ort zugreifen, ohne dass man sich auf den Rechner per Fernwartungs-Tool aufschalten muss.

Bild in beliebiger Größe aus Paint.Net ausdrucken

Für eine einfache Bildbearbeitung reicht auch die Freeware Paint.Net aus. In Bezug auf die Größeneinstellungen eines Bildes hat man hier mehr oder weniger die gleichen Einstellungsmöglichkeiten wie in Photshop.

Allerdings stößt man auf ein Problem, wenn man eine Grafik in einer bestimmten Größe ausdrucken möchte. In Paint.Net kann man zwar eine beliebige cm-Angabe für die Breite und Höhe machen, jedoch wird beim Versuch zu drucken der Windows-Druckassistent geöffnet. Bei diesem hat man allerdings eine begrenzte Auswahl an Formaten (z. B. 25 x 20 cm) aus denen man wählen muss. Das Bild wird dann auf dieses Format skaliert. Wenn man also eine Grafik in der Größe 2 x 2 cm drucken möchte, ist man hiermit ziemlich aufgeschmissen.

Die einzige Lösung, die ich für mich gefunden habe: Ein neues leeres Bild in einem Format, in welchem man auch drucken kann, z. B. 25 x 20 cm zu erstellen. Dieses muss die gleiche Auflösung wie das zu druckende Bild haben, z. B. 90 Pixel per Inch. Dann kopiert man das zu druckende Bild in dieses neue leere Bild rein, sodass man ziemlich viel weiße Fläche hat. Voila, wenn man dieses nun druckt, passt es zur vorgegebenen Druckgröße und die Grafik wird darauf in der gewünschten Größe gedruckt.

Synchroner Kalender mittels CalDAV-Protokoll

Wenn man einen zwischen verschiedenen Systemen synchronisierten Kalender nutzen möchte, ohne dabei manuell eingreifen zu müssen und ohne Google dafür zu nutzen, bleibt einem fast nur einen CalDAV-basierten Kalender zu nutzen.

Bei All-Inkl wird einem dieser Service angeboten. Da unser Webspace bei All-Inkl gebucht ist, habe ich mich dafür entschieden, den Kalender auch dort zu „hosten“. Unter welchem Mail-Konto bzw. welcher Domain man diesen anlegt, ist eigentlich fast zu vernachlässigen, denn man benutzt diesen durch das CalDAV-Protokoll sowieso losgelöst vom zugehörigen Mail-Konto. Lediglich wenn man sich oft im WebMail-Backend des Anbieters einloggt und dort den Kalender benutzt macht es Sinn diesen bei einem bestimmten Mail-Konto zu hinterlegen.

Bei All-Inkl bekommt man die nötigen CalDAV-Zugangsdaten dann ganz einfach im Mail-Konto über das Kontextmenü eines Kalenders:

   

In Thunderbird ist der Kalender sehr einfach einzubinden. Hierzu gibt es sogar eine Anleitung bei All-Inkl, weshalb ich darauf an dieser Stelle nicht weiter eingehe. Da ich privat nur Thunderbird nutze habe ich mich mit keinem anderen E-Mail-Client beschäftigt.

Etwas trickreicher wird es unter Android, da hier keine direkte Einbindung in der Kalender-App möglich ist. Vermutlich, weil es Google auch nicht gefällt, wenn man den Google-Dienst für diese Aufgabe nicht verwenden möchte 😀

Read more

Trick um alte Software auf einem Terminalserver zum Laufen zu bringen

Ab und zu benötigt man ein älteres Programm, in diesem Fall eine alte Warenwirtschaft, auch in einer Terminalserver-Umgebung. Da das Setup sich nicht vernünftig auf dem Terminalserver ausführen ließ und unvollständig abgeschlossen wurde, habe ich den Programm-Ordner einfach von einem anderen Rechner über die Installation kopiert. Ein paar Anwendungen liefen, aber leider nicht alle.

Sofern das Programm keine weiteren Registry-Einträge verlangt und, wie in meinem Fall, lediglich das Fehlen einzelner DLL-Dateien anmeckert, kann aber folgender einfacher Trick helfen: Einfach in dem Programmverzeichnis nach DLL-Dateien suchen und diese alle in das Verzeichnis mit den betroffenen EXE-Dateien kopieren. Eventuell hat man diese dadurch zwar x-mal in den Verzeichnissen liegen, aber die Dateien müssen so nicht korrekt im System registriert sein, sondern werden vom betroffenen Programm direkt gefunden.

Alternativ kann man sich natürlich auch die Mühe machen alle Dateien mit dem regsvr32-Befehl zu registrieren.