HTML- Dokument aus C heraus drucken

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • HTML- Dokument aus C heraus drucken

    Hallo zusammen,

    und herzlichen dank schonmal fürs "Reinlesen".
    Kurz zu mir: ich heisse Matthias, bin 29, und kurz vor dem Abgang an der FH- Regensburg- wird aber noch ein paar Monate dauern. Im Rahmen meines Mechatronik- Studiums hab ich zwei Semester C und ein Semester C++- Programmierung hinter mich gebracht, und die vor allem im C- Kurs erarbeiteten Grundlagen auch schon bei der Mikrocontroller- Programmierung (ATMEGAs) ohne allzu große Schwierigkeiten eingesetzt.
    Seitdem bin ich mit der Idee "ein bisschen was kannst schon" durch die Gegend gerannt, aber seit ein paar Tagen merke ich, dass ich nichtmal den Lack an der Oberfläche ankratzen kann :D.

    Zum konkreten "Problem":
    Ich soll im Rahmen meiner Semester- Arbeitsstelle ein kleines Programm schreiben, das folgende Aufgaben haben soll:
    - Einen Ordner auf Vorhandensein einer HTML- Datei prüfen
    - Wenn Datei vorhanden, dann:
    -> Datei ausdrucken
    -> Datei in Log- Ordner wegsichern
    -> Datei im Eingangsordner löschen

    Das mit dem "Vorhandsein" hab ich schonmal im Griff, denke ich. Ich mache das über fopen(), und wenn der handle != NULL ist, soll die Datei mit
    ShellExecute(NULL,TEXT("print"), TEXT("test.html"), NULL, NULL, SW_SHOW);
    ausgedruckt werden.

    Soweit rennt das schonmal.
    Dumm ist nur, dass der Rechner immer den Druckerdialog öffnet, wo ich dann auf "Drucken" klicken muss, damit er die Datei am Standartdrucker ausgibt.
    Weiss jemand von euch, ob und wie ich das umgehen kann? Wäre echt super :)
    Ich verwende Visual Studio 2005 und C, weil ich mich da einfach wohler fühle...

    Dann hab ich noch ein paar Fragen, was mein weiteres Vorgehen betrifft.
    Mir macht Programmieren Spaß, sowohl auf der µC, als auch auf der SPS- und PC- Ebene.
    Mit µC und SPS hab ich mich schon bisschen rumgeschlagen, und weiss mir zu helfen, bei PC bin ich noch ein kompletter Depp.
    Könnt ihr mir da ein paar "Richtungstipps" geben, was GUIs, C++ und Windows- Shell- Literatur/ Tutorials/ Anregungen betrifft? Ich steh da ziemlich im Wald, und weiss mir eben noch nicht selbst zu helfen...

    So. Das wars dann mal fürs erste, freue mich auf konstruktiv- kritische Antworten, aber bitte nicht vergessen, dass ihr es mit einem Anfänger zu tun habt, der ausser Halbwissen und gutem Willen noch nicht viel vorzuweisen hat :D

    Grüße,
    Matthias
  • Hallo Leute,

    danke für eure Antworten, und sorry für das lange Delay bis ich mich wieder zu Wort melde- aber hab mich am WE mal spontan dazu entschlossen, mich mit ner Lebensmittelvergiftung ins Bett zu legen ;).

    @donut:
    Ich hab dir mal nen Screenshot angehängt, wie das Fenster aussieht das sich öffnet. Als Standart- Drucker hab ich den "Drucker Elektronik" angegeben, wenn ich dann mit "Drucken" bestätige, spuckt der auch die test.html aus. Als Default- Browser ist bei mir der Firefox eingestellt, jetzt habe ich gerade auf deine Anfrage hin festgestellt, dass der auf dem Screenshot abgebildete Druckdialog aus dem IE kommt. Für den Firefox hab ich bereits ein Plugin Runtergeladen, welches beim Drucken den Dialog überspringt (Einstellbar).

    @bbc-fan:
    In Sachen der Tools bin ich frei. Bin gerade dabei mich in .NET einzulesen, und das Ganze auf C++ aufzuziehen. Keine Ahnung, ob das Sinn macht, oder ob ich da mit Kanonen auf Spatzen schiesse- nur ist mir halt bisher noch nix besseres eingefallen...

    Kann ich mit ShellExecute- oder irgendwie anders- explizit das Programm festlegen, dass zum Öffnen verwendet werden soll? Oder weiss jemand, wie ich dem IE 8 den Druckdialog überspringen kann? Dann könnte ich mir das C++- Zeug sparen, wobei ich am WE beim Durchlesen der Schritt Für- Schritt Anleitung von MS fast bisschen Blut geleckt hab, was man damit alles machen kann :D.

    Ich hab euch auch mal meinen noch auf Versuchsbasis bereits existenten Quelltext angehängt, der Vollständigkeit halber. Ist auf Basis eines Beispiels entstanden, deswegen die Umwege, die ich auf Grund des "Experimentalstadiums" noch nicht eliminert habe:

    Quellcode

    1. #include <stdio.h>
    2. #include <windows.h>
    3. #include <shellapi.h>
    4. /* fileopen.c
    5. Zeigt die fopen() Funktion. */
    6. #include <stdio.h>
    7. int main(void)
    8. {
    9. FILE *fp;
    10. char ch, filename[] = "test.html", mode[] = "r";
    11. char *charptr;
    12. while (1)
    13. {
    14. /* Input filename and mode. */
    15. //printf("\nEnter a filename: ");
    16. //gets(filename);
    17. // filename = "test.html";
    18. //mode = "r";
    19. //charptr = &filename;
    20. //printf("\nEnter a mode (max 3 characters): ");
    21. //gets(mode);
    22. /* Try to open the file. */
    23. if ((fp = fopen( filename, mode )) != NULL )
    24. {
    25. ShellExecute(NULL,TEXT("print"), TEXT("test.html"), NULL, NULL, SW_SHOW);
    26. printf("\nSuccessful opening %s in mode %s.\n",filename, mode);
    27. //getchar();
    28. fclose(fp);
    29. puts("Enter x to exit, any other to continue.");
    30. if ((ch = getc(stdin)) == 'x')
    31. break;
    32. else
    33. continue;
    34. }
    35. else
    36. {
    37. fprintf(stderr, "\nError opening file %s in mode %s.\n", filename, mode);
    38. puts("Enter x to exit, any other to try again.");
    39. if ((ch = getc(stdin)) == 'x')
    40. break;
    41. else
    42. continue;
    43. }
    44. }
    45. return 0;
    46. }
    Alles anzeigen


    Grüße,
    Matthias
    Bilder
    • screenshot_printing.JPG

      100,46 kB, 1.119×614, 384 mal angesehen