Чередование зеленых и синих полос в распечатке PDF, как на старой бумаге на матричных принтерах.

Есть ли способ добиться вывода PDF-файла в Linux?
Под этим я подразумеваю чередующиеся сине-зеленые полосы, которые раньше предварительно печатались на бумаге для матричных принтеров. Направляющие/отверстия по бокам будут приятным бонусом!

Есть программа в Windows,HercPrtкоторый дает этот результат либо из эмулятора Hercules, либо с помощью конвертера текста в PDF. Возможно, я ищу виртуальный принтер CUPS для создания полос, или конвертер текста в PDF, или даже шаблон в LibreOffice. Другие идеи, конечно, приветствуются.

2 ответа

...Кстати - распечатка на этом снимке не с матричного принтера. Это либо цепной, поездной или ленточный принтер. Это были высокоскоростные ударные принтеры, которые вы использовали на мэйнфреймах... https://www.pcmag.com/encyclepedia/term/chain-printer Не то чтобы это имело значение для бумаги или вашей виртуальной распечатки, но я думал, что оставлю комментарий ;)

Используя Postscript, можно создать что-то вроде:

«Перфорации» круглые, но при конвертации PDF в JPG они стали квадратными :-(. Текст на белом фоне тоже не жирный.

Вывод, который вы видите, создан следующей программой postscript. Не смотрите слишком внимательно, это моя первая постскриптумная речь. Он создает фон (процедуру contform) в начале каждой страницы, считывает текстовый файл (/tmp/passwd) и печатает его с разрешением 6lpi в формате страницы по умолчанию (в моем случае A4). Чтобы выполнить этот сценарий, запустите его с помощью Ghostscript (gs) или GhostView (GV). Когда вы сохраните сценарий как /tmp/contform.ps, тогда

      gs /tmp/contform.ps

или

      gv /tmp/contform.ps.

Сценарий:

      /CP /closepath load def
/MT /moveto load def
/LT /lineto load def
/S /stroke load def
/F /fill load def
/s 20 string def

/pw { currentpagedevice /PageSize get 0 get } def
/ph { currentpagedevice /PageSize get 1 get } def

.83 1 1 setrgbcolor

% 0 ph MT pw ph LT pw ph 36 sub LT 0 ph 36 sub LT CP F

/contform
{
  gsave
  .83 1 1 setrgbcolor
  ph -1 mul 72 0 {
    /i exch def
    ph i add
    dup
    12 exch MT
    dup
    pw 12 sub exch LT
    dup
    pw 12 sub exch 36 sub LT
    dup
    12 exch 36 sub LT CP F
    pop
  } for
  0 setgray
  ph -1 mul 72 0 {
    /i exch def
    /perf { 3 0 360 arc CP F } bind def
    ph i add 18 add
    dup 6 exch % left perforation center
    perf
    dup 36 sub 6 exch % 2nd left perforation center
    perf
    dup pw 6 sub exch % right perforation center
    perf
    dup 36 sub pw 6 sub exch % 2nd right perforation center
    perf
    pop
  } for
  grestore
} bind def

/bottom 12 def
/lineshow                      % (string) lineshow -
{ %def
        % works like show, but checks for bottom
        % of page and also moves current point
        % down one line after each call
        currentpoint exch pop % just the Y coord
        bottom lt { %if
                showpage
                contform
                12 ph 24 sub moveto % top of new page
        } if
        gsave show grestore
        0 -12 rmoveto          % down one line
} bind def

%list the /tmp/passwd file
/Courier findfont 10 scalefont setfont
0 setgray

contform
12 ph 24 sub  moveto
/datafile (/tmp/passwd) (r) file def
/buffer 256 string def
{ %loop
        datafile buffer readline { %ifelse
                 lineshow
        }{ %else
                 datafile closefile
                 exit
        } ifelse
} bind loop

showpage
Другие вопросы по тегам