我在为我的企业运行一些旧版软件,这些软件在 dBase 5 上运行,多年来,dBase 5 经过了大量时间投入而不断更新;它很好地管理了我们的财务、订购等。为了能够将我的企业切换到 Ubuntu(我想这样做),我必须能够运行这些程序,特别是打印数据。我曾尝试在 DosEmu 中打印,但这会锁定程序,我尝试过 DosBox,它似乎更稳定,运行良好,但无法打印。因此,我尝试在 DosBox 中打印到文件,并使用以下方法手动打印:
lp -d HP-LaserJet-m2727-MFP /home/paul/dosdrive/*.prn
打印效果很好,但我必须离开程序并关闭 DosBox,文件才会显示在 Ubuntu 中,然后我才能打印它;这对于商务软件包来说并不理想。我找到了一个 DosBox SVN Daum,我曾在 XP 机器上试用过,它很稳定,打印效果也很好,但这只适用于 Windows。这个程序的源代码是可用的,但编译它远远超出了我的专业知识。有什么办法可以解决这一切吗?
答案1
在爱好者网站有一个专门dosbox
针对基于 Linux 的系统构建的版本;32 位版本仍然可用,但如果您需要,还有更旧的 64 位版本。您不需要编译它(虽然我可能会编译官方的 dosbox-0.74 源代码并仅集成打印机补丁:请参阅有关 SVN 构建的更多信息,请访问此处和编译 dosbox)。
不过,如果你不想编译,你可以使用这些构建那个网站:我已经检查过了,没有问题,但,就像我们通常对其他事物(如 PPA)所说的那样,使用风险自负。32 位版本确实包含 Windows 版本中的“几乎”所有补丁。下载包括一个dosbox
可执行文件、一个dosbox_debug
可执行文件和一个dosbox conf
。
该dosbox
配置文件包含打印支持:
[printer]
# printer: Enable printer emulation.
# dpi: Resolution of printer (default 360).
# width: Width of paper in 1/10 inch (default 85 = 8.5'').
# height: Height of paper in 1/10 inch (default 110 = 11.0'').
# printoutput: Output method for finished pages:
# png : Creates PNG images (default)
# ps : Creates Postscript
# bmp : Creates BMP images (very huge files, not recommend)
#
# multipage: Adds all pages to one Postscript file or printer job until CTRL-F2 is pressed.
# docpath: The path where the output files are stored.
# timeout: (in milliseconds) if nonzero: the time the page will
# be ejected automatically after when no more data
# arrives at the printer.
printer=true
dpi=360
width=85
height=110
printoutput=png
multipage=false
docpath=.
timeout=0
然而,在运行它之前,您必须安装一些重要的依赖项(您可能sdl
已经有了):
sudo apt-get install libphysfs1 libpng12-0 libsdl1.2debian libsdl-sound1.2 libsdl-net1.2
因此,为了确保你不会将常规方法dosbox
与此方法混淆,请将此替代方案dosbox
及其配置文件保存在主文件夹中的文件夹中,然后打开终端并运行它,例如,
/home/mike/DOS/dosbox -conf dosbox.conf