automatisch drucken, mit Datei auf Linux-Servern laden
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.
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.
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
“).
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”.
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.
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!