Fragensteller
Druckfehler: Illegal characters in path.

Allgemeine Diskussion
-
Hallo ,
wie schon vom Titel her zu erkennen ist, habe ich Probleme beim Ausdrucken. Das Problem besteht jedoch nur auf vereinzelten Rechnern, bei ca. 1 von 50 PCs funktioniert es nicht.
Dort hilft nur die Neuinstallation des Systems, auch ein reinstallieren des .Net – Frameworks will nicht helfen.
Vielleicht kennt einer das Problem oder eine alternative Druckmöglichkeit.
Ich möchte ein FlowDocument ausdrucken und verwende dazu den PrintDialog von Microsoft, welcher jedoch die Fehlermeldung „Illegal characters in path.“ ausspuckt.
Bei der Funktion „CloneFlow” handelt es sich um eine von mir entwickelte Lösung, welche einfach nur eine Kopie des FlowDocument erzeugt, da sonst nach dem Druckvorgang das FlowDocument verändert wäre.
Der Fehler tritt hier auf:
at System.IO.Path.CheckInvalidPathChars(String path)
at System.IO.Path.Combine(String path1, String path2)Dim PrintDlg As New PrintDialog If PrintDlg.ShowDialog = True Then 'Kopie des Flowdocuments anlegen, so dass die Ansicht nicht verändert wird. Dim FlowD As New FlowDocument FlowD = CloneFlow(Me.Document) With FlowD .ColumnGap = 0 .PageHeight = PrintDlg.PrintableAreaHeight .PageWidth = PrintDlg.PrintableAreaWidth .ColumnWidth = PrintDlg.PrintableAreaWidth .PagePadding = New Thickness(Me._RandLinks, Me._RandOben, Me._RandRechts, _ Me._RandUnten) End With Dim PageSize As Size = New Size(PrintDlg.PrintableAreaWidth, _ PrintDlg.PrintableAreaHeight) Dim PaginatorSource As IDocumentPaginatorSource = FlowD PrintDlg.PrintDocument(PaginatorSource.DocumentPaginator, Me.Title) End If
Ich kann auch die komplette Exception geben, die steht in einer log. :DIch hoffe, dass einer weiterhelfen kann.
- Typ geändert Robert BreitenhoferModerator Dienstag, 12. Juli 2011 15:52 Keine Rückmeldung des Fragenstellender
Alle Antworten
-
Hallo,
ja, die komplette Exception (bitte die inneren Exceptions nicht vergessen) wären durchaus hilfreich. Tritt der Fehler nur bei bestimmten Windows Versionen auf, oder ist das querbeet?
Viele Grüße
Holger M. Rößler
Kaum macht man es richtig, schon funktioniert es -
Hallo,
das Problem tritt bei unserer Applikation auch auf. Ich konnte das Problem auf ungültige Einträge in der Registry, genauer in den Fonts.
Es sieht so aus, dass PrintDialog.PrintDocument erst eine Liste von Fonts anlegt und wenn diese ungültige Werte enthält mit einer Fehlermeldung abbricht.
Abschnitt der Inner-Exeption:
InnerException:
===============
Message: Illegal characters in path.
Source: mscorlib
StackTrace: at System.IO.Path.CheckInvalidPathChars(String path)
at System.IO.Path.Combine(String path1, String path2)
at Microsoft.Internal.GDIExporter.BuildFontList(String fontdir)
at Microsoft.Internal.GDIExporter.CGDIDevice.CheckFont(GlyphTypeface typeface, String name)
at Microsoft.Internal.GDIExporter.CGDIRenderTarget.CreateFontW(GlyphRun pGlyphRun, Double fontSize, Double scaleY)
at Microsoft.Internal.GDIExporter.CGDIRenderTarget.RenderTextThroughGDI(GlyphRun pGlyphRun, Brush pBrush)
at Microsoft.Internal.GDIExporter.CGDIRenderTarget.DrawGlyphRun(Brush pBrush, GlyphRun glyphRun)Wird der fehlerhafte Eintrag berichtigt oder gelöscht funktioniert das Drucken.
Gibt es eine Möglichkeit, dass PrintDialog.PrintDocument fehlerhafte Einträge ignoriert? Es kann ja nicht sein, dass das Drucken abbricht, nur weil irgendwo ein fehlerhafter Font-Eintrag existiert.
Mfg
Christian Güth