TheJoe.it Into the (öffnen) Quelle

31Mai_Mai_abbreviation/130

Drucken ohne Treiber, mit Datei auf Linux-Servern laden

Vorsicht!

Dieser Artikel wurde in der schriftlichen 2013, es kann in dem Gegenstand einige Entwicklungen haben.
Im Zweifel lassen Sie einen Kommentar in der Unterseite des Artikels.
Dank.

canon-pixma-MP495

Im heutigen Artikel beschäftige ich mich mit dem Druck. Nachdem ich im Vergleich die verschiedenen Anforderungen der Kunden, Ich kam, um die Idee zu theoretisieren, dass der Benutzer (utonto) haben sollte, um alles fertig haben. Weniger Software oder Treiber installiert werden, werden mehr glücklich und weniger tedierà diejenigen, die nichts anderes zu tun haben.

Die Beleuchtung kam zu mir Sichten zwischen den Druckereinstellungen, die wir im Büro haben. In einem der Menüs Ich sehe, dass Sie das PDF hochladen, um auf den internen Speicher des Druckers zu drucken, um automatisch gedruckt. Kein Fahrer (der Drucker ist netzwerkfähig), nichts Besonderes Formatierung, Nur hochladen. Also dachte ich, wäre es nicht schwer sein, die gleiche Sache mit einem Drucker über USB oder serielle Schnittstelle mit einem Computer verbunden zu tun, nicht teilen (dienen Fahrer). In der Tat, es war leicht.

Für das Experiment mit mindestens zwei Rechnern, verbunden über die LAN, von denen einer angeschlossen ist und konfiguriert ist, um lokal drucken (das nennen wir Server). Wir werden das PDF mit dem Server über eine Web-Schnittstelle zu übermitteln, denn es ist mehr intuitive und vertraute Benutzer zuerst. Daher wird der Computer an den Drucker angeschlossen haben, um durch Druck-Server und Web-Server zu tun.

Ein paar Worte über CUPS ...

Tun Sie es für selbstverständlich, dass Sie mit einem Linux-Server um. Für diejenigen, die noch nicht wussten, CUPS Machen Sie eine Tour Su Wikipedia oder auf der offiziellen Website von CUPS Projekt (Common Unix Printing System). Es genügt zu sagen, dass alle Druckaufträge unter Linux (Ich weiß, dass) werden von CUPS verwaltet, ein Druckserver auf Ihrem PC installiert. Jeder. Für die Uneingeweihten, mit CUPS, Drucker und Druckaufträge werden einfach über ein Web-Interface verwaltet. Stecken Sie einfach in die URL-Leiste "http://localhost:631". Von dieser Seite können wir Verwalten von Druckern, Druckaufträge, Installieren oder Entfernen eines Druckers, im Grunde alles, was wir wollen, um den Drucker zu machen, wir können es so gut wie mit den Werkzeugen speziell für jede Distribution entwickelt, auch vom Web-Interface. Dies macht es viel einfacher zu konfigurieren, zum Beispiel, einen Druckserver. Und es ist genau unserem Fall.

Die Druckerverwaltung Fenster

CUPS: das Fenster Drucker Verwaltung

In Bezug auf die Installation von CUPS verweisen wir auf die guida di Ubuntu, ist immer noch der einzige Weg, um mit Linux drucken, dann wird jeder haben CUPS Verteilung innerhalb seiner Repository. Es ist in der Regel standardmäßig in der Distribution enthalten.

Jetzt für den Webserver, wir Apache mit PHP-Unterstützung verwenden. Auch in diesem Fall die Führung von Ubuntu ist sehr detailliert, und berücksichtigt die größere Zahl von Szenarien und Probleme, die ein Benutzer erfahren, wenn sie Apache installieren. Die Installation von PHP sondern ich erkläre ich.

Sie müssen PHP5 installieren und ein Paket, das PHP mit Apache kommunizieren. Vom Terminal:

sudo apt-get install php5 libapache2-mod-php5

Apache muss dann neu gestartet werden, um für Sie "Bekanntmachung" was hat jetzt Unterstützung für PHP. Immer terminale:

sudo / etc/init.d/apache2 Neustart

Geben Sie das Kennwort ein und bestätigen. Jetzt testen wir, ob die Dinge wirklich sind, gehen in die richtige Richtung. Wir erstellen die Datei "/var/www/phpinfo.php" innerhalb dessen den folgenden Code ein:

<? phpinfo(); ?>

Öffnen Sie einen Browser und geben in die URL-Leiste "http://localhost/phpinfo.php". Sie sollten eine Seite ähnlich der folgenden.

PHP und läuft

PHP und läuft

Nun, Jetzt haben wir auch eine laufende Bahn. Wir müssen ein Skript, das Hochladen von PDF ermöglicht auf einem Server zu erstellen. Erstellen Sie zunächst das HTML-Formular:

<html>
<Körper>

<bilden action ="upload_file.php" method ="senden"
enctype ="multipart / form-data">
<Label für ="Datei">Dateiname:</Label>
<input type ="Datei" name ="Datei" id ="Datei">
<input type ="einreichen" name ="einreichen" Wert ="Hochladen!">
</Form>

</Körper>
</html>

Form

Das Formular ruft die Datei "upload_file.php", deren Inhalt wie folgt:

<?php
("pdf");
$extension = Ende(explodieren(".", $_FILES["Datei"]["Name"]));
wenn ((($_FILES["Datei"]["Art"] == "application / pdf"))
&& ($_FILES["Datei"]["Größe"] < 2000000)
&& in_array($Erweiterung, $allowedExts))
  {
  wenn ($_FILES["Datei"]["Fehler"] > 0)
    {
    echo "Rückgabecodewerte: " . $_FILES["Datei"]["Fehler"] . "<br>";
    }
  sonst
    {
    echo "Hochladen: " . $_FILES["Datei"]["Name"] . "<br>";
    echo "Typ: " . $_FILES["Datei"]["Art"] . "<br>";
    echo "Größe: " . ($_FILES["Datei"]["Größe"] / 1024) . " kB<br>";
    echo "Temp-Datei: " . $_FILES["Datei"]["tmp_name"] . "<br>";

    wenn (file_exists("Upload /" . $_FILES["Datei"]["Name"]))
      {
      echo $ _FILES["Datei"]["Name"] . " existiert bereits. ";
      }
    sonst
      {
      move_uploaded_file($_FILES["Datei"]["tmp_name"],
      "Upload /" . $_FILES["Datei"]["Name"]);
      echo "Gespeichert in: " . "Upload /" . $_FILES["Datei"]["Name"];
      }
    }
  }
sonst
  {
  echo "Ungültige Datei";
  }
?>

Die fünfte Zeile wird bemerkt, dass ich eine Obergrenze für die Größe der PDF eingestellt haben. Dies kann auch sicher entfernt werden, und modifiziert die Datei "php.ini" so lassen Sie es laden noch schwerer PDF. Vergiss nicht, dass alles, was geschieht lokal innerhalb eines LAN. Wir erstellen auch das Verzeichnis "laden", wo Datei wird hochgeladen.

Wenn der Upload erfolgreich ist, wird die Skript-Datei zeigen Sie uns, was geladen ist, der Dateityp, die Größe und wo es auf dem Server gespeichert, andernfalls wird "Ungültige Datei".

script_ok

Nun, da die erste Datei hochgeladen wird, werden wir sicherstellen, dass der gesamte Inhalt des Verzeichnisses "laden" ausgedruckt werden, und dann zu einem Backup-Verzeichnis verschoben werden täglich geleert werden (wir wollen nicht zu verstopfen den Dateiserver, wahr?). Ich rufe das Backup-Verzeichnis "Anzahlung", positioniert im Root-Verzeichnis. Für alles, was wir verwenden die automatische Cron.

Wir fügen die folgenden Zeilen am Ende der Datei crontab ("crontab-e").

# Printserver
* * * * * lpr / var / www / uploads / upload / * | schlafen 30; mv / var / www / Uploader / uploads / * / var / www / Uploader / Einlagen /
0 4 * * * rm-rf / var / www / Uploader / Anzahlung / *

Der erste Befehl crontab jede Minute prüft das Verzeichnis "laden", jede Datei hinein und bewegen Sie den gesamten Inhalt in das Verzeichnis "Anzahlung". Die zweite löscht alle Dateien im Verzeichnis "Anzahlung" alle 4 jede Nacht.

hat dir dieser Artikel gefallen?

Dann abonniere doch diesen Blog per RSS Feed!

Über

Ich halte diesen Blog als ein Hobby von 2009. Ich bin begeistert von Grafik, Technologie, Open Source Software. Unter meinen Artikel wird nicht schwierig sein, über die Musik finden, und einige persönliche Reflexionen, aber ich bevorzuge die direkte Linie des Blogs vor allem auf Technologie. Weitere Informationen Kontaktieren Sie mich.