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
Beta Decay

@BetaDecay 이미지를 읽지 말고 문서를 생성해야합니다.
Adám

어떤 용지 크기를 사용 / 가정해야합니까, 아니면 중요합니까?
Stephen

답변:


6

맥 OS 배쉬 + 오피스젯 프로 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에 대한 최초의 물리적 객체 제출이어야합니다.
Adám


1
@ Adám 이건 어때?
NoOneIsHere 여기

1

Windows의 APL (Dyalog) , 36 35 바이트

왼쪽 상단에서 백분율로 (Y, X)를 인수로 취하는 익명 함수

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

우리는 세 가지 요소의 목록으로 시작합니다.

{ 익명 함수 (모든 변수는 로컬입니다)

 논쟁, 예. 75 25

( 오른쪽에

  'X'⎕WC'Printer'W indows C 라는 이름의 reate 프린터 객체 X , 반환'#.X'

  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.5x11 인치 (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){}가요?
Adám

아담 @ 있으므로 PrinterJob.print()를 throw PrinterException나는 그것을 해결하기 위해 어떤 방법을 보지 않았다.
저스틴 마리너

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.