print “Bonjour le monde!”


79

Oui vraiment. Imprimez- le avec une imprimante matérielle 🖨 pour créer une copie papier.

Envoyez les commandes / données nécessaires à votre imprimante de sorte que le texte suivant soit imprimé sur un morceau de papier:

Bonjour le monde!

Vous pouvez utiliser n'importe quelle imprimante connectée à un réseau local ou réseau disponible pour vous.

Si votre imprimante le permet, vous devez utiliser du texte de 8 pt ou plus à l’encre noire sur du papier blanc.

Le texte doit apparaître sur sa propre ligne. Il peut être placé à gauche ou à droite comme vous le souhaitez.

Des preuves photographiques / vidéo / GIF numériques des soumissions seront utiles.

Si votre matériel n'est pas en mesure de produire du papier, mais autorise la production de copies papier exotiques telles que l'impression 3D, l'usinage CNC ou l' impression au niveau atomique , je me ferai un plaisir d'accepter de telles soumissions intéressantes.


Pour clarifier, la question demande "Envoyez les commandes / données nécessaires à votre imprimante" . L'implication de ceci est qu'aucune autre entrée de l'utilisateur ne devrait être requise. Ouvrir une boîte de dialogue d'impression n'est pas suffisant. Les réponses existantes qui le font à compter de 10 h 48, heure du Pacifique, le 31 décembre 2016, bénéficieront d'une clause de droits acquis (mais je n'aurai pas le droit de voter).


56
S'il vous plaît fournir l'adresse à laquelle nous pouvons envoyer des soumissions pour vérification.
Steenbergh

1
@steenbergh Yep - bon point - La preuve numérique des soumissions en photo / vidéo / GIF devrait suffire.
Digital Trauma

3
Il est à noter que de nombreuses imprimantes plus anciennes utilisent des jeux de commandes personnalisés. La plupart de ces caractères impriment littéralement des caractères ASCII. Si vous avez accès à l’une des imprimantes en question (ou si vous le déclarez tout simplement), l’envoi Hello, World!au port d’imprimante devrait suffire.

1
Je pouvais jurer que j’avais essayé une fois print("Hello, World!")dans la console Firefox et que le dialogue d’impression s’était ouvert (inutile car je n’étais connecté à aucune imprimante), mais maintenant, il ne fait que
renvoyer

2
@ETHproductions en chrome <script>print("Hello, World!")</script> ne ouvre la boîte de dialogue d’impression, mais sans le texte.
FlipTack

Réponses:


41

Bash, 21 à 19 octets

lp<<<Hello,\ World!

impression réelle

Et voilà.

2 octets sauvés grâce à Dennis !


1
+1 Valable en tant que script. Fonctionne bien sur mon Mac. Si vous souhaitez l'exécuter directement sur la ligne de commande, vous devez remplacer les guillemets par des guillemets simples.
Digital Trauma

pourquoi ne pas avoir une bannière pour faire belle
juggernauthk108

@ juggernaut1996 où? Pas si je dois imprimer à nouveau quelque chose
Blue

37

PowerShell , 18 octets

'Hello, World!'|lp

Essayez-le en ligne!

entrez la description de l'image ici


9
Pas sûr du point du lien TIO. +1 quand même.
Trauma numérique

1
@ DigitalTrauma Je pensais que c'était drôle. et cela génère le message pour moi. Vous pouvez également consulter la sortie de débogage juste pour voir qu'il essaie (et échoue) de spooler le travail. :-p
briantist

19
@ DigitalTrauma Si vous mettez votre adresse dans le champ de saisie, TIO vous enverra le résultat par courrier.
Dennis

@ Dennis si j'avais de l'argent à graver, je soumettrais une réponse utilisant un service API-to-print. Hélas ...
Briantist

19

QBIC , 11 octets

'LPRINT `_h

Presque oublié j'ai construit un «Bonjour, le monde! commande en QBIC ...

'          Starts a code literal. This used to be "$", finally changed it.
 LPRINT `  Feeds everything from ` to the next ` directly to QBasic. 
           In this case, "LPRINT" and a space
_h         Yields "Hello, World!"

Testé et trouvé fonctionnant identique à ma réponse QBasic: entrez la description de l'image ici


1
euh .. alors quel est ce lien? Est-ce une langue inventée par vous?
eis

1
@ eis Oui, j'ai fait QBIC. Le lien est un dossier Google Drive contenant tout le code qu'il contient. Je crains chez GitHub ... C'est un interpréteur situé au sommet de QBasic (QBIC signifie "interpréteur de Quick Basic pour Codegolf") et s'exécute dans DosBox. Consultez le fil de discussion pour quelques exemples (ou ouvrez simplement la page de réponses de mon profil, 75% est dans QBIC). WIP, la syntaxe et les jetons sont donc parfois décalés.
Steenbergh

L'OP a utilisé un "W" majuscule pour éviter le "monde bonjour" intégré ( voir aussi ): créer votre propre commande intégrée pour le travail n'est pas un jeu de code, ou vous pouvez le créer "0 octet" avec un comportement par défaut intégré pour ce travail. .
Cœur

2
@ Cœur: cela fonctionne à peine de nos jours, la plupart des langues de golf les plus récentes utilisent le majuscule W précisément parce qu’il est standard sur PPCG, et il est fort probable que la commande ait été ajoutée sans aucune connaissance de ce défi particulier (juste une supposition plus "Hello, World! "les défis seront soumis à l'avenir)

@ Cœur Bienvenue chez PPCG! Vous serez peut-être surpris d'apprendre que vous n'êtes pas la première personne à qui cette préoccupation particulière s'est produite. Voici un bon endroit pour commencer à lire: meta.codegolf.stackexchange.com/q/4867/11261 Et, de plus, les personnes qui aiment le golf jouent
Jordanie

16

Lot, 22 octets

echo Hello, World!>prn

Ceci redirige la sortie de la echocommande vers le fichier de périphérique PRN , ce qui signifie qu’elle est envoyée directement à l’imprimante par défaut (généralement LPT1).

Je n'ai ni machine DOS ni imprimante, alors j'ai bien peur de ne pas pouvoir le tester pour le moment, mais je suis à peu près certain que je l'ai déjà fait dans la journée. Cela ne fonctionne pas sous Windows XP ou version ultérieure.


Cela me rappelle quand j'ai essayé de créer un fichier appelé conet que je n'ai pas pu le faire. Ah, la joie des fichiers de périphériques DOS ...
aross

NT (et probablement XP, etc.) peut être configuré pour imprimer de cette manière à l’aide de la commande "net". iirc "utilisation nette lpt1: quelque chose"
Jasen

16

HTML + Javascript, 37 34 octets

<body onload=print()>Hello, World!

Testé dans Safari:

entrez la description de l'image ici

Merci à @ jimmy23013 pour des économies.


11
Ceci apparaît uniquement pour ouvrir la boîte de dialogue d’impression et ne pas envoyer le travail à l’imprimante sans autre intervention manuelle
Digital Trauma,

4
@DigitalTrauma JS ne peut pas faire cela
M. Alien

1
Etes-vous sûr, @EriktheOutgolfer? Firefox et Chrome évaluent le code de script uniquement lorsque la balise de fermeture est remplie.
manatwork

1
Oui, j'ai essayé de laisser tomber </script>et ça n'a pas marché.
moelleux

2
-3 octets:<body onload=print()>Hello, World!
jimmy23013

13

Python 2.7, 421 octets

import zlib,base64,os;os.system("s=$'%s';lp<<<\"$s\""%zlib.decompress(base64.decodestring("eNqVkk1qxDAMha/yupNgwNfoDboReDPdhQRmrcNXP3bixA3tGEMesj/r5wXoq+YysUemI0BWlYgV\npTyAEDKEQSDucxLxJaj6gUVKE8BFsH2TIOM5iMyrcTIL3YnMqCH4X0TLONTwF3H04Z0XuRPeR3Wi\nxDOi1EZY7gUTWFa8s+z5kTgcnK3sBtbZQRtCt5LPDlrliKouDh5DYz07KB6COuETUL/YRthGxHqZ\nbjyWBAU8EFk6z350Yt97Dol65hxUow9i3zr8YGxFS61nB4szPqvDnS7CU/nFwYLIYczn97JsD3xt\nr+X5wT/ARNN3\n")))

Semble un peu trop long? C'est peut-être un peu compliqué ....: P

Beaucoup de bonjour le monde

Sérieusement, en voici un plus court:

import os;os.system("lp<<<'Hello, World!'")

Pas très intéressant, cependant.



13

bonjour + lp + tr, 9 15 octets

hello|tr w W|lp

J'avais à l'origine

hello|lp

Mais il avait la mauvaise capitalisation sur le w

hello is gnu hello du paquet Debian bonjour


7
helloaffiche une minuscule w, comme c'est le cas sur la plupart des sites de programmation. (Je ne suis pas sûr de savoir comment les majuscules sont Wdevenues la norme sur PPCG.)

7
@ ais523 Je pense que la lettre majuscule W est la norme ici précisément pour éviter les problèmes de construction tels que celui-ci.
Pavel

2
Si la capitalisation est incorrecte, je crains que cela ne soit pas valide.
Dennis

Merci pour vos commentaires, je vais supprimer cette réponse demain.
Jasen

6
Que diriez- hello|tr w W|lpvous
David Conrad

11

ZX Spectrum BASIC, 16 octets

LPRINT "Hello, World!"

LPRINT est un mot clé de 1 octet dans ZX Spectrum BASIC, ayant le codepoint 224.


1
pouvez-vous montrer une photo de la copie papier.
Jasen

4
@Jasen En théorie, je dispose toujours du kit, mais ce serait un peu déroutant de le déterrer et de le brancher à un téléviseur suffisamment ancien. Désolé pour ça.
Neil

vous pourriez probablement taper cette commande "blind".
Jasen

10

MATLAB, 40 37 36 octets

Imprimer du texte n’est pas quelque chose que vous feriez normalement dans Matlab, mais cela peut être fait.

title 'Hello, World!'
axis off;print

J'ai économisé 3 octets grâce à Tom Carpenter (utilisation titleau lieu de) text(0,0,. J'ai enregistré 2 octets supplémentaires en remplaçant le title('Hello, World!') withtitre "Hello, World!" Suivi d'une nouvelle ligne au lieu d'un point-virgule.

titleajoute un titre à une figure. Si une figure n'est pas encore ouverte, elle sera créée.

axis off est utilisé pour supprimer le cadre et les axes afin que le texte apparaisse seul.

print affiche la figure actuelle sur l’imprimante par défaut si aucun argument d’entrée n’est donné.

J'ai imprimé ceci (avec succès selon la boîte de dialogue) sur mon imprimante par défaut au bureau. Je peux le récupérer là-bas et le prouver, mais vous devrez attendre deux semaines. Après avoir changé la valeur par défaut en une imprimante pdf, voici le résultat:

entrez la description de l'image ici

^^ Pas l'image correcte plus.


8

QBasic, 21 octets

LPRINT"Hello, World!"

LPRINTenvoie du texte directement à l'imprimante. Malheureusement non testé, DosBox ne prend pas nativement en charge NET USE, je ne peux donc pas rediriger LPT1:vers NovaPDF.

Les problèmes que j'ai

UPDATE: Testé dans QB64. PDF résultant ouvert dans Microsoft Edge. Ressemble à ça: entrez la description de l'image ici


7

8086 code machine, 28 octets

00000000  be 0f 01 b9 0d 00 31 d2  ac 98 cd 17 e2 fa c3 48  |......1........H|
00000010  65 6c 6c 6f 2c 20 57 6f  72 6c 64 21              |ello, World!|
0000001c

Utilise l' int 0x17appel standard du BIOS. Je n'ai pas mon imprimante matricielle configurée pour le moment, donc ce code n'a pas été testé.

Comment ça fonctionne:

            |   org 0x100
            |   use16
be 0f 01    |       mov si, msg         ; source pointer = msg
b9 0d 00    |       mov cx, 13          ; counter = length of msg
31 d2       |       xor dx, dx          ; clear dx
ac          |   @@: lodsb               ; al = *si++
98          |       cbw                 ; sign-extend al->ax (simply clears ah)
cd 17       |       int 0x17            ; send char in al to printer dx
e2 fa       |       loop @b             ; loop while (cx-- > 0)
c3          |       ret
48 65 6c    |   msg db "Hello, World!"
6c 6f 2c    |   
20 57 6f    |   
72 6c 64    |   
21          |   

1
Bien sûr, je viens de l'ajouter.
user5434231

Nous parlons maintenant!
Expiation limitée

6

Lot + Stuck, 12 octets

Inspiré par cette réponse, un programme bloqué vide affiche "Hello, World!".

  1. Avoir une imprimante connectée au port LPT1 de votre ordinateur
  2. Créer un fichier bloqué vide à interpréter (nom de fichier a)
  3. Exécutez l'interprète bloqué sur le fichier vide et dirigez le résultat vers LPT1

Code

stuck a>LPT1

4
Si vous utilisez plusieurs langues, vous devez également compter la colle qui les relie entre elles dans le nombre d'octets. Je compterais cela comme 15 pour le programme Batch, plus 0 en raison de la nécessité d'un fichier externe de 0 octet.

1
Pouvez-vous montrer distinctement le script batch Windows et explicitement la commande utilisée pour appeler Stuck et transmettre le résultat à l'imprimante? Par explicitement, je veux dire quelque chose comme stuck empty > LPT1. BTW si cela utilise un REPL je crois que le consensus est que cela devrait être clairement énoncé (je crois que c'est pour minimiser la confusion exactement comme cela)
Redstarcoder

@ ais523 J'ai vaincu - je devrais compter la colle, et à cause de cela, je l'ai augmentée de 5 octets à 12
Daniel

Vous pouvez enregistrer un octet ici en redirigeant vers PRN au lieu de LPT1.
user5434231

1
OMI, vous devez ajouter 1 octet pour le nom de fichier 1 octet.
CalculatriceFeline

4

GFA-Basic, 22 octets

Testé uniquement sur un émulateur Atari ST avec le port parallèle redirigé vers un fichier. Cela devrait fonctionner sur la version Windows de GFA-Basic (qui est gratuite), mais cela n’a pas été testé.

LPRINT "Hello, World!"

Remarque: Ceci s’avère être identique à la syntaxe QBasic .


4

Java, 330 octets

Golfé:

import java.awt.print.*;void f()throws Throwable{PrinterJob job=PrinterJob.getPrinterJob();job.setPrintable(new Printable(){public int print(java.awt.Graphics g,PageFormat f,int i){if(i==0){((java.awt.Graphics2D)g).translate(f.getImageableX(),f.getImageableY());g.drawString("Hello, World!",0,90);}return i>0?1:0;}});job.print();}

Ungolfed (fonction d'importation plus seulement):

import java.awt.print.*;

void f() throws Throwable {
  PrinterJob job = PrinterJob.getPrinterJob();
  job.setPrintable(new Printable() {
    public int print(java.awt.Graphics g, PageFormat f, int i) {
      if (i == 0) {
        ((java.awt.Graphics2D) g).translate(f.getImageableX(), f.getImageableY());
        g.drawString("Hello, World!", 0, 90);
      }
      return i > NO_SUCH_PAGE ? 1 : PAGE_EXISTS;
    }
  });
  job.print();
}

Java n’est pas un langage de golf formidable, et certains font un travail exceptionnellement médiocre en matière de golf, qu’il s’agisse de matériel, impression comprise.

Lors du test de ce programme, j'ai défini mon imprimante PDF comme imprimante par défaut. Cela a fonctionné, mais a également envoyé un travail d'impression à mon imprimante laser contenant 87 792 pages de "Hello, World!" J'ai tiré le bac à papier et annulé le travail, puis retesté. Cela ne s'est pas reproduit. Merci, Windows 10.


-7 octets en remplaçant 3x jobpar jet i==0par i<1.
Kevin Cruijssen

3

JavaScript, 37 36 octets

print(document.write`Hello, World!`)

Sauvegardé 15 octets grâce à @manatwork et @xem!


3
Pas besoin de préciser explicitement window: document.write('Hello, World!');print(). Ou encore plus court: print(document.write('Hello, World!')).
manatwork

3
avec ES6, vous pouvez même faire: document.write`Hello, world!` (plus d’informations ici: xem.github.io/articles/#webspeech )
xem

Est-ce qu'il imprime sans confirmation? Non? Bien dommage, c'est invalide.
CalculatorFeline

@CalculatorFeline Pourquoi cette hostilité? Si vous lisiez la note de bas de page du défi que vous verriez "...Existing answers that do this as of 10:48am PST 31st Dec 2016 will be grandfathered...".
Oliver

Oh. J'ai raté cette partie.
CalculatriceFeline


2

c #, 259 250 octets

using System.Drawing;using System.Drawing.Printing;struct p{static void Main(){var p=new PrintDocument();p.PrintPage+=(s,e)=>e.Graphics.DrawString("Hello,World!",new Font("Arial",12),new SolidBrush(Color.Black),new Rectangle(0,0,999,99));p.Print();}}

Exemple de sortie


2

Lot, 32 octets

echo Hello, World!>t
notepad/P t

Devrait fonctionner sur toutes les versions de Windows sans intervention manuelle.


1

Raquette 35 octets

(system("echo 'Hello World!'\|lp"))

1

HTML (33)

Hello, World!<svg onload=print()>

(Invite une fenêtre d'impression dans le navigateur, n'imprime pas directement)


Y a-t-il une raison pour laquelle l'étiquette doit être <svg>spécifiquement, ou une étiquette fonctionnerait-elle? (De nombreuses étiquettes ont des noms plus courts.)

7
autant que, svg, img (avec un src valide), iframe et body aient un événement onload déclenché lors du chargement de la page. img sans src déclenche un événement onerror. dans l'ensemble, le plus court que nous ayons trouvé est svg onload = ...
xem

Le défi demande une majuscule W(pas que cela change votre nombre d'octets).
Martin Ender

1

APL (Dyalog) , 50 octets

Bien sûr, nous pourrions utiliser une solution Batch / Bash, mais créons plutôt un vrai travail d'impression:

{'X.'WC'Text' 'Hello, World!'⍵⊣'X'WC'Printer'}⍳2

⎕WC est-ce que W indows crée un objet

Tout d'abord, nous créons un objet imprimante (un travail d'impression) appelé 'X', then ( ) dans cet exemple ( 'X.'), nous créons un objet texte à l'argument de la fonction anonyme {}. L'argument est ⍳2, qui donne les deux premiers entiers ( 1 2) et signifie 1% du haut et 2% de la gauche. Lorsque la fonction anonyme se termine, toutes ses variables locales ( X) sont détruites, ce qui indique à Windows que le travail d'impression est prêt à être imprimé:


Travail d'impression


0

Javascript, 36 octets

print(document.write`Hello, World!`)

Cela ouvre simplement la boîte de dialogue d'impression. Une intervention manuelle supplémentaire est nécessaire pour imprimer. Veuillez vous reporter à la note au bas de la question.
Digital Trauma


0

JavaScript + HTML, 20 octets

print()
Hello, World!


Cela ouvre simplement la boîte de dialogue d'impression. Une intervention manuelle supplémentaire est nécessaire pour imprimer. Veuillez vous reporter à la note au bas de la question.
Digital Trauma

0

C #, 174 octets

namespace System.Drawing.Printing{_=>{var p=new PrintDocument();p.PrintPage+=(s,e)=>e.Graphics.DrawString("Hello, World!",new Font("Onyx",9),Brushes.Black,0,0);p.Print();};}

Version complète / formatée:

namespace System.Drawing.Printing
{
    class P
    {
        static void Main(string[] args)
        {
            Action<float> f = _ =>
            {
                var p = new PrintDocument();
                p.PrintPage += (s, e) =>
                    e.Graphics.DrawString("Hello, World!", new Font("Onyx", 9), Brushes.Black, 0, 0);
                p.Print();
            };

            f(0);
        }
    }
}
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.