「Hello、World!」という印刷


79

はい、そうです。 印刷ハードウェアプリンタとそれを🖨ハードコピーを作成します。

次のテキストが紙に印刷されるように、必要なコマンド/データをプリンターに送信します。

こんにちは世界!

使用可能なローカルまたはネットワーク接続のプリンターを使用できます。

プリンタで許可されている場合は、白い紙に黒インクで8pt以上のテキストを使用する必要があります。

テキストは独自の行に表示されます。必要に応じて左または右に配置できます。

提出のデジタル写真/ビデオ/ GIFの証拠が役立ちます。

ハードウェアが紙を処理できないが、3D印​​刷、CNC機械加工、または原子レベルでの印刷など、他のエキゾチックなハードコピーの制作を許可する場合、このような興味深い提案を喜んで受け入れます。


明確にするために、質問は「必要なコマンド/データをプリンタに送信します」を尋ねます。これの意味するところは、それ以上のユーザー入力は必要ないということです。印刷ダイアログを開くだけでは不十分です。2016年12月31日午前10時48分(PST)時点でこれを行う既存の回答には、祖父が付きます(ただし、私は賛成しません)。


56
確認のために送信できるアドレスを指定してください。
steenbergh

1
@steenberghうん-良い点-投稿のデジタル写真/ビデオ/ GIFの証拠は十分に良いはずです。
デジタル外傷

3
多くの古いプリンタがカスタムコマンドセットを使用していることに注意してください。これらのほとんどは文字通りASCII文字を印刷するので、問題のプリンターの1つにアクセスできる場合(または単にそうすることを主張できる場合)、Hello, World!プリンターポートへの送信で十分です。

1
私が試したことを誓うことができprint("Hello, World!")、一度Firefoxのコンソールにして(私はどのような方法でプリンタに接続されていなかったため、役に立たない)、それは印刷ダイアログを開いたが、今ではただ...文字列を返す
ETHproductions

2
クロムを行う@ETHproductionsは<script>print("Hello, World!")</script> 、印刷ダイアログを開きますが、実際のテキストは表示されません。
FlipTack 16

回答:


41

Bash、21 19バイト

lp<<<Hello,\ World!

actual printout

そしてそこにあります。

Dennisのおかげで2バイト節約されました!


1
+1スクリプトとして有効。私のMacでも問題なく動作します。コマンドラインで直接実行したい場合は、二重引用符を単一引用符に変更する必要があります。
デジタル外傷

なぜ見栄えを良くするためのバナーを持っていないのか
-juggernauthk108

@ juggernaut1996どこですか?何かをもう一度印刷する必要がある場合ではありません
ブルー

37

PowerShell、18バイト

'Hello, World!'|lp

オンラインでお試しください!

enter image description here


9
TIOリンクのポイントがわからない。とにかく+1。
デジタル外傷

1
@DigitalTrauma面白いと思った。そして、それは私のために投稿を生成します。また、デバッグ出力を見て、ジョブをスプールしようとしている(そして失敗している)ことを確認することもできます。:-p
ブリアンティスト16

19
@DigitalTrauma入力フィールドに住所を入力すると、TIOから結果がメールで送信されます。
デニス

@Dennis燃えるお金があれば、API-to-printサービスを使用する回答を送信します。悲しいかな...
briantist 16

19

QBIC、11バイト

'LPRINT `_h

「Hello、World!」を作成するのをほとんど忘れていました 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!"

私のQBasicの答えと同じ動作をテストし、発見しました: ここに画像の説明を入力してください


1
ええと。そのリンクは何ですか?それはあなたが発明した言語ですか?
eis

