Dados dois números, imprima uma página com um "X" no local especificado (± 10%).
Os números devem ser porcentagens ou frações das dimensões da área de impressão da página, por exemplo, [25,75]
ou ["15%","0%"]
ou [0.33,1]
. Você não precisa considerar margens. Lembre-se de indicar qual número é a largura, qual é a altura e qual canto é a origem.
Obviamente, você pode assumir que uma impressora está conectada e qualquer impressora virtual conta também. De fato, convém definir uma impressora PDF como sua impressora padrão antes de iniciar esse desafio.
Você pode criar um arquivo imprimível (por exemplo, um PDF) e enviá-lo para uma impressora virtual, que por sua vez cria o PDF resultante, mas não é possível criar diretamente o PDF final. Esse deve ser um trabalho de impressão adequado.
Se possível, inclua uma foto, digitalização ou captura de tela do resultado ou link para um documento online. Observe que o Imgur aceita PDFs.
Obviamente, você receberá mais votos se colocar um X em vez de gerar novas linhas e espaços com uma fonte e tamanho de papel assumidos.
Exemplo
Para altura de entrada 75% e largura 25%, no canto superior esquerdo, imprima o seguinte documento:
Respostas:
MacOS Bash + OfficeJet Pro 8600, 46
Origem é o canto superior esquerdo.
Fiz uma impressão de teste para verificar as dimensões dos caracteres impressos
lp
na minha impressora - ela parece 82w x 64h, então (número inteiro) multiplica as porcentagens por 3/5 e 4/5, respectivamente, dentro da tolerância de 10%.Resultado, com entrada da linha de comandos de
25 75
:fonte
APL (Dyalog) no Windows,
3635 bytesFunção anônima recebendo (Y, X) em porcentagem da parte superior esquerda como argumento
Começamos com uma lista de três elementos:
{
uma função anônima (todas as variáveis são locais)⍵
o argumento, por exemplo75 25
(
para a direita de'X'⎕WC'Printer'
W indows C objeto reate uma impressora com o nome X , devolvendo'#.X'
2↓
solte dois caracteres para obter apenas'X'
)
para a direita de'Text'
o que vamos adicionar'X.'⎕WC
W INDOWS C reate um (tipo, conteúdo, posição) objecto no objecto X , retornando'#.X'
}
fim da função (como X é local, é destruído quando a função termina, sinalizando ao Windows que concluímos o trabalho de impressão, o que faz com que o Windows o imprima)fonte
Java 8,
210209 bytes-1 byte: alterado para currying sintaxe
Toma entrada como a versão de ponto flutuante de por cento de:
0.25, 0.75
.Se o tamanho do papel puder ser assumido como 8,5 x 11 pol (72 dpi), 184 bytes
Usa valores padrão para imprimir em PDF. Agora leva entrada como versão inteiro por cento:
25, 75
.Se um sistema operacional Windows também puder ser assumido, 177 bytes
Mesmas entradas como acima:
25, 75
.Uso
Caso de teste
Para entrada de
0.25, 0.75
:(Não tenho uma impressora física, mas isso ainda deve funcionar sem problemas)
fonte
catch(Exception e){}
?PrinterJob.print()
joga umPrinterException
e eu não vi nenhuma maneira de contornar isso.C #,
259202201 bytesOnyx é uma fonte instalada na minha máquina Windows 10 por padrão, onde 4 parece ser o nome mais curto da fonte. Eu testei isso executando o seguinte em C # e depois inspecionando
blah
no depurador.Versão completa / formatada:
Caso de teste (0,25, 0,75):
fonte