Cookie

imprimer automatiquement, avec de téléchargement de fichiers sur des serveurs Linux

Publié par TheJoe sur

Temps de lecture estimé: 4 minutes

Attention


Cet article a été publié il y a plus d'un an, il peut y avoir des développements été.
S'il vous plaît prendre en compte.

Dans l'article d'aujourd'hui, je m'occupe de la presse. Après avoir comparé les différentes exigences des clients, Je suis venu à théoriser l'idée que l'utilisateur (utonto) devrait avoir pour que tout soit prêt. Moins logiciel ou pilote seront installés, sera plus heureux et moins tedierà ceux qui n'ont rien d'autre à faire.

L'éclairage est venu me tamisage entre les paramètres de l'imprimante que nous avons dans le bureau. Dans l'un des menus, je vois que vous pouvez télécharger le fichier PDF à imprimer de la mémoire interne de l'imprimante pour imprimer automatiquement. Aucun pilote (l'imprimante est le réseau), rien formatage spécial, solo l'envoi. J'ai donc pensé qu'il ne serait pas difficile de faire la même chose avec une imprimante connectée via un port série ou USB d'un ordinateur, ne pas partager (servir pilotes). En fait, il était facile.

Pour l'expérience avec au moins deux ordinateurs, connecté sur le réseau local, dont l'un est connecté et configuré de manière à imprimer localement (que nous appellerons serveur). Nous vous ferons parvenir le fichier PDF sur le serveur via une interface web, parce qu'il est plus intuitive et utilisateur familière avant. Par conséquent, l'ordinateur connecté à l'imprimante devra faire en serveur d'impression et serveur Web.

Quelques mots sur CUPS…

Faites-le pour acquis que vous utilisez un serveur Linux en vue. Pour ceux qui ne savent toujours pas CUPS Faites une visite guidée Wikipedia Su ou le site officiel du projet de CUPS (Système Common Unix Printing System). Qu'il suffise de dire que tous les travaux d'impression dans Linux (que je connais) sont gérés par CUPS, un serveur d'impression installé sur votre PC. Tout le monde. Pour les non initiés, avec CUPS, imprimantes et des travaux d'impression sont facilement administrés via une interface web. Il suffit de brancher dans la barre d'url “http://localhost:631“. De cette page, nous pouvons gérer les imprimantes, travaux d'impression, installer ou supprimer une imprimante, pratiquement tout ce que nous voulons faire de l'imprimante nous pouvons le faire aussi bien que les outils spécialement développés pour chaque distribution, également à partir de l'interface Web. Cela le rend beaucoup plus facile à configurer, par exemple, un serveur d'impression. Et c'est précisément notre cas.

La fenêtre d'administration de l'imprimante
La fenêtre d'administration de l'imprimante

En ce qui concerne l'installation de CUPS nous nous référons à l' guida di Ubuntu, est encore le seul moyen d'imprimer avec Linux, alors chacun aura CUPS distribution dans son référentiel. Il est habituellement inclus par défaut dans la distribution.

Maintenant pour le serveur web, nous allons utiliser Apache avec le support de PHP. Même dans ce cas la direction d'Ubuntu est très détaillé, et prend en compte le plus grand nombre de scénarios et problèmes qu'un utilisateur peut rencontrer lors de l'installation Apache. L'installation de PHP à la place je lui explique que je.

Vous devez installer PHP5 et un package qui permet à PHP de communiquer avec Apache. Depuis le terminal:

sudo apt-get install php5 libapache2-mod-php5

Apache doit alors être redémarré pour vous “remarquer” qui a maintenant un support pour PHP. Toujours terminale:

sudo /etc/init.d/apache2 restart

Entrez le mot de passe et confirmer. Maintenant, nous testons si les choses vont vraiment dans la bonne direction. Nous créons le fichier “/var/www/phpinfo.php” à l'intérieur duquel insérez le code suivant:

<? phpinfo(); ?>

Ouvrez un navigateur et d'écrire dans la barre d'url “http://localhost/phpinfo.php“. Vous devriez voir une page semblable à la suivante.

Regardez ici:  LibreOffice du terminal: convertir au format PDF
Fonctionner PHP
Fonctionner PHP

Eh bien, maintenant nous avons aussi une bande courante. Nous devons créer un script qui permet le téléchargement du fichier PDF sur le serveur. Tout d'abord, créer le formulaire HTML:

<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>

Nous enregistrons le fichier dans “/var/www/html/uploader/“. Nous pouvons lui donner le nom que nous voulons (c'est. “index.php“).

forme

La forme appelle le fichier “upload_file.php“. Nous devrons créer le nouveau fichier et l'enregistrer dans le même répertoire qu'avant: “/var/www/html/uploader/“. Le contenu est le suivant:

<?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";
  }
?>

La cinquième ligne aura remarqué que j'ai mis une limite supérieure à la taille du PDF. Cela peut aussi être retiré en toute sécurité, et modifié le fichier “php.ini” alors laissez le charger encore plus lourd PDF. N'oubliez pas que tout ce qui se passe localement dans un réseau local. Nous créons également le répertoire “upload“, où fichier sera téléchargé.

Si le téléchargement est réussi, le fichier script va nous montrer ce qui est chargé, le type de fichier, la taille et où il est enregistré sur le serveur, sinon, elle retourne “Fichier non valide”.

script_ok

Maintenant que le premier fichier est téléchargé, nous veillerons à ce que tout le contenu du répertoire “upload” imprimer, puis déplacé vers un répertoire de sauvegarde sera vidé quotidien (nous ne voulons pas encombrer le serveur de fichiers, vrai?). Je vais appeler le répertoire de sauvegarde “deposito“, placé à l'intérieur du répertoire racine. Pour tout ce que nous allons utiliser la boîte automatique Cron.

Nous ajoutons les lignes suivantes à la fin du fichier crontab (de la borne: “crontab -e“).

# serveur d'impression
* * * * * LPR / var / www / uploads / upload / * | dormir 30; mv / var / www / téléchargeur / uploads / * / var / www / téléchargeur / dépôts /
0 4 * * * rm-rf / var / www / téléchargeur / dépôt / *

La première commande crontab chaque minute vérifie l'annuaire “télécharger”, imprimer tous les fichiers à l'intérieur et se déplacer tout le contenu dans le répertoire “dépôt”. La seconde supprime tous les fichiers dans le répertoire “dépôt” Tous 4 chaque nuit.


TheJoe

Je garde ce blog comme un hobby par 2009. Je suis passionné de graphisme, la technologie, logiciel Open Source. Parmi mes articles ne sera pas difficile de trouver de la musique, et quelques réflexions personnelles, mais je préfère la ligne directe du blog principalement à la technologie. Pour plus d'informations me contacter.

2 commentaires

David · 22 Novembre 2022 à 3:03 PM

Bonjour, excuse moi, Je suis la procédure mais je ne trouve pas les dossiers de téléchargement et de téléchargement dans lesquels les fichiers téléchargés depuis la page Web sont enregistrés. Vous pouvez également indiquer les dossiers à créer dans la procédure ? merci beaucoup.
David

    TheJoe · 27 Novembre 2022 à 5:35 UN M

    D'ACCORD, J'ai intégré l'article avec les ajouts que vous avez suggérés. Merci beaucoup!

Laisser un commentaire

Espace réservé d'avatar

Votre adresse email ne sera pas publiée. les champs requis sont indiqués *

Ce site utilise Akismet pour réduire le spam. Découvrez comment vos données de commentaire est traité.