1
@eisはい、QBICを作成しました。リンクは、すべてのコードが含まれるGoogleドライブフォルダーです。GitHubを嫌いです...これはQBasic(QBICはQuick Basic's Interpreter for Codegolfの略)の上のインタープリターであり、DosBoxで実行されます。いくつかの例については、ショーケーススレッドをご覧ください(または、プロファイルの回答ページを開いてください。75%はQBICにあります)。WIP。したがって、構文とトークンは時折シフトされます。
steenbergh 16

OPは、組み込みの「hello world」を避けるために大文字の「W」を使用しました(参照)。ジョブ用に独自の組み込みコマンドを作成するのはコードゴルフではなく、組み込みのデフォルト動作で「0バイト」にすることもできます。
キュー

2
@Cœur:最近ではほとんど機能していませんが、ほとんどの新しいゴルフ言語では大文字Wが使用されています。これは、PPCGの標準であるためです。 「課題は将来提出される予定です」

@CœurPPCGへようこそ!あなたはあなたがその特定の懸念が生じた最初の人ではないことを知って驚くかもしれません。ここで読書を開始するには良い場所です:meta.codegolf.stackexchange.com/q/4867/11261そしてさらに、コードゴルフを楽しむ人々は抜け穴を考える多くの時間を過ごす:meta.codegolf.stackexchange.com/q/1061/ 11261
ヨルダン

16

バッチ、22バイト

echo Hello, World!>prn

これにより、echoコマンドの出力がデバイスファイルPRNにリダイレクトされます。つまり、デフォルトのプリンター(通常はLPT1)に直接送信されます。

私はDOSマシンもプリンターも持っていないので、今これをテストすることはできないのではないかと心配していますが、私はこれを過去に行ったことはかなり確信しています。Windows XP以降では動作しません。


これは、呼び出されたファイルを作成しようとしたときにconできなかったことを思い出させます。ああ、DOSデバイスファイルの喜び
...-

NT(および推定XPなど)は、「net」コマンドを使用してこの方法で印刷するように構成できます。IIRC "ネット利用のLPT1:何か"
Jasen

16

HTML + Javascript、 37 34バイト

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

Safariでテスト済み:

ここに画像の説明を入力してください

節約できる@ jimmy23013に感謝します。


11
これは、単に印刷ダイアログボックスを開くには、実際に、さらに手動の介入なしにプリンタにジョブを送信しないで表示されます
デジタルトラウマ

4
@DigitalTrauma JSはそれができません
エイリアン氏

1
@EriktheOutgolferよろしいですか?FirefoxおよびChromeは、終了タグが満たされた場合にのみスクリプトコードを評価します。
マナトワーク16

1
うん、やめよう</script>としたがうまくいかなかった。
ふわふわ

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

13

Python 2.7、421バイト

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

少し長すぎるようですか?おそらくそれは少し複雑です。...:P

たくさんのこんにちは世界

すべての深刻さで、ここに短いものがあります:

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

しかし、あまり面白くない。



13

こんにちは+ lp + tr 9 15バイト

hello|tr w W|lp

私はもともと持っていた

hello|lp

しかし、 w

helloはDebianパッケージhelloの gnu helloです


7
hellowほとんどのプログラミングサイトのカスタムと同様に、小文字を出力します。(WPPCGで大文字がどのように標準になったかはよくわかりません。)

7
@ ais523ここでは、このような組み込みを避けるために、大文字のWが標準であると思います。
パベル

2
大文字が間違っている場合、これは無効だと思います。
デニス

コメントありがとうございます。明日この回答を削除します。
-Jasen

6
どうhello|tr w W|lp
デビッドコンラッド

11

ZX Spectrum BASIC、16バイト

LPRINT "Hello, World!"

LPRINT ZX Spectrum BASICの1バイトのキーワードで、コードポイント224を持ちます。


1
ハードコピーの写真を見せてもらえますか。
ジェイセン

4
@Jasen理論上はまだキットを持っていますが、それを掘り出して古いテレビに接続するのはちょっとした手間です。ごめんなさい
ニール

おそらくそのコマンドを「ブラインド」と入力できます。
Jasen

10

MATLAB、40 37 36バイト

テキストの印刷は、Matlabで通常行うことではありませんが、実行できます。

title 'Hello, World!'
axis off;print

Tom Carpenterのおかげで3バイト節約しました(。のtitle代わりに使用しtext(0,0,ます。title('Hello, World!') withタイトル 'Hello、World!'の後にセミコロンではなく改行を追加することで、さらに2バイトを節約しました。

title図にタイトルを追加します。フィギュアがまだ開いていない場合、作成されます。

axis off は、テキストが単独で表示されるように、フレームと軸を取り除くために使用されます。

print 入力引数が指定されていない場合、現在のFigureを既定のプリンターに印刷します。

これを(ダイアログボックスによると)オフィスの既定のプリンターで印刷しました。そこに取り出して証明できますが、2週間待たなければなりません。デフォルトをpdf-printerに変更すると、これが出力になります。

ここに画像の説明を入力してください

^^もう正しい画像ではありません。


8

QBasic、21バイト

LPRINT"Hello, World!"

LPRINTテキストをプリンターに直接送信します。残念ながらテストされていませんが、DosBoxはネイティブにサポートしていないためNET USELPT1:NovaPDFに転送できません。

私が持っている問題...

更新:QB64でテストしました。結果のPDFがMicrosoft Edgeで開かれました。次のようになります。 ここに画像の説明を入力してください


7

8086マシンコード、28バイト

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

標準のint 0x17BIOS呼び出しを使用します。現在、ドットマトリックスプリンターをセットアップしていないため、このコードはテストされていません。

使い方:

            |   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
確かに、追加しただけです。
user5434231

今話しています!
限定A罪

6

バッチ+スタック、12バイト

この答えに触発され、空のスタックプログラムが「Hello、World!」と出力します。

  1. コンピューターのLPT1ポートにプリンターを接続します
  2. 解釈する空のスタックファイルを作成します(ファイル名a)
  3. 空のファイルでスタックインタープリターを実行し、結果をLPT1にパイプします。

コード

stuck a>LPT1

4
複数の言語を使用している場合、それらをつなぐ接着剤もバイトカウントの一部として数える必要があります。バッチプログラムの場合は15バイト、0バイトの外部ファイルが必要なため0とカウントします。

1
Windowsバッチスクリプトと、Stuckを呼び出して結果をプリンターに渡すために使用するコマンドを明示的に表示できますか?明示的に私はのようなものを意味しますstuck empty > LPT1。ところで、これがREPLを使用している場合、コンセンサスは明確に述べられるべきだと思います(このように混乱を最小限に抑えるためだと思います)。
redstarcoder

@ ais523私は征服する-私は接着剤を数える必要があり、そのため、それを5バイトから12に上げた
ダニエル

LPT1の代わりにPRNにリダイレクトすることで、ここにバイトを保存できます。
user5434231

1
IMOでは、1バイトのファイル名に1バイトを追加する必要があります。
CalculatorFeline

4

GFA-Basic、22バイト

パラレルポートがファイルにリダイレクトされているAtari STエミュレーターでのみテストされています。WindowsバージョンのGFA-Basic(無料)で動作するはずですが、これはテストされていません。

LPRINT "Hello, World!"

注:これは、QBasic構文と同一であることが判明しています。


4

Java、330バイト

ゴルフ:

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 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は優れたゴルフ言語ではありません。また、ハードウェア関連のあらゆるものを印刷するなど、特定の分野で非常に貧弱な仕事をしている人います。

このプログラムのテスト中に、PDFプリンターをデフォルトとして設定しました。うまくいきましたが、87,792ページの「Hello、World!」を含む印刷ジョブをレーザープリンターに送信しました。用紙トレイを引き出してジョブをキャンセルし、再テストしました。二度と起こらなかった。おかげで、Windows 10。


-7バイト、3x jobをにj、およびi==0に変更しi<1ます。
ケビンCruijssen

3

JavaScript、37 36バイト

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

@manatworkと@xemのおかげで15バイト節約できました!


3
明示的に指定する必要はありませんwindowdocument.write('Hello, World!');print()。またはさらに短く:print(document.write('Hello, World!'))
マナトワーク16

3
ES6であなたも行うことができます document.write`Hello, world!` (ここでは詳細:xem.github.io/articles/#webspeech
XEM

確認なしで印刷しますか?番号?あまりにも悪い、それは無効です。
CalculatorFeline

@CalculatorFelineなぜ敵意があるのですか?あなたが見る挑戦の脚注を読むなら"...Existing answers that do this as of 10:48am PST 31st Dec 2016 will be grandfathered..."
オリバー

ああ。私はその部分を逃しました。
CalculatorFeline


2

C#、259 250バイト

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();}}

出力例


2

バッチ、32バイト

echo Hello, World!>t
notepad/P t

手動での介入を必要とせずに、すべてのバージョンのウィンドウで動作するはずです。


1

ラケット35バイト

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

1

HTML(33)

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

(ブラウザで印刷ウィンドウを表示し、直接印刷しません)


タグを<svg>具体的に指定しなければならない理由はありますか?(多くのタグは短い名前を持っています。)

7
afaik、svg、img(有効なsrcを使用)、iframe、およびbodyのみに、ページのロード時にトリガーされるonloadイベントがあります。srcのないimgは、onerrorイベントをトリガーします。すべてのすべてで、私たちが発見した最短は、SVGのonloadは= ...である
XEM

チャレンジは大文字を要求しWます(バイトカウントを変更することではありません)。
マーティンエンダー

1

APL(Dyalog)、50バイト

もちろん、Batch / Bashソリューションを使用して使用することもできますが、代わりに実際の印刷ジョブを作成します。

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

⎕WC あるW indows C reate目的は

まず、というプリンターオブジェクト(印刷ジョブ)を作成し'X'、次に()で('X.'匿名関数の引数にテキストオブジェクトを作成します{}。引数は⍳2、最初の2つの整数(1 2)を与え、上から1%、左から2%を意味します。無名関数が終了すると、そのすべてのローカル変数(X)が破棄され、印刷ジョブの印刷準備ができたことをWindowsに通知します。


印刷ジョブ


0

Javascript、36バイト

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

これにより、印刷ダイアログが開きます。実際に印刷するには、さらに手動による介入が必要です。質問の下部にあるメモをご覧ください。
デジタル外傷


0

JavaScript + HTML、20バイト

print()
Hello, World!


これにより、印刷ダイアログが開きます。実際に印刷するには、さらに手動による介入が必要です。質問の下部にあるメモをご覧ください。
デジタル外傷

0

C#、174バイト

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();};}

フル/フォーマット済みバージョン:

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);
        }
    }
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.