Xはスポットをマークします–印刷ジョブ


10

2つの数値を指定して、指定された場所に「X」が付いたページを印刷します(±10%)。

数字は割合やページの印刷領域の大きさの画分、例えばいずれかでなければならない[25,75]か、["15%","0%"]または[0.33,1]。マージンを考慮する必要はありません。幅と高さ、そして角が原点であることを忘れないでください。

もちろん、プリンターが接続されていると想定することもでき、仮想プリンターもカウントされます。実際、このチャレンジを始める前に、PDFプリンターをデフォルトのプリンターとして設定することをお勧めします。

印刷可能なファイル(PDFなど)を作成して仮想プリンターに送信すると、結果のPDFが作成されますが、最終的なPDFを直接作成することはできません。これは適切な印刷ジョブでなければなりません。

可能であれば、結果の写真、スキャン、スクリーンショット、またはオンラインドキュメントへのリンクを含めてください。ImgurはPDFを受け入れることに注意してください。

もちろん、想定されたフォントと用紙サイズで改行とスペースを出力するのではなく、実際にXを配置すると、より多くの投票が得られます。

入力の高さ75%、幅25%の場合、左上から次のドキュメントを印刷します。


[25,75]



どこからでも画像ファイルを読み込めますか?
ベータ崩壊

@BetaDecayどんな画像ファイル?
アダム

あなたの質問の画像:i.stack.imgur.com/rfZeO.png
Beta Decay

@BetaDecay画像を読み取るのではなく、ドキュメントを生成することになっています。
アダム2017年

どの用紙サイズを使用/想定すべきですか、それとも問題ですか?
スティーブン

回答:


6

MacOS Bash + OfficeJet Pro 8600、46

(yes ''|sed $[$2*3/5]q;printf %$[$1*4/5]sX)|lp

原点は左上隅です。

私はlpプリンターに印刷されたものの文字寸法を確認するためにテスト印刷を行いました-それは82w x 64hのようですので、(整数)パーセンテージをそれぞれ3/5と4/5で乗算すると、10%の許容範囲内になります。

結果、コマンドライン入力25 75

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


6
おっと、PPCGで最初の物理的なオブジェクトの提出である必要があります。
アダム


1
@Adám これはどうですか?
NoOneIsHere

1

WindowsのAPL(Dyalog)36 35バイト

左上からパーセントで(Y、X)を引数として取る無名関数

{'X.'WC'Text'(2'X'WC'Printer')⍵}

まず、3つの要素のリストから始めます。

{ 無名関数(すべての変数はローカルです)

 引数、例えば 75 25

( の右に

  'X'⎕WC'Printer'W indows Cという名前reate A PrinterオブジェクトのX、帰国'#.X'

  2↓ ちょうど得るために2文字を落とす 'X'

) の右に

'Text' 追加するもの

'X.'⎕WCW indows C reate A(種類、含有量、位置)オブジェクト内のオブジェクトX、復帰'#.X'

} 関数の終わり(Xはローカルであるため、関数が終了すると破棄され、印刷ジョブが完了したことをWindowsに通知します。これにより、Windowsで印刷されます)


X @ 75 25


0

ジャワ8、210の 209バイト

-1バイト:カリー化構文に変更されました

import java.awt.print.*;
x->y->{PrinterJob j=PrinterJob.getPrinterJob();j.setPrintable((g,p,i)->{g.drawString("X",(int)(p.getWidth()*x),(int)(p.getHeight()*y));return i;});try{j.print();}catch(Exception e){}};

入力をパーセントの浮動小数点バージョンとして受け取ります:0.25, 0.75

用紙サイズを8.5x11in(72dpi)と想定できる場合、184バイト

import java.awt.print.*;
x->y->{PrinterJob j=PrinterJob.getPrinterJob();j.setPrintable((g,p,i)->{g.drawString("X",x*612/100,y*792/100);return i;});try{j.print();}catch(Exception e){}};

PDFへの印刷にデフォルト値を使用します。パーセントの整数バージョンとして入力を受け取ります:25, 75

Windows OSも想定できる場合は177バイト

import sun.awt.windows.*;
x->y->{WPrinterJob j=new WPrinterJob();j.setPrintable((g,p,i)->{g.drawString("X",x*612/100,y*792/100);return i;});try{j.print();}catch(Exception e){}};

上記と同じ入力:25, 75

使用法

import java.awt.print.*;
...
Function<Double, Consumer<Double>> f =
x->y->{PrinterJob j=PrinterJob.getPrinterJob();j.setPrintable((g,p,i)->{g.drawString("X",(int)(p.getWidth()*x),(int)(p.getHeight()*y));return i;});try{j.print();}catch(Exception e){}};
...
f.apply(.25).accept(.75);

テストケース

入力用0.25, 0.75

Java Printing Test Case

(物理的なプリンターはありませんが、問題なく動作するはずです


非常に印象的。なぜ必要なのcatch(Exception e){}ですか?
アダム2017年

@AdámをPrinterJob.print()スローし、PrinterExceptionそれを回避する方法を私は見なかったからです。
ジャスティンマリナー2017年

0

C#、259 202201バイト

namespace System.Drawing.Printing{w=>h=>{var p=new PrintDocument();p.PrintPage+=(s,e)=>e.Graphics.DrawString("X",new Font("Onyx",9),Brushes.Red,e.PageBounds.Width*w,e.PageBounds.Height*h);p.Print();};}

Onyxは、Windows 10マシンにデフォルトでインストールされるフォントです。4が最も短いフォント名のようです。次のコードをC#で実行してblahから、デバッガーで検査することでテストしました。

var blah = FontFamily.Families.GroupBy(o => o.Name.Length)
                              .OrderBy(g => g.Key);

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

namespace System.Drawing.Printing
{
    class P
    {
        static void Main(string[] args)
        {
            Func<float, Action<float>> f = w => h =>
            {
                var p = new PrintDocument();
                p.PrintPage += (s, e) =>
                    e.Graphics.DrawString("X", new Font("Onyx", 9), Brushes.Red,
                                          e.PageBounds.Width * w, e.PageBounds.Height * h);
                p.Print();
            };

            f(0.25f)(0.75f);
        }
    }
}

テストケース(0.25、0.75):


ドキュメントの例

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