Converter texto para caber na página (da linha de comando)

3

Como escalar textos curtos (de uma palavra até duas linhas curtas) para ajustar a página (é bom ter escolha se estiver centralizado ou alinhado à esquerda, etc.)?  (da linha de comando)

Comando:

echo Audio | lpr -P Dymo450LabelWriter_network -o raw -o scaling=100

Produz (errado !!!) apenas um texto pequeno no canto (gostaria que fosse dimensionado para a página):

Por favor, note que eu uso formatos de página personalizados (no caso acima é 57 mm x 32 mm).

Você tem algo usando pacotes padrão (mais simples do que gerar o LaTeX)?

(Ambiente: impressora funciona bem com png, pdf, ps)

    
por Grzegorz Wierzowiecki 24.07.2016 / 20:38

3 respostas

4

ImageMagick pode fazê-lo. Veja os exemplos de em "Manipulação de texto - Melhor ajuste à imagem" .

convert -background white -fill black -density 600x600 -size 1346x756 -gravity center label:'Audio' audio.pdf

Também suporta multilinha:

convert -background white -fill black -density 600x600 -size 1346x756 -gravity center label:'Audio\nCables' audio_cables.pdf

Saída do primeiro comando:

Saídadosegundocomando:

    
por 24.07.2016 / 23:58
2

Você pode tentar enscript . Ele tem muitos recursos, muitos dos quais não lhe interessam, mas você pode definir um tamanho de fonte e tamanho de mídia. Ele não se centra nem justifica, mas você pode visualizar o resultado com ghost-ghost e alterar seus dados. Tente isto:

cat <<\! >>~/.enscriptrc
# Media: name width height llx lly urx ury   bounding box lowleft upright
# 57mm x 32 mm converted to points:
Media: mylabel 161 90 0 0 161 90
!

echo 'hello and hello followed by bye bye' |
enscript -p - -h -B -M mylabel -f Helvetica-Bold@30 >out.ps
gv --media=mylabel out.ps

Você pode ver o texto sendo dividido em duas páginas do tamanho de seu marcador.

Saída do comando proposto:

página 1: página2:

    
por 24.07.2016 / 22:55
2

glabels tem um editor de GUI ( glabels-3 ) para criar .glabels arquivos e um programa glabels-3-batch para impressão criada anteriormente .glabels da linha de comando ou script.

Ele suporta a funcionalidade "mail-merge" de vários formatos de arquivo, incluindo CSV.

O arquivo .glabel é apenas gzip -compressed XML. Eu criei um arquivo simples com glabels-3 (um grande campo de texto com 7 linhas de texto). Depois de gunzip -ing o arquivo, é assim:

 <?xml version="1.0"?>
<Glabels-document xmlns="http://glabels.org/xmlns/3.0/">
  <Template brand="Dymo" part="99012" size="Other" width="35.9999mm" height="88.9998mm" description="Large Address Labels">
    <Meta category="label"/>
    <Meta category="mail"/>
    <Label-rectangle id="0" width="35.9999mm" height="88.9998mm" round="0mm" x_waste="0mm" y_waste="0mm">
      <Markup-margin size="0mm"/>
      <Layout nx="1" ny="1" x0="0mm" y0="0mm" dx="35.9999mm" dy="88.9998mm"/>
    </Label-rectangle>
  </Template>
  <Objects id="0" rotate="True">
    <Object-text x="1.33759mm" y="1.0501mm" w="86.1756mm" h="33.7488mm" justify="Left" valign="Top" auto_shrink="False" a0="1" a1="0" a2="0" a3="1" a4="0" a5="0">
      <Span color="0x000000ff" font_family="Sans" font_size="12" font_weight="Regular" font_italic="False" line_spacing="1">Line1<NL/>Line2<NL/>Line3<NL/>Line4<NL/>Line5<NL/>Line6<NL/>Line7</Span>
    </Object-text>
  </Objects>
  <Data/>
</Glabels-document>

Deve ser fácil de gerar com qualquer ferramenta XML ou biblioteca de programação, ou até mesmo imprimir instruções em sh , awk ou perl .

    
por 25.07.2016 / 16:05