转换文本以适合页面(从命令行)

转换文本以适合页面(从命令行)

如何缩放短文本(从一个单词到几行短行)以适合页面(如果可以选择居中或左对齐等,那就太好了)? (来自命令行)

命令:

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

仅在角落生成(错误!!!)小文本(我希望将其缩放到页面):

在此输入图像描述

请注意,我使用自定义页面格式(在上述情况下为 57 毫米 x 32 毫米)。

你有使用相当标准的包(比生成 LaTeX 更简单)的东西吗?

(环境:打印机适用于 png、pdf、ps)

答案1

图像魔术师可以做到。请参阅“文本处理 - 最适合图像”下的示例

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

它还支持多行:

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

第一个命令的输出: 在此输入图像描述

第二个命令的输出: 在此输入图像描述

答案2

你可以试试enscript。它有很多功能,其中许多功能您不感兴趣,但您可以设置字体大小和媒体大小。它不会居中或对齐,但您可以使用 Ghostview 可视化结果并修改数据。尝试这个:

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

您可以看到文本被分成给定标签尺寸的 2 页。

建议命令的输出:

第 1 页: 在此输入图像描述 第2页:在此输入图像描述

答案3

釉面既有用于创建文件的GUI 编辑器 ( glabels-3) ,也有用于从命令行或脚本打印先前创建的 .glabel 的程序。.glabelsglabels-3-batch

它支持各种文件格式(包括 CSV)的“邮件合并”功能。

.glabels 文件只是gzip压缩的 XML。我创建了一个简单的文件glabels-3(一个包含 7 行文本的大文本字段)。gunzip-ing 文件后,它看起来像这样:

 <?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>

应该很容易使用任何 XML 工具或编程库生成,甚至只是打印shawk或中的语句perl

相关内容