以全屏大小顯示自定義文本的應用程序的名稱是什麼?
幾年前我見過一個非常方便的應用程序:命令顯示它的第一個參數被放大以適合整個螢幕。例如…
thiscommand AA
…然後您會看到兩個非常大的 A 字母填滿整個螢幕,或者…
thiscommand "name@mail.com"
…然後顯示電子郵件地址的寬度等於螢幕的寬度。只需一次擊鍵(可能
q
),您就可以關閉它。我認為這個應用程序通常非常有用,當您與人交談或進行展示時,您很快需要顯示一些簡短的文本,只有幾個單詞。我的問題是我忘記了這個程序的名稱,我很努力地通過Google找到,但沒有成功。有人知道嗎?
橫幅;在我的系統上它被稱為
printerbanner
. 我打算連結到一個手冊頁,但我找不到一個,無論是線上還是在我的高畫質…
printerbanner
橫向列印文本,以允許非常長的字元串,它似乎沒有正常列印的選項。範例(由 slm 提供)
$ banner ken # # ####### # # # # # ## # # # # # # # ### ##### # # # # # # # # # # # # # ## # # ####### # #
多個參數列印在不同的行上:
$ banner one two ####### # # ####### # # ## # # # # # # # # # # # # # ##### # # # # # # # # # ## # ####### # # ####### ####### # # ####### # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # ## ## #######
感謝這些例子,slm。我的
printerbanner
列印橫向,像這樣:
printerbanner -w 64 ken
## ## ############################################ ############################################ ############################################ ############################################ ## #### ######## ########### ########## ### ## ########### ### ## ############# #### ########## ### ######## ## ###### ### ## ######## ################ #################### ###################### #### ## #### ## ## ### ## ## ## ## ## ## ## ## ## # ## ### # ## ### ## ## ####### ### ############ ## ########## ######## ## ## ########################## ########################## ########################## ########################## ## ### ## ### ### ### ## #### ########################## ########################## ######################### ###################### ##
這是我在評論中提到的目前版本的 Bash 腳本生成的 PostScript 程序範例。很抱歉缺少語法高亮,但是為 lang-ps 或 lang-postscript 所做的高亮是可怕的。
demo.ps
%!PS-Adobe-3.0 %%BoundingBox: 0 0 1024 768 %%Title: (TextLine) %%Pages: 1 1 %%Creator: PSTextLine by PM 2Ring %%Creationdate: 2014.11.07 13:30:51 %%EndComments 16 dict begin %Use ISO Latin 1 font encoding /ISOLatin{ dup length dict begin {1 index /FID ne {def}{pop pop}ifelse}forall /Encoding ISOLatin1Encoding def currentdict end /IsoL1 exch definefont }bind def %Show string centred on the page and scaled to fill the page /ShowCentred{ 0 0 moveto %Get string's bounding box. dup false charpath flattenpath pathbbox newpath %Stack - Left Bottom Right Top /y1 exch def /x1 exch def /y0 exch def /x0 exch def %Calculate new font scale currentfont /sx XM Margin sub x1 x0 sub div def /sy YM Margin sub y1 y0 sub div def /Scale sx sy le {sx}{sy}ifelse def Scale scalefont setfont %Calculate coordinates that will shift the centre of the box to the page centre XM x0 x1 add Scale mul sub 2 div YM y0 y1 add Scale mul sub 2 div moveto show }bind def %%Page: 1 1 gsave /XM 1024 def /YM 768 def %Twice the X & Y margins /Margin 16 def /Times-Roman findfont ISOLatin 72 scalefont setfont (Unix & Linux) ShowCentred grestore showpage end %%PageTrailer %%Trailer %%EOF
它應該與任何 PostScript 查看器一起正確顯示,例如
okular
. 要使用 ImageMagick / GraphicsMagickdisplay
實用程序顯示它:display -geometry 1024x768 -density 72 demo.ps
增加密度參數(例如,嘗試 300)以提高渲染圖像的質量。
display
您可以使用’-backdrop
選項在背景視窗中顯示圖像;使用 Control-Q 關閉視窗。可以修改
(Unix & Linux)
demo.ps中的文本字元串;該程序將自動計算要使用的正確字型大小。要將 demo.ps 轉換為 PDF,您可以使用 ImageMagick / GraphicsMagick
convert
實用程序convert -page 1024x768 demo.ps demo.pdf
但使用起來可能更快(並且輸出更緊湊)
ps2pdfwr -g1024x768 -r72 demo.ps demo.pdf
終於,這是我之前談到的 Bash 腳本。不帶 args 或 arg of 執行它以
-h
獲取幫助消息;-hh
列印額外的幫助。PSTextLine
#!/usr/bin/env bash #Generate a Postscript file that prints a line of text that fills the screen #Written by PM 2Ring 2014.11.01 #Posted to http://unix.stackexchange.com/a/164977/88378 bold(){ echo -e "\x1b[1m$*\x1b[0m"; } help1() { cat << EOF Display a single line of text at the largest scale that fits within the screen (or requested size). This script generates a Postscript program which performs the scaling calculation and sets the text in the requested font. The Postscript file is then displayed using the ImageMagick / GraphicsMagick utility $(bold display), which should be installed on most modern Linux systems. $(bold Usage:) $(basename "$0") [-h] [-bden] [-f fontname] [-g geometry] [-m margin] [-q quality] [-s savename.ps] [-t text] text... Options may be given in any order. $(bold Options:) -h : print this Help & exit. -hh prints extra help. -b : disable the use of a Backdrop window. -d : disable Display of the text. -e : disable backslash Escaping of the text string. -n : use Normal encoding instead of the default ISO Latin1 encoding. -f : the name of the Font, either a PostScript or system font. Default = 'Times-Roman' -g : Geometry, in WIDTHxHEIGHT format. If not given, the current default screen size is used. -m : left & right (&/or top & bottom) Margin (in pixels) around text bounding box. Default = 8 -q : rendering Quality. Default quality = 1.0 -s : Save PostScript. Use $(bold '-s -') to save to stdout. -t : the Text to display. EOF } help2() { cat << EOF By default, $(bold display) shows the text in a backdrop window. You can use Control-Q to close $(bold display) windows, or use a right mouse click to bring up a context menu. See the $(bold display) documentation for further information. $(bold Text) Multiple -t text options may be given, they will be joined together with an intervening space. Any arguments specified after the options will be added to the text, so there is no need to quote the text string, but it will be necessary to use -- to terminate the options section if any of the subsequent text words begin with a - dash. $(bold Font) The font name must conform to the PostScript naming convention, in particular, it cannot contain spaces. So if a font you'd like to use does have spaces in its name try dropping the spaces or replacing them with a - dash. $(bold Quality) The quality setting is essentially an internal scaling factor for the $(bold display) utility. The default quality setting of 1.0 is reasonably fast, but the outline of the text may look jagged, especially with short text strings. Lower quality settings may be a little faster, but the outline can look quite blurry; settings lower than 0.2 are virtually unusable. High quality settings take longer to render but can look quite good; 2.0 should be adequate for most purposes, 4.0 takes quite a while to render but looks great; higher settings take even longer but the improved quality is unlikely to be noticeable. $(bold Save) Normally, the PostScript program generated by this script is simply piped into the $(bold display) utility, but you may save it to a file. This allows you to show (or print) the rendered text with other PostScript utilities. If you wish, you can edit the PostScript program by hand, to change the font, text, page size, etc, as the text scaling calculations are performed within the PostScript program. To display the file "savename.ps" with okular: okular savename.ps To display it with GhostScript in a 1024x768 window: gs -sDEVICE=x11alpha -dBATCH -g1024x768 -r72 savename.ps $(bold Escape) By default, this program prefixes all backslashes $(bold '\\') and parentheses $(bold '()') in the text string with a backslash to convert the string to PostScript form. You can disable this behaviour using the $(bold '-e') option. The PostScript language uses backslash as an escape character, and it uses parentheses instead of quotes to enclose strings; any unmatched parentheses in a string must be backslash escaped (but matched parentheses are ok). PostScript understands various other standard C escape sequences, including character codes represented by backslashed octal sequences, but it does not understand hexadecimal escape sequences. Please see a PostScript reference for further information. $(bold Encoding) By default, this program uses the ISO Latin 1 encoding for text, but you can use PostScript's Normal encoding vector by specifying the $(bold '-n') option. This program does not support Unicode text. EOF } Usage() { help1 [[ $showhelp -gt 1 ]] && help2 exit "$1" } #Get args from command line Getargs() { showhelp=0 backdrop="-backdrop" display=True escape=True encoding=ISOLatin font=Times-Roman geometry="" margin=8 quality=1.0 text="" savename="" while getopts ':hbdenf:g:m:q:t:s:' opt; do case $opt in h) showhelp=$((showhelp+1)) ;; b) backdrop="" ;; d) display=False ;; e) escape=False ;; n) encoding="" ;; f) font=$OPTARG ;; g) geometry=$OPTARG ;; m) margin=$OPTARG ;; q) quality=$OPTARG ;; s) savename=$OPTARG ;; t) text="$text $OPTARG" ;; ?) bold "Bad option -$OPTARG"; Usage 1 ;; esac done shift "$((OPTIND-1))" # Shift off the options and optional --. text="$text $*" } [[ $# = 0 ]] && Usage 0 Getargs "$@" [[ $showhelp -gt 0 ]] && Usage 0 #Get current default screen dimensions if no geometry is specified [[ -z $geometry ]] && geometry="$(xdpyinfo | awk '/dimensions:/{print $2}')" #Trim leading & trailing spaces from the text. read -rd '' text <<< "$text" #Escape backslashes and parentheses [[ $escape = True ]] && text="$(sed 's/[\()]/\\&/g' <<< "$text")" #Allow '-' as a synonym for /dev/stdout for output file [[ $savename = - ]] && savename=/dev/stdout # cat << EOF # $(bold Args) # backdrop=<$backdrop> # display=<$display> # encoding=<$encoding> # font=<$font> # geometry=<$geometry> # margin=<$margin> # quality=<$quality> # text=<$text> # savename=<$savename> # # EOF [[ -z $text ]] && { bold "No text found!"; Usage 1; } [[ $display = False && -z $savename ]] && { bold "No PostScript output or display requested!"; Usage 1; } #Extract screen width & height from geometry string IFS='x' read xm ym <<< "$geometry" #Convert quality to density; the nominal density is 72 pixels per inch density=$(bc <<< '72*'"$quality") #Generate the PostScript file read -rd '' postscript <<PSEOF %!PS-Adobe-3.0 %%BoundingBox: 0 0 $xm $ym %%Title: (TextLine) %%Pages: 1 1 %%Creator: PSTextLine by PM 2Ring %%Creationdate: $(date +'%Y.%m.%d %X') %%EndComments %%BeginProlog 16 dict begin %Use ISO Latin 1 font encoding /ISOLatin{ dup length dict begin {1 index /FID ne {def}{pop pop}ifelse}forall /Encoding ISOLatin1Encoding def currentdict end /IsoL1 exch definefont }bind def %Show string centred on the page and scaled to fill the page /ShowCentred{ 0 0 moveto %Get string's bounding box. dup false charpath flattenpath pathbbox newpath %Stack - Left Bottom Right Top /y1 exch def /x1 exch def /y0 exch def /x0 exch def %Calculate new font scale currentfont /sx XM Margin sub x1 x0 sub div def /sy YM Margin sub y1 y0 sub div def /Scale sx sy le {sx}{sy}ifelse def Scale scalefont setfont %Calculate coordinates that will shift the centre of the box to the page centre XM x0 x1 add Scale mul sub 2 div YM y0 y1 add Scale mul sub 2 div moveto show }bind def %%EndProlog %%Page: 1 1 %%PageBoundingBox: 0 0 $xm $ym gsave /XM $xm def /YM $ym def %Twice the X & Y margins /Margin $((2 * margin)) def /$font findfont $encoding 72 scalefont setfont ($text) ShowCentred grestore showpage end %%PageTrailer %%Trailer %%EOF PSEOF [[ -n $savename ]] && echo >"$savename" "$postscript" [[ $display = True ]] && display $backdrop -geometry "$geometry" -density "$density" PS:- <<< "$postscript" # gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="$savename" -g"$geometry" -r72 - <<< "$postscript" # display $backdrop -geometry "$geometry" -density "$density" "$savename"
我認為您正在搜尋 SM : screen message
Package: sm Priority: optional Section: universe/games Installed-Size: 99 Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Original-Maintainer: Joachim Breitner <nomeata@debian.org> Architecture: amd64 Source: screen-message Version: 0.22.1-2 Depends: libc6 (>= 2.4), libcairo2 (>= 1.2.4), libglib2.0-0 (>= 2.14.0), libgtk-3-0 (>= 3.0.0), libpango-1.0-0 (>= 1.14.0), libpangocairo-1.0-0 (>= 1.14.0) Filename: pool/universe/s/screen-message/sm_0.22.1-2_amd64.deb Size: 14282 MD5sum: 9c3f592270a9a427d3b6685e2b17069d SHA1: ee764a76a51717304c3adca698c28446e4d48205 SHA256: 73e896dd781d89638686d850f68aa452c6c2592993f181ef5b4db2787a3dac2a Description-en: Displays a short text fullscreen Screen Message will display a given multi-line message as large as possible, fullscreen and black on white. You can specify the text either when launching sm, or edit it while the program is running. . It is useful to send messages across a room, e.g. during an university lecture. For fast startup, it is recommended to bind it to a key in your Desktop Environment. Description-md5: 91fe8f689d157fbba591713d7e201f4d Bugs: https://bugs.launchpad.net/ubuntu/+filebug Origin: Ubuntu