Fehler bei Sonderzeichen im Dokument-Titel (insbesondere: | Pipes)

Hi,

Folgender Fehler tritt seit Version 0.9.8 immer wieder auf und ist auch noch in 1.1.0. genauso vorhanden:

Wenn ich aus Opera heraus bestimmte Webseiten per PDFCreator speichern will, passiert manchmal folgendes:

Der PDF-Creator Dialog erscheint Erwartungsgemäß, ich drücke "Speichern", dann passiert erstmal nichts (Erwartet: Der Speichern-Diaglog öffnet sich).

Mit dem Taskmanager lässt sich dann beobachten: 

  • Die Speicherauslastung fährt kontinuierlich auf Maximum
  • PDFcreator verursacht die ganze Zeit hohe CPU-Last
  • Irgendwann kommt eine Fehlermeldung: "Program Error. Free some Memory." (oder ähnlich) Leider kann ich nicht feststellen, ob es Windows, PDFCreator oder Opera ist, die diese Meldung ausgeben. 
  • Reagiert man dann nicht (z.B. über PDF-Creator Task beenden), hängt sich das System auf und nur ein Hard-Reset hilft (schlecht, wenn man noch offene Dateien hat...).

 

Nach viel herumtesten konnte ich folgende Fehlerquelle ausmachen:

  • Wenn der Dokumententitel der Webseite Sonderzeichen enthält, die als Dateiname eigentlich nicht erlaubt sind, also | \\ / " ? * < > : tritt dieser Fehler auf. Besonders das Pipe-Symbol als beliebtes Trennzeichen in Dokumententiteln macht hier Probleme (z.B. auch hier im Forum, wenn man versucht die Seite zu drucken).
  • Wenn man im PDF-Creator-Dialog unter "Dokumententitel" von Hand diese Zeichen durch andere ersetzt (bspw. die Pipes durch Minus), ändert sich nichts am beschriebenen Fehlverhalten. Anscheinend wird der Dokumententiel aus dem Dialog nicht berücksichtigt für den Dateinamen (und das obwohl man den Dateinamen im eigentlich noch kommenden Save-Dialog ja erst festlegen müsste... o_O)
  • Wenn man in den Options als Default Dateiname statt den auswählt, tritt der Fehler nicht auf. Die Sonderzeichen werden dann durch '_' (Underscores) ersetzt, und auch schon im PDF-Creator Dialog so angezeigt.

 

Zweiter Bug in diesem Zusammenhang:

Eigentlich hätte ich gerne, dass die Pipes als Minus dargestellt werden, daher habe ich mit der "Filename Substitution" von PDF-Creator herumgespielt:

  • Wenn man unter "Filename Substitution" eine Regel aufstellt "|" = "-" (also Pipes durch Minus ersetzen; jeweils ohne Anführungsstriche eingegeben) und die Options mit "Speichern" verlässt, danach die Options wieder öffnet, ist die Regel verschwunden.
  • Wenn man eine Regel erstellt "\\|"="-" (also mit Backslash vor dem Minus) und nach dem verlassen der Options mit "Speichern" versucht eine Datei zu drucken, erscheint der PDF-Creator Error/Debug-Screen und meldet einen Fehler im "mod_PDF Zeile 58" in der Methode "replace_substr" (oder so ähnlich). Erst nach mehrmaligen drücken von Exit Procedure, läuft PDF-Creator augenscheinlich "normal", der Druck-Dialog erscheint und man kann von dort wieder in die Options (nach weiteren "Exit Procedure" Klicks). Wenn man sich dann die Substitutionsregeln ansieht, ist die vorher erstellte Regel wieder verschwunden...

Es sieht also so aus, als würde die Substitutions-Routine mit Sonderzeichen nicht klar kommen. Oder genauer: mit dem Pipe Symbol und wahrscheinlich Backslashes (die ja programmierseitig als Escape-Symbol dienen). Ein Gegen-Test mit Ersetzungsregeln für '<' und '>' in Minuszeichen verlief problemlos.

 

Hoffe das hilft, um den Bugs auf die Schliche zu kommen. 


Es wundert mich ein bisschen, dass hier im Forum ähnliche Probleme noch nicht berichtet wurden... oder ich habe nicht genau genug gesucht ;) In dem Fall: Sorry.