打印GW-BASIC时设置边距

问题描述 投票:0回答:2

我使用的是 GW-BASIC 语言,我需要在页面中心打印输出,现在它从 A4 尺寸页面的左上角开始,我可以尝试使用打印机首选项设置边距,但有没有这样的选项。

谁能告诉我如何设置打印到页面中央?

printing dos gw-basic
2个回答
0
投票

我无法确定 A4 尺寸纸张上的特定消息的 x 和 y 需要是什么,但使用 LOCATE 语句移动光标将是最简单的方法。

可能需要反复试验才能使您的消息完美地集中在您的特定显示屏上。

Google 快速帮我找到了这个:GW-BASIC 用户指南 - LOCATE 语句

来自网站:

语法:

LOCATE [row][,[col][,[cursor][,[start] [,stop]]]]

评论:

row是屏幕行号,是1到25范围内的数值表达式。

col 是屏幕列号,是 1 到 40 或 1 到 80 范围内的数值表达式,具体取决于屏幕宽度。

cursor是一个布尔值,表示光标是否可见;零关闭,非零开启。

start 为光标起始扫描线,数值表达式,范围为 0 到 31。

stop 为光标停止扫描线,数值表达式,范围为 0 到 31。

对于光标的简单移动来说,只有前两个参数是真正必要的,例如:

10 LOCATE 4,20
20 PRINT "YOUR TITLE HERE"

上面会将光标移动到第 4 行第 20 列,然后打印“YOUR TITLE HERE”。


0
投票

GW-BASIC 只是将用

LPRINT
打印的文本(实际上是字节)发送到 DOS
LPT1:
设备。要将文本在页面上居中,必须考虑纸张尺寸、打印字符尺寸和行间距。

大多数打印机[^1] 的默认设置是等宽字体,即所有字符都具有相同的宽度,并且每英寸有 10 个字符 (10 CPI),行距设置为每英寸 10 行。[^2 ] 对于 Letter 尺寸的纸张,此值为最大。一页上有 66 行。 A4 纸比 Letter 稍窄,但仍足以以 10 CPI 打印 80 个字符。它比 11 英寸长一点,因此您可以在一页上容纳更多线条。

因此,简单且与打印机型号无关的答案是通过仅打印行结尾以到达中间行来跳过尽可能多的行,然后根据需要打印尽可能多的空格以使文本在该行中居中。

以下示例在顶部打印一个“标尺”,以查看 80 个字符的实际打印宽度。

设置

WIDTH
并不是真正必要的默认值 80,但如果打印的行较长,则很重要,因为否则 GW-BASIC 会在不包含行的 80 个字节后插入回车符和换行符结束字符。因此,即使打印机的间距为 12 CPI 并且可以在 8 英寸中打印 96 个字符,GW-BASIC 也会在 80 个字符后断行。

10 LL=80 'Line length.
20 LC=66 'Line count.
30 WIDTH"lpt1:",LL 'Default is 80. 255 for disabling automatic CR+LF.
40 :
50 REM Print a "ruler".
60 FOR I=1 TO LL\10:LPRINT SPACE$(9);MID$(STR$(I),2);:NEXT
70 FOR I=1 TO LL:LPRINT MID$(STR$(I MOD 10),2);:NEXT
80 :
90 T$="Centered on page."
100 :
110 N=(LC-2)\2 'Number of lines to the center. -2 because of the ruler lines.
120 IF N>0 THEN FOR I=1 TO N:LPRINT"":NEXT 'Skip N lines.
130 LPRINT TAB((LL-LEN(T$))\2);T$

导致页面如下所示:



要前进到下一页的顶部,请快速打印换页符 (

LPRINT CHR$(12);
)。


[^1]:直接打印文本的打印机,不需要像 PostScript 打印机那样特殊格式的数据流。但正如问题所述,文本出现在页面的左上角,有问题的打印机似乎不是 PostScript 打印机。

[^2]:在某些打印机上,可以通过按钮或 DIP 开关更改打印机上的这些设置。常见选项包括在 10 CPI (Pica) 和 12 CPI (Elite) 或“压缩”(17.5 或 20 DPI)模式之间切换,以适应每行更多文本。

© www.soinside.com 2019 - 2024. All rights reserved.