Yes, really. Print it with a hardware printer 🖨 to create a hard copy.
Send the necessary commands/data to your printer such that the following text is printed on a piece of paper:
Hello, World!
You may use any local- or network-connected printer that is available to you.
If your printer allows, you should use 8pt or greater text in black ink on white paper.
The text should appear on its own line. It may be left or right positioned as you wish.
Digital photographic/video/GIF evidence of submissions will be helpful.
If your hardware cannot do paper, but allows other exotic hardcopy production such as 3D printing, CNC machining, or printing at the atomic level, then I will happy to accept such interesting submissions.
To clarify, the question asks "Send the necessary commands/data to your printer". The implication of this is that no further user input should be required. Opening a print dialog is not sufficient. Existing answers that do this as of 10:48am PST 31st Dec 2016 will be grandfathered (but not upvoted by me).
29 Answers 29
Bash, (削除) 21 (削除ここまで) 19 bytes
lp<<<Hello,\ World!
And there it is.
2 bytes saved thanks to Dennis!
-
1\$\begingroup\$ +1 Valid as a script. Works fine on my Mac. If you want to run it directly at the command-line you'll need to change the double-quotes to single-quotes. \$\endgroup\$Digital Trauma– Digital Trauma2016年12月30日 21:45:10 +00:00Commented Dec 30, 2016 at 21:45
-
\$\begingroup\$ why not have banner to make ot look pretty \$\endgroup\$juggernauthk108– juggernauthk1082017年01月01日 19:43:13 +00:00Commented Jan 1, 2017 at 19:43
-
\$\begingroup\$ @juggernaut1996 where? Not if I have to print something out again \$\endgroup\$Blue– Blue2017年01月01日 19:46:11 +00:00Commented Jan 1, 2017 at 19:46
-
10\$\begingroup\$ Not sure the point of the TIO link. +1 anyway. \$\endgroup\$Digital Trauma– Digital Trauma2016年12月31日 00:20:16 +00:00Commented Dec 31, 2016 at 0:20
-
2\$\begingroup\$ @DigitalTrauma I thought it was funny; and it generates the post for me. You can also look at the debug output just to see that it's trying (and failing) to spool the job. :-p \$\endgroup\$briantist– briantist2016年12月31日 00:21:10 +00:00Commented Dec 31, 2016 at 0:21
-
25\$\begingroup\$ @DigitalTrauma If you put your address in the input field, TIO will mail you the result. \$\endgroup\$Dennis– Dennis2016年12月31日 00:23:18 +00:00Commented Dec 31, 2016 at 0:23
-
\$\begingroup\$ @Dennis if I had money to burn I'd submit an answer that uses an API-to-print service. Alas... \$\endgroup\$briantist– briantist2016年12月31日 00:25:42 +00:00Commented Dec 31, 2016 at 0:25
QBIC, 11 bytes
'LPRINT `_h
Almost forgot I built a 'Hello, World!' command into 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!"
Tested and found working identical to my QBasic answer: enter image description here
-
1\$\begingroup\$ um.. so what's that link? Is it a language invented by you? \$\endgroup\$eis– eis2016年12月30日 22:47:44 +00:00Commented Dec 30, 2016 at 22:47
-
1\$\begingroup\$ @eis Yes, I made QBIC. The link is a Google Drive folder with all the code in it - I suck at GitHub... It's an interpreter atop of QBasic (QBIC stands for Quick Basic's Interpreter for Codegolf) and it runs in DosBox. Check out the Showcase-thread for some examples (or just open my profile's answers-page, 75% is in QBIC). WIP, so syntax and tokens occasionally get shifted. \$\endgroup\$steenbergh– steenbergh2016年12月30日 22:50:22 +00:00Commented Dec 30, 2016 at 22:50
-
\$\begingroup\$ The OP used a capital "W" to avoid builtin "hello world" (see also).: building your own builtin command for the job is not code golfing, or you could make it "0 bytes" with a builtin default behavior for that. \$\endgroup\$Cœur– Cœur2017年01月02日 04:45:31 +00:00Commented Jan 2, 2017 at 4:45
-
3\$\begingroup\$ @Cœur: that hardly works nowadays, most newer golfing languages use the capital W precisely because it's standard on PPCG, and it's highly likely that the command was added with no knowledge of this particular challenge (just a guess that more "Hello, World!" challenges would be submitted in the future) \$\endgroup\$user62131– user621312017年01月02日 11:01:26 +00:00Commented Jan 2, 2017 at 11:01
-
\$\begingroup\$ @Cœur Welcome to PPCG! You may be surprised to learn that you're not the first person to whom that particular concern has occurred. Here's a good place to start reading: meta.codegolf.stackexchange.com/q/4867/11261 And further, people who enjoy code golfing spend a lot of time thinking about loopholes: meta.codegolf.stackexchange.com/q/1061/11261 \$\endgroup\$Jordan– Jordan2017年01月03日 04:32:17 +00:00Commented Jan 3, 2017 at 4:32
Batch, 22 bytes
echo Hello, World!>prn
This redirects the output of the echo command to the device file PRN, meaning that it's sent directly to the default printer (usually LPT1).
I neither have a DOS machine nor a printer, so I'm afraid I can't test this right now, but I'm fairly certain I've done this back in the day. It doesn't work on Windows XP or later.
-
\$\begingroup\$ This reminds of when I tried to create a file called
conand was unable to. Ah, the joy of DOS device files... \$\endgroup\$aross– aross2017年01月02日 14:02:00 +00:00Commented Jan 2, 2017 at 14:02 -
\$\begingroup\$ NT (and presumable XP etc) can be configured to print this way using the "net" command. iirc "net use lpt1: something" \$\endgroup\$Jasen– Jasen2017年02月04日 10:28:25 +00:00Commented Feb 4, 2017 at 10:28
Python 2.7, 43 bytes
import os;os.system("lp<<<'Hello, World!'")
Not very interesting, though. Here's a more interesting one:
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")))
Seems a bit too long? Perhaps it's a bit overcomplicated.... :P
Mod Note edited the competitive submission to the top for clarity.
HTML + Javascript, (削除) 37 (削除ここまで) 34 bytes
<body onload=print()>Hello, World!
Tested in Safari:
Thanks to @jimmy23013 for some savings.
-
13\$\begingroup\$ This appears just to open the print dialog box and not actually send the job to the printer without further manual intervention \$\endgroup\$Digital Trauma– Digital Trauma2016年12月31日 05:00:33 +00:00Commented Dec 31, 2016 at 5:00
-
4\$\begingroup\$ @DigitalTrauma JS cannot do that \$\endgroup\$Mr. Alien– Mr. Alien2016年12月31日 11:07:34 +00:00Commented Dec 31, 2016 at 11:07
-
1\$\begingroup\$ Also, you can shave 9 bytes off by omitting
</script>. \$\endgroup\$Erik the Outgolfer– Erik the Outgolfer2016年12月31日 14:35:14 +00:00Commented Dec 31, 2016 at 14:35 -
2\$\begingroup\$ Are you sure, @EriktheOutgolfer? Firefox and Chrome evaluates the script code only when the closing tag is met. \$\endgroup\$manatwork– manatwork2016年12月31日 16:41:29 +00:00Commented Dec 31, 2016 at 16:41
-
3\$\begingroup\$ -3 bytes:
<body onload=print()>Hello, World!\$\endgroup\$jimmy23013– jimmy230132017年01月01日 06:38:50 +00:00Commented Jan 1, 2017 at 6:38
hello + lp + tr, (削除) 9 (削除ここまで) 15 bytes
hello|tr w W|lp
I originally had
hello|lp
But it had the wrong capitalisation on the w
hello is GNU hello from the Debian package hello
-
7\$\begingroup\$
helloprints a lowercasew, as is the custom on most programming sites. (I'm not quite sure how the uppercaseWbecame standard on PPCG.) \$\endgroup\$user62131– user621312016年12月31日 06:25:50 +00:00Commented Dec 31, 2016 at 6:25 -
7\$\begingroup\$ @ais523 I think uppercase W is standard here precisely to avoid built ins like this. \$\endgroup\$Pavel– Pavel2016年12月31日 07:20:02 +00:00Commented Dec 31, 2016 at 7:20
-
2\$\begingroup\$ If the capitalization is wrong, I'm afraid this is invalid. \$\endgroup\$Dennis– Dennis2016年12月31日 16:25:32 +00:00Commented Dec 31, 2016 at 16:25
-
\$\begingroup\$ Thanks for your comments, I will delete this answer tomorrow. \$\endgroup\$Jasen– Jasen2017年01月01日 04:40:08 +00:00Commented Jan 1, 2017 at 4:40
-
6\$\begingroup\$ How about
hello|tr w W|lp? \$\endgroup\$David Conrad– David Conrad2017年01月01日 13:32:53 +00:00Commented Jan 1, 2017 at 13:32
ZX Spectrum BASIC, 16 bytes
LPRINT "Hello, World!"
LPRINT is a 1-byte keyword in ZX Spectrum BASIC, having codepoint 224.
-
1\$\begingroup\$ can you show a photo of the hardcopy. \$\endgroup\$Jasen– Jasen2016年12月31日 04:56:10 +00:00Commented Dec 31, 2016 at 4:56
-
6\$\begingroup\$ @Jasen In theory I still have the kit around, but it would be a bit of a palaver to dig it out and hook it up to an old enough TV. Sorry about that. \$\endgroup\$Neil– Neil2016年12月31日 09:50:33 +00:00Commented Dec 31, 2016 at 9:50
-
\$\begingroup\$ you could probably type that command "blind". \$\endgroup\$Jasen– Jasen2016年12月31日 09:56:07 +00:00Commented Dec 31, 2016 at 9:56
MATLAB, (削除) 40 (削除ここまで) (削除) 37 (削除ここまで) 36 bytes
Printing text is not something you'd normally do in Matlab, but it can be done.
title 'Hello, World!'
axis off;print
I saved 3 bytes thanks to Tom Carpenter (use title instead of text(0,0,. I saved an additional 2 bytes by substiting title('Hello, World!') with title 'Hello, World!' followed by a newline instead of a semicolon.
title adds a title to a figure. If a figure is not yet open, it will be created.
axis off is used to get rid of the frame and axes, so that the text appears alone.
print prints the current figure to the default printer if no input arguments are given.
I printed this (successfully according to the dialog box) on my default printer at the office. I can retrieve it there and prove it but you'll have to wait two weeks. After changing the default to a pdf-printer, this is the output:
^^ Not the correct image anymore.
QBasic, 21 bytes
LPRINT"Hello, World!"
LPRINT sends text directly to the printer. Unfortunately untested, DosBox doesn't natively support NET USE, so I can't reroute LPT1: to NovaPDF.
The problems I have...
UPDATE: Tested it in QB64. Resulting PDF opened in Microsoft Edge. Looks like this: enter image description here
Java, 330 bytes
Golfed:
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 (import plus function only):
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 is not a great golfing language, and certain does an exceptionally poor job golfing anything hardware-related, printing included.
While testing this program, I set my PDF printer as the default. It worked, but also sent a print job to my laser printer containing 87,792 pages of "Hello, World!" I pulled the paper tray and canceled the job, then retested. It did not happen again. Thanks, Windows 10.
-
3\$\begingroup\$ -7 bytes by changing 3x
jobtoj, andi==0toi<1. \$\endgroup\$Kevin Cruijssen– Kevin Cruijssen2017年05月23日 14:51:19 +00:00Commented May 23, 2017 at 14:51
8086 machine code, 28 bytes
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
Uses the standard int 0x17 BIOS call. I don't have my dot-matrix printer set up right now so this code is untested.
How it works:
| 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\$\begingroup\$ Sure, just added it. \$\endgroup\$user5434231– user54342312017年04月22日 04:04:10 +00:00Commented Apr 22, 2017 at 4:04
-
\$\begingroup\$ Now we're talking! \$\endgroup\$lmat - Reinstate Monica– lmat - Reinstate Monica2017年05月03日 19:24:47 +00:00Commented May 3, 2017 at 19:24
-
\$\begingroup\$ Absurdly late reply, but a byte can be saved by using
cwdaftercbwinstead ofxor dx, dx. \$\endgroup\$EasyasPi– EasyasPi2021年02月16日 06:52:45 +00:00Commented Feb 16, 2021 at 6:52
Stuck + Batch, 5 bytes
Inspired by this answer an empty stuck program prints "Hello, World!".
- Have a printer connected to your computers LPT1 port
- Create an empty stuck file to be interpreted (filename a)
- Run the stuck interpretter on the empty file and pipe the result to LPT1
Code
stuck a>LPT1
-
4\$\begingroup\$ If you're using multiple languages, you also need to count the glue that connects them together as part of your byte count. I'd count this as 15 for the Batch program, plus 0 due to the need for a 0-byte external file. \$\endgroup\$user62131– user621312017年01月02日 10:59:38 +00:00Commented Jan 2, 2017 at 10:59
-
2\$\begingroup\$ Can you show distinctly the Windows batch script, and explicitly the command used to call Stuck and pass the result to the printer? By explicitly I mean something like
stuck empty > LPT1. BTW if this uses a REPL I believe the consensus is that should be clearly stated (I believe it's to minimise confusion exactly like this). \$\endgroup\$redstarcoder– redstarcoder2017年01月02日 14:39:20 +00:00Commented Jan 2, 2017 at 14:39 -
1\$\begingroup\$ You can save a byte here by redirecting to PRN instead of LPT1. \$\endgroup\$user5434231– user54342312017年04月22日 06:10:42 +00:00Commented Apr 22, 2017 at 6:10
-
1\$\begingroup\$ IMO you need to add 1 byte for the 1 byte filename. \$\endgroup\$CalculatorFeline– CalculatorFeline2017年05月30日 21:40:32 +00:00Commented May 30, 2017 at 21:40
-
1\$\begingroup\$ @Makonede Don't edit people's code in order to fix it, leave a comment pointing out the problem and potentially suggesting a fix \$\endgroup\$2021年05月28日 16:47:40 +00:00Commented May 28, 2021 at 16:47
GFA-Basic, 22 bytes
Only tested on an Atari ST emulator with the parallel port redirected to a file. It should work on the Windows version of GFA-Basic (which is free), but this is untested.
LPRINT "Hello, World!"
Note: This turns out to be identical to the QBasic syntax.
JavaScript, (削除) 37 (削除ここまで) 36 bytes
print(document.write`Hello, World!`)
Saved 15 bytes thanks to @manatwork and @xem!
-
3\$\begingroup\$ No need to explicitly specify
window:document.write('Hello, World!');print(). Or even shorter:print(document.write('Hello, World!')). \$\endgroup\$manatwork– manatwork2016年12月31日 11:08:24 +00:00Commented Dec 31, 2016 at 11:08 -
3\$\begingroup\$ with ES6 you can even do:
document.write`Hello, world!`(more info here: xem.github.io/articles/#webspeech) \$\endgroup\$xem– xem2016年12月31日 13:03:29 +00:00Commented Dec 31, 2016 at 13:03 -
\$\begingroup\$ Does it print without confirmation? No? Well too bad, it's invalid. \$\endgroup\$CalculatorFeline– CalculatorFeline2017年05月30日 21:39:07 +00:00Commented May 30, 2017 at 21:39
-
\$\begingroup\$ @CalculatorFeline Why the hostility? If you read the footnote of the challenge you'd see
"...Existing answers that do this as of 10:48am PST 31st Dec 2016 will be grandfathered...". \$\endgroup\$Oliver– Oliver2017年05月30日 23:40:22 +00:00Commented May 30, 2017 at 23:40 -
\$\begingroup\$ Oh. I missed that part. \$\endgroup\$CalculatorFeline– CalculatorFeline2017年05月30日 23:50:06 +00:00Commented May 30, 2017 at 23:50
c#, (削除) 259 (削除ここまで) 250 bytes
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();}}
Batch, 32 bytes
echo Hello, World!>t
notepad/P t
Should work on all versions of windows with no manual intervention required.
APL (Dyalog), 50 bytes
Of course we could shell out and use a Batch/Bash solution, but let us instead create a real print job:
{'X.'⎕WC'Text' 'Hello, World!'⍵⊣'X'⎕WC'Printer'}⍳2
⎕WC is Windows Create object
First we create a printer object (a print job) called 'X', then (⊣) in that ('X.') we create a text object at ⍵ the argument of the anonymous function {...}. The argument is ⍳2, which gives the first two integers (1 2) and means 1% from the top and 2% from the left. When the anonymous function terminates, all its local variables (X) are destroyed, which signals to Windows that the print job is ready to be printed:
Print job
Ruby, 55 bytes
IO.write(?l,"Hello, World!");`lpr<<?l`
For Mac and Linux, your default printer must be set at localhost:631.
For Windows, you need to add an lpr port in your printer settings.
-
\$\begingroup\$ No need to write to file; you can just send the string to
lpdirectly:`lp<<<Hello,\ World!`\$\endgroup\$Dingus– Dingus2020年08月14日 02:02:02 +00:00Commented Aug 14, 2020 at 2:02 -
\$\begingroup\$ I figured everyone was doing that, so I just used lpr. Thanks for the advice. \$\endgroup\$Razetime– Razetime2020年08月14日 02:30:38 +00:00Commented Aug 14, 2020 at 2:30
-
\$\begingroup\$ Admittedly it is boring. There are a few ways to golf your version:
File.write->IO.write, you can removemode:?w, and you can use backticks instead ofsystem. \$\endgroup\$Dingus– Dingus2020年08月14日 02:36:42 +00:00Commented Aug 14, 2020 at 2:36
Python 3 (Win32), 114 bytes
I used the win32api library to do this.
import win32api;open('h.txt', 'w').write('Hello, World!');win32api.ShellExecute(0, 'print', 'h.txt', None, '.', 0)
Racket 35 bytes
(system("echo 'Hello World!'\|lp"))
ZPL (Zebra Programming Language), 25 bytes
Code:
^XA^FDHello, World!^XZ~PS
Explanation:
^XA # Start Format
^FDHello, World! # Field Data "Hello, World!"
^XZ # End Format
~PS # Print Start
Lua, (削除) 34 (削除ここまで) 32 bytes
os.execute"lp<<<'Hello, World!'"
-
1\$\begingroup\$ Welcome to Code Golf, and nice first answer! Be sure to check out Tips for golfing in Lua for further help on golfing your answers. \$\endgroup\$Makonede– Makonede2021年05月29日 21:44:22 +00:00Commented May 29, 2021 at 21:44
-
1\$\begingroup\$ Thanks for the tips! Managed to scrape off 2 bytes from my original answer :) \$\endgroup\$Skully– Skully2021年05月29日 22:53:52 +00:00Commented May 29, 2021 at 22:53
HP‐41C series, 44 Bytes
Because this program uses accumulated printer output (ACA), the printer’s print mode must be set to man (manual).
In trace or norm (normal) mode the print buffer is printed prematuraly, thus not producing the desired result.
This preparation cannot be programmed.
01♦LBL⸆P 5 Bytes global label requires 4 + n Bytes
02 ⸆H 2 Bytes set alpha register to the string "H"
03 ACA 2 Bytes accumulate alpha register contents
04 ⸆ELLO, 6 Bytes overwrite alpha register again
05 SF 13 2 Bytes sets lower case flag
06 ACA 2 Bytes accumulate α‐register and translate to lowercase
07 ⸆ W 3 Bytes
08 CF 13 2 Bytes disable lowercase translation
09 ACA 2 Bytes
10 ⸆ORLD 5 Bytes exclamation point cannot be entered via keyboard
11 33 2 Bytes put character code for `!` into `X` register
12 XTOA 2 Bytes append character identified by `X` to α‐register
13 SF 13 2 Bytes
14 ACA 2 Bytes
15 PRBUF 2 Bytes print contents of printer buffer and clear it
16 END 3 Bytes
−1 B:
You can use the command ADV (1 Byte) instead of PRBUF (2 Bytes).
The print buffer procedure starts printing from the left‐hand margin.
The advance procedure prints the buffer right justified.
−2 B:
The END command allows inspecting the program’s size via catalog 1 and forms a barrier for local label search.
A RTN (1 Byte) does not have said characteristics.
Let’s see the program in action:
Note, the video actually shows a program with a couple ADV inserted before the END.
PS: Yeehaw! This is my 100th (programming challenge answer) post!
HTML (33)
Hello, World!<svg onload=print()>
(Prompts a print window in the browser, doesn't print directly)
-
\$\begingroup\$ Is there a reason the tag has to be
<svg>specifically, or would any tag work? (Many tags have shorter names.) \$\endgroup\$user62131– user621312016年12月31日 09:00:51 +00:00Commented Dec 31, 2016 at 9:00 -
8\$\begingroup\$ afaik, only svg, img (with a valid src), iframe and body have an onload event triggered when the page is loaded. img without src triggers an onerror event. all in all, the shortest we've found is svg onload=... \$\endgroup\$xem– xem2016年12月31日 13:02:35 +00:00Commented Dec 31, 2016 at 13:02
-
\$\begingroup\$ The challenge asks for upper case
W(not that it changes your byte count). \$\endgroup\$Martin Ender– Martin Ender2016年12月31日 13:23:32 +00:00Commented Dec 31, 2016 at 13:23
JavaScript + HTML, 20 bytes
print()
Hello, World!
-
\$\begingroup\$ This just opens the print dialog. Further manual intervention is required to actually print. Please see the note at the bottom of the question. \$\endgroup\$Digital Trauma– Digital Trauma2017年04月22日 21:05:31 +00:00Commented Apr 22, 2017 at 21:05
C#, 174 bytes
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();};}
Full/Formatted version:
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);
}
}
}
Javascript, 36 bytes
print(document.write`Hello, World!`)
-
1\$\begingroup\$ This just opens the print dialog. Further manual intervention is required to actually print. Please see the note at the bottom of the question. \$\endgroup\$Digital Trauma– Digital Trauma2017年04月22日 21:05:39 +00:00Commented Apr 22, 2017 at 21:05
Hello, World!to the printer port should be enough. \$\endgroup\$print("Hello, World!")in the Firefox console once and it opened the print dialogue (useless because I wasn't connected to a printer in any way), but now it just returns the string... \$\endgroup\$<script>print("Hello, World!")</script>does open the print dialog, but without the actual text on it. \$\endgroup\$