X ทำเครื่องหมายจุด - งานพิมพ์


10

ให้ตัวเลขสองตัวพิมพ์หน้าด้วย "X" ในตำแหน่งที่ระบุ (± 10%)

ตัวเลขต้องเป็นเปอร์เซ็นต์หรือเศษของขนาดพื้นที่การพิมพ์ของหน้าเว็บเช่น[25,75]หรือหรือ["15%","0%"] [0.33,1]คุณไม่ต้องพิจารณาถึงระยะขอบ เพียงจำไว้ว่าให้ระบุว่าหมายเลขใดคือความกว้างและความสูงและมุมไหนเป็นจุดกำเนิด

แน่นอนคุณอาจคิดว่าเครื่องพิมพ์เชื่อมต่ออยู่และเครื่องพิมพ์เสมือนใด ๆก็นับด้วย ที่จริงแล้วคุณอาจต้องการตั้งค่าเครื่องพิมพ์ PDF เป็นเครื่องพิมพ์เริ่มต้นของคุณก่อนที่จะเริ่มต้นความท้าทายนี้

คุณสามารถสร้างไฟล์ที่พิมพ์ได้ (เช่น PDF) และส่งไปที่เครื่องพิมพ์เสมือนซึ่งจะสร้างผลลัพธ์ PDF ของคุณ แต่คุณไม่สามารถสร้าง PDF ขั้นสุดท้ายได้โดยตรง นี่เป็นงานพิมพ์ที่เหมาะสม

หากเป็นไปได้โปรดรวมภาพถ่ายสแกนหรือภาพหน้าจอของผลลัพธ์หรือลิงก์ไปยังเอกสารออนไลน์ โปรดทราบว่า Imgur ยอมรับไฟล์ PDF

แน่นอนว่าคุณจะได้รับการอัปโหลดมากขึ้นถ้าคุณวาง X จริงๆแทนที่จะแสดงบรรทัดใหม่และช่องว่างด้วยตัวอักษรและขนาดกระดาษ

ตัวอย่าง

สำหรับความสูงอินพุต 75% และความกว้าง 25% จากซ้ายบนให้พิมพ์เอกสารต่อไปนี้:


[25,75]



เราอนุญาตให้อ่านไฟล์ภาพได้จากทุกที่หรือไม่?
Beta Decay

@BetaDecay ไฟล์ภาพอะไร?
Adám

ภาพในคำถามของคุณ: i.stack.imgur.com/rfZeO.png
สลายตัวของเบต้า

@BetaDecay คุณควรจะสร้างเอกสารไม่ใช่อ่านรูปภาพ
Adám

เราควรใช้ / สมมติขนาดกระดาษขนาดใดหรือมีความสำคัญ?
Stephen

คำตอบ:


6

MacOS Bash + OfficeJet Pro 8600, 46

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

Origin เป็นมุมซ้ายบน

ฉันทำแบบทดสอบเพื่อตรวจสอบขนาดตัวอักษรของสิ่งที่พิมพ์โดยlpไปยังเครื่องพิมพ์ของฉัน - ดูเหมือนว่าจะเป็น 82wx64h ดังนั้น (คูณ) จำนวนเต็มคูณด้วย 3/5 และ 4/5 ตามลำดับได้ภายใน 10% ความอดทน

ผลลัพธ์พร้อมอินพุตบรรทัดคำสั่งของ25 75:

ป้อนคำอธิบายรูปภาพที่นี่


6
เดี๋ยวก่อนจะต้องเป็นการส่งวัตถุทางกายภาพครั้งแรกใน PPCG
อดัม


1
@ Adámเกี่ยวกับเรื่องนี้ ?
NoOneIsHere ที่

1

APL (Dyalog)บน Windows ขนาด36 35 ไบต์

ฟังก์ชันที่ไม่ระบุตัวตนรับ (Y, X) เป็นเปอร์เซ็นต์จากซ้ายบนเป็นอาร์กิวเมนต์

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

เราเริ่มต้นด้วยรายการสามองค์ประกอบ:

{ ฟังก์ชั่นที่ไม่ระบุชื่อ (ตัวแปรทั้งหมดอยู่ในท้องถิ่น)

 อาร์กิวเมนต์เช่น 75 25

( ทางขวาของ

  'X'⎕WC'Printer'W indows Cสร้างวัตถุเครื่องพิมพ์ชื่อXคืนค่า'#.X'

  2↓ วางอักขระสองตัวเพื่อรับเพียง 'X'

) ทางขวาของ

'Text' สิ่งที่เราจะเพิ่ม

'X.'⎕WCW indows Cสร้างวัตถุ (ชนิดเนื้อหาตำแหน่ง) ในวัตถุXกลับมา'#.X'

} สิ้นสุดฟังก์ชั่น (เนื่องจากXเป็นโลคัลมันจะถูกทำลายเมื่อฟังก์ชั่นสิ้นสุดลงส่งสัญญาณไปยัง Windows ที่เราใช้งานพิมพ์ทำให้ Windows พิมพ์ออกมา)


X @ 75 25


0

Java 8, 210 209 ไบต์

-1 ไบต์: เปลี่ยนเป็น curating syntax

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 สามารถสันนิษฐานได้ด้วย 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){}?
อดัม

@ AdámเพราะPrinterJob.print()พ่นPrinterExceptionและฉันไม่เห็นวิธีที่จะได้รับรอบ
Justin Mariner

0

C #, 259 202 201 ไบต์

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.