cmeyer
Goto Top

In Faxdruck eingebettete Empfängernummer wird nicht mehr erkannt

Das Problem tritt ausschließlich mit FaxMaker auf.

In einer älteren Version unserer Software, erstellt mit VB6, wurde die Faxnummer des Empfängers als Text mit
dok.Dest.Print "@@Nummer 0888999999"
in den Druck eingebettet und wurde auch erkannt.

Unter VB.NET wird das ganze jetzt im Prinzip genauso gemacht aber die Nummer wird nicht mehr erkannt.
Eingebettet wird der Text mit
e.Graphics.DrawString("@@Nummer 0888999999")

Hat jemand einen Tip?

Content-Key: 422057

Url: https://administrator.de/contentid/422057

Printed on: April 26, 2024 at 03:04 o'clock

Member: erikro
erikro Feb 26, 2019 at 08:10:22 (UTC)
Goto Top
Zitat von @CMeyer:
Hat jemand einen Tip?

Ja! Wer höflich grüßt, einen nettes Wort zum Abschied hat und das Problem gut beschreibt, hat auch eine Chance auf eine hilfreiche Antwort. face-wink
Member: CMeyer
CMeyer Feb 26, 2019 at 08:41:15 (UTC)
Goto Top
Moin erikro,
Danke für den hilfreichen Kommentar, ich werde deinen Rat in Zukunft sicher beherzigen. Du dann auch?
Das Problem ist m. E. für jeden, der den Effekt schon erlebt hat oder sich allgemein mit dem Drucken unter VB6/VB.NET auskennt, ausreichend beschrieben.
Viele Grüße
CMeyer
Member: rana-mp
rana-mp Feb 26, 2019 at 09:46:28 (UTC)
Goto Top
Moin,

Nur eine Vermutung, kenne mich explizit nicht mit VB (weder 6 noch .NET) aus.

Aber diese .NET funktion macht mich dahingehend stutzig, als dass das so aussieht als ob diese den angegebenen String in das Ausgabedokument "zeichnet". Das wuerde dann natuerlich erfordern, dass FaxMaker tatsaechlich OCR benutzen muesste um das zu erkennen. Vielleicht ist das ein Ansatzpunkt.

Leider fehlen Infos zu Dateitypen und Objekttypen (was ist "e" im .NET Beispiel, was ist dok im VB6 Beispiel)


Gruss,

rana-mp
Member: CMeyer
CMeyer Feb 26, 2019 at 13:31:46 (UTC)
Goto Top
Moin rana-mp,

Das ist richtig, im .NET Basic wird immer in den "Graphics"-Bereich eines "Ausgabegeräts" geschrieben. Hierfür stehen diverse Methoden zur Verügung - unter anderem .Graphics.Drawstring("<Text>", Font, Brush, x, y), die in einer PrintPage-Prozedur ausgewertet und ausgeführt werden.

Ein kleines Beispiel (nicht lauffähig aber es verdeutlicht den Prozess):

    Dim myDoc As New System.Drawing.Printing.PrintDocument()
    myDoc.DocumentName = "Dokumentenname"  
    Dim myPageCounter As Long = 0

    'auf myDoc wird jetzt ein handler erzeugt, der die myPrintPage-prozedur steuert.   
    AddHandler myDoc.PrintPage, AddressOf MyPrintPage

    'druck  
    myDoc.Print()

    ...


    Private Sub myPrintPage(ByVal sender As System.Object, _
                            ByVal e As System.Drawing.Printing.PrintPageEventArgs)
        Dim tBrush = New SolidBrush(Color.Black)
        Dim tFont As Font = New Font("Arial", 10)  

        myPageCounter += 1

        e.Graphics.PageUnit = GraphicsUnit.Millimeter

        Select Case myPageCounter
            Case 1:
                'erste seite  
                e.Graphics.DrawString ("Seite 1", tFont, tBrush, 100, 100)  
                e.HasMorePages = True

            Case 2:
                'zweite seite  
                e.Graphics.DrawString ("Seite 2", tFont, tBrush, 100, 100)  
                e.HasMorePages = False

        End Select
        myPageCounter = 0
    End Sub


Einen anderen Weg des Druckens scheint es nicht zu geben, zumindest habe ich bisher keinen gefunden.
Danke für dein Interesse.

Gruß
CMeyer
Member: rana-mp
Solution rana-mp Feb 26, 2019 at 14:07:12 (UTC)
Goto Top
Ok, also "druckst" du direkt auf den Fax Drucker, ohne dass da noch irgendein zwischenschritt ablaeuft.

Ich wuerd meinen Hintern drauf verwenden, dass wenn du bei beiden Variationen den Druck in eine Datei umlenkst, beim alten Skript in der Datei der Empfaenger im Klartext als String drin steht.
Bei diesem .NET snippet, insbesondere weil du auch einen Font angibst, wird da vermutlich ein "Bild" draus gemacht.

Ich gehe davon aus dass ihr den NetPrintQueue2Fax Treiber verwendet?
Laut https://support.gfi.com/hc/en-us/articles/360012850474-Which-types-of-do ... unterstuetzt der nur eine relative kleine Anzahl an Dateitypen. Ich vermute dass es, jenachdem wie komplex die Formatierung ist, moeglich sein sollte, ein entsprechendes Dokument zu "bauen" und es dann zu drucken.
Ich hab das vor ewigkeiten mal mit c# machen muessen. DOC(X) wird nur mit installiertem Office funktionieren, aber RTF sollte so gehen.
Member: CMeyer
CMeyer Feb 27, 2019 at 05:51:34 (UTC)
Goto Top
Moin rana-mp,
ich sehe es genauso wie du. Es wird wohl darauf hinauslaufen, dass wir die zu faxenden Dokumente in eine Spool stellen und von einer anderen (VB6) Software faxen lassen. Das ist zwar keine schöne aber mit Abstand die Lösung, die den wenigsten Aufwand erfordert. Irgendwann wird die Faxsoftware ja vielleicht ertüchtigt auch mit .NET Druckfunktionen zusammen zu arbeiten. In einer sehr heterogenen Softwarelandschaft ist Faxmaker jedenfalls die einzige mir bekannte Software, die in diesem Punkt nicht funktioniert face-sad

Danke für deine Unterstützung und bis vielleicht ein andermal.
Viele Grüße
CMeyer
Member: rana-mp
rana-mp Feb 27, 2019 at 07:50:11 (UTC)
Goto Top
Najaaa, ich wuerde das Problem jetzt nicht primaer beim FaxMaker sehen, sondern halt in der Art und Weise wie unter VB.NET die Druckdatei erstellt wird.
Vielleicht ist das ein brauchbaerer Hinweis:
https://www.daniweb.com/programming/software-development/threads/478853/ ...

So kann man wohl unter VB.NET recht einfach eine DOC Datei editieren. Der FaxMaker Drucker sollte den @@Steuerstring auch wieder aus dem Dokument herausfiltern.