Ausgabe von *.prn Dateien



  • Hallo,

    beim drucken kann man den Druck in eine Datei umleiten.
    Soweit so gut, und wie bekomme ich diese Datei in den Drucker ?
    Das gleiche gilt für *.plo (Plotter HPGL2 Dateien).
    Diese möchte ich jedoch noch vorher ändern (eine JOB-name einfügen
    und die Anzahl der Plots einstellen).
    Am einfachsten währe es, wenn es irgendwo einen Stream gäbe, wo man
    die Dateien reinquetscht.

    Danke, und nen schönen freien Tag.

    Mario 🙂

    [ Dieser Beitrag wurde am 03.10.2002 um 19:42 Uhr von Mario Rosenbohm editiert. ]



  • Hallo!

    Die prn-Dateien bekommst du mit der Anweisung
    copy datei.prn prn auf zum Drucker.
    Natuerlich nur zu dem Drucker dessen Treiber beim Erstellen der Datei verwendet wurde bzw. zu einem kompatiblen Drucker.

    Die HP-Plotter mit denen ich bereist gearbeite habe hatten serielle ANschlüsse.
    Da dürfte die Methode scheitern. Bei parallel angeschlossenen GEräten geht es genauso.
    Die Plotter-Dateien können in der Regel aber auch von Corel-Draw und einigen anderen Programmen importiert werden.
    Die Dateien zu verändern kannst du wohl vergessen.
    Die Zahl der Kopien regelt das Betriebssystem, die Dateien enthalten nur die Anweisungen wie die Ausgabe auf dem Papier erfolgen.
    Um ein Dokument 3 mal zu drucken musst du es 3 mal zum Drucker kopieren.

    MfG
    Christoph Reimer



  • Hi Christoph,

    Problem, alle Drucker und Plotter stehen im Netz.
    Zur Zeit sind noch Captures (lpt3, ...) auf die
    Druckerwarteschlangen (Novel) eingerichtet.
    Diese werden spätestens mit der nächten Version
    von Novell rausgeschmissen (Ankündigung vom Admin).
    Bis dahin müssen wir einen anderen Weg finden.
    Bisher habe ich einfach die *prn Dateien auf die
    LPT?: kopiert, das geht dann nicht mehr.
    Die Anzahl der *plo Dateien kann man am der Datei
    der Datei einstellen (ich glaube "rpl 2" oder so
    ähnlich "is im Betrieb aufm Computer"). Natürlich nur,
    wenn die *plo Datei eine reine HPGL-Datei ist.
    Trotzdem muss es doch eine Möglichkeit geben, solche
    Dateien binär in die Warteschlangen zu bekommen. 😞

    tschau ..
    Mario 🕶



  • es gibt noch eine möglichkeit wie ich es mal gemacht habe.
    nicht auf die lpt schnittstelle zu kopieren sondern gleich auf den
    Netzwerkpfad des druckers (war auch novell-druckerverwaltung)

    copy datei.prn \\server\blahblahplotter



  • Hallo,

    nun mal weiter zu dem Problem.

    Gibt es eine Möglichkeit, die im Nezwerk vorhandenen Drucker auszulesenn
    damit ich dann eine Adresse :
    \\server\druckername.abteilung.bereich.werk
    z.b.:
    \\KALISALZ\HPDJ1055.MK.G.ZI.KS_GMBH
    heraus bekomme.

    Alle bis auf 1 oder 2 Drucker sind NICHT auf dem Client-Rechner installiert.

    Gruß Mario



  • Hallo,

    ich bins nochmal.

    ich fragte : "Gibt es eine Möglichkeit, die im Nezwerk vorhandenen Drucker auszulesen"

    Ja, schaut mal bei Microsoft die Fuktion etwas umgebaut.

    aus:
    [cpp]
    NETRESOURCE nr;

    nr.dwScope = RESOURCE_GLOBALNET;
    nr.dwType = RESOURCETYPE_DISK;
    nr.dwUsage = RESOURCEUSAGE_CONTAINER;
    nr.lpLocalName = TEXT("");
    nr.lpRemoteName = TEXT("\\\MyServer");
    nr.lpComment = TEXT("");
    nr.lpProvider = TEXT("");

    EnumerateFunc (hwnd, &nr); [/cpp]

    mache

    NETRESOURCE nr;
    
    nr.dwScope = RESOURCE_GLOBALNET;
    nr.dwType = RESOURCETYPE_PRINT;
    nr.dwUsage = RESOURCEUSAGE_CONTAINER;
    nr.lpLocalName = TEXT("");
    nr.lpRemoteName = TEXT("\\\\MyServer");
    nr.lpComment = TEXT("");
    nr.lpProvider = TEXT("");
    
    EnumerateFunc (hwnd, &nr);
    

    und in der "EnumerateFunc"

    [cpp]
    for (dwIndex = 0; dwIndex < dwNumEntries; dwIndex++)
    {
    // Insert code here to perform operations with lpnrLocal
    // for example, to display contents of NETRESOURCE structures.
    // ...
    **// zugriff über

    "Druckername" = lpnrLocal[dwIndex].lpRemoteName;
    **
    // If this NETRESOURCE is a container, call the function
    // recursively.
    if (RESOURCEUSAGE_CONTAINER ==
    (lpnrLocal[dwIndex].dwUsage & RESOURCEUSAGE_CONTAINER))
    [/cpp]

    achso Wichtig ... nicht vergessen:

    #include <winnetwk.h>
    

    ......
    so nun noch die Ausgabe "basteln".

    Gruß und ein schönes Wochenende
    Mario 🕶



  • Hallo,
    nun weiter im Problem "Netzwerkdrucker".

    Jetzt habe ich zwar die Drucker im Netzwerk, aber wie bekomme ich die
    Datei'en in die Warteschlange.
    Ich möchte die datei gern über einen Stream führen, denn dann kann ich
    sie noch manipulieren.
    jedoch weder:

    1. fopen("drucker",wb);
    2. open("drucker",O_WRONLY || O_BINARY);

    mit "drucker" =>

    a) "\\Kalisalz\KS_GMBH\ZI\G\MK\hpdj1055_gmk"
    b) "\\KALISALZ\HPDJ1055.MK.G.ZI.KS_GMBH"

    funktionieren.

    Es wird nichts geöffnet.
    Warum ??

    Gruß Mario 😕


Anmelden zum Antworten