Cookie

automatisch drucken, mit Datei auf Linux-Servern laden

Veröffentlicht von TheJoe am

Geschätzte Lesezeit: 4 Minuten

Vorsicht


Dieser Artikel wurde mehr als vor einem Jahr veröffentlicht, Es gab Entwicklungen können.
Bitte berücksichtigen Sie dies.

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
Die Druckerverwaltung Fenster

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 restart

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.

Schau hier:  Ausschließen von Dateien und Verzeichnisse von der Indizierung mit Hilfe der Datei "robots.txt"
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>
<body>

<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file">
<input type="submit" name="submit" value="Upload!">
</form>

</body>
</html>

Wir speichern die Datei in “/var/www/html/uploader/“. Wir können ihm einen beliebigen Namen geben (ist. “index.php“).

Form

Das Formular ruft die Datei “upload_file.php“. Wir müssen die neue Datei erstellen und im selben Verzeichnis wie zuvor speichern: “/var/www/html/uploader/“. Der Inhalt ist wie folgt:

<?php
$allowedExts = array("pdf");
$extension = end(explode(".", $_FILES["file"]["name"]));
if ((($_FILES["file"]["type"] == "application/pdf"))
&& ($_FILES["file"]["size"] < 2000000)
&& in_array($extension, $allowedExts))
  {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
    }
  else
    {
    echo "Upload: " . $_FILES["file"]["name"] . "<br>";
    echo "Type: " . $_FILES["file"]["type"] . "<br>";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";

    if (file_exists("upload/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
    else
      {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "upload/" . $_FILES["file"]["name"]);
      echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
      }
    }
  }
else
  {
  echo "Invalid file";
  }
?>

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 “upload“, 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 “upload” 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 “deposito“, positioniert im Root-Verzeichnis. Für alles, was wir verwenden die automatische Cron.

Wir fügen die folgenden Zeilen am Ende der Datei crontab (von Klemme: “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.


TheJoe

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.

2 Kommentare

Davide · 22 November 2022 um 3:03 PM

Hallo, Verzeihung, Ich folge dem Verfahren, kann aber den Uploader und die Upload-Ordner nicht finden, in denen die von der Webseite hochgeladenen Dateien gespeichert sind. Sie können im Verfahren auch die zu erstellenden Ordner angeben ? ich danke Ihnen sehr.
Davide

    TheJoe · 27 November 2022 um 5:35 AM

    OK, Ich habe den Artikel mit den von Ihnen vorgeschlagenen Ergänzungen integriert. Vielen Dank!

Hinterlasse eine Antwort

Avatar-Platzhalter

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.