사용자 정의 텍스트를 전체 화면 크기로 표시하는 애플리케이션의 이름은 무엇입니까?

사용자 정의 텍스트를 전체 화면 크기로 표시하는 애플리케이션의 이름은 무엇입니까?

몇 년 전에 나는 매우 편리한 응용 프로그램을 보았습니다. 명령은 전체 화면에 맞게 확대된 첫 번째 인수를 표시합니다. 예를 들어...

thiscommand AA

...그리고 두 개의 매우 큰 A가 전체 화면을 채우는 것을 볼 수 있습니다. 또는...

thiscommand "[email protected]"

...화면 너비와 동일한 너비로 이메일 주소를 표시합니다. 키를 한 번만 누르면 q끌 수 있습니다 (아마도 ). 사람들과 대화하거나 프리젠테이션을 할 때 짧은 텍스트, 단 몇 단어만 빠르게 표시해야 할 때 일반적으로 이 애플리케이션이 매우 유용하다고 생각합니다.

내 문제는 이 프로그램의 이름을 잊어버렸고 Google을 통해 찾으려고 매우 열심히 노력했지만 성공하지 못했다는 것입니다. 아는 사람 있나요?

답변1

SM:Screen Message를 찾고 계시는 것 같아요

Package: sm
Priority: optional
Section: universe/games
Installed-Size: 99
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: Joachim Breitner <[email protected]>
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

답변2

배너; 내 시스템에서는 printerbanner맨페이지로 연결하려고 했는데 온라인이나 하드 드라이브에서 찾을 수 없습니다.

printerbanner매우 긴 문자열을 허용하기 위해 텍스트를 가로 방향으로 인쇄하지만 정상적으로 인쇄하는 옵션이 없는 것 같습니다.

예시(slm 제공)

$ banner ken

      #    #  #######  #     #
      #   #   #        ##    #
      #  #    #        # #   #
      ###     #####    #  #  #
      #  #    #        #   # #
      #   #   #        #    ##
      #    #  #######  #     #

여러 매개변수는 별도의 줄에 인쇄됩니다.

$ banner one two

      #######  #     #  #######
      #     #  ##    #  #
      #     #  # #   #  #
      #     #  #  #  #  #####
      #     #  #   # #  #
      #     #  #    ##  #
      #######  #     #  #######

      #######  #     #  #######
         #     #  #  #  #     #
         #     #  #  #  #     #
         #     #  #  #  #     #
         #     #  #  #  #     #
         #     #  #  #  #     #
         #      ## ##   #######

이러한 예를 제공해 주셔서 감사합니다, slm. 내 printerbanner인쇄물은 다음과 같이 가로로 인쇄됩니다.

printerbanner -w 64 ken

           ##                                        ## 
           ############################################ 
           ############################################ 
           ############################################ 
           ############################################ 
           ##           #### 
                      ########
                    ########### 
                  ##########  ###
           ##  ###########     ### ## 
           #############         #### 
           ##########             ### 
           ########                ## 
           ######
           ### 
           ##
                    ######## 
                ################
              ####################
             ###################### 
            ####       ##       #### 
            ##         ##         ###
           ##          ##          ## 
           ##          ##          ## 
           ##          ##          ## 
            #          ##         ###
            #          ##        ### 
            ##         ##    #######
             ###       ############
               ##      ##########
                       ########

           ##                      ## 
           ########################## 
           ########################## 
           ########################## 
           ########################## 
           ##                  ###
                                 ## 
                                 ### 
                                  ###
                                  ### 
           ##                    #### 
           ########################## 
           ##########################
           #########################
           ###################### 
           ##

다음은 제가 댓글에서 언급한 현재 버전의 Bash 스크립트로 생성된 PostScript 프로그램의 예입니다. 구문 강조가 부족해서 죄송합니다. 하지만 lang-ps 또는 lang-postscript의 강조가 형편없습니다.

데모.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 뷰어에서 올바르게 표시되어야 합니다. 예를 들어 okularImageMagick/GraphicsMagick 유틸리티를 사용하여 표시하려면 display:

display -geometry 1024x768 -density 72 demo.ps

렌더링된 이미지의 품질을 향상시키려면 밀도 매개변수(예: 300 시도)를 높이십시오. display옵션을 사용하여 배경 창에 이미지를 표시할 수 있습니다 -backdrop. Ctrl-Q를 사용하여 창을 닫습니다.

(Unix & Linux)데모.ps의 텍스트 문자열은 수정할 수 있습니다 . 프로그램은 사용할 올바른 글꼴 크기를 자동으로 계산합니다.

Demo.ps 파일을 PDF로 변환하려면할 수 있다ImageMagick/GraphicsMagick convert유틸리티 사용

convert -page 1024x768 demo.ps demo.pdf

하지만 아마도 사용하는 것이 더 빠를 것입니다(그리고 출력이 더 컴팩트합니다).

ps2pdfwr -g1024x768 -r72  demo.ps demo.pdf

마지막으로 앞서 논의한 Bash 스크립트는 다음과 같습니다. 인수 없이 실행하거나 arg를 사용하여 -h도움말 메시지를 -hh인쇄하세요.

PS 텍스트 라인

#!/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"

관련 정보