gpt4 book ai didi

windows - 如何让 emacs 正确打印 pdf?

转载 作者:可可西里 更新时间:2023-11-01 11:41:50 34 4
gpt4 key购买 nike

关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

2年前关闭。




Improve this question




如果您已经走上 emacs 之路,您就会知道它有多么强大,而它又是多么无用。

完全披露:由于 org-babel 和 use-package,我的 4800 行初始化文件(即将成为 3000)确实设法在 27.5 秒内加载了 125 个有用的包——但我仍然没有设法让它打印 pdf .哦,emacs,最简单的东西吧?

所以当然 emacs 专家的人数正在减少,原因显而易见,但我猜这里至少有一些人已经完全征服了 emacs。唉,我还不是你们中的一员。 (然而!)

我的配置,2019 年 4 月 17 日的 26.2(构建 1,x86_64-w64-mingw32),使用 ImageMagic 7 支持编译,pdftools,aspell 6(我没有使用)和许多其他支持 Windows 的 gems,仍然在插入直接将 postscript 导入我的非 postscript 兼容激光打印机,它会立即吐出 28 页垃圾。 BLLLLpt.

诚然,我对引擎盖下的打印知之甚少,但我知道的足够多,知道 emacs 仍然有一只脚在最后一个位置 - 打印 pdf 并不是那么难。所以这是设置:

安装了用于 windows 的 Ghostscript 和 ghostview,并添加到路径中。 Pdftools 运行良好,在打开 pdf 时覆盖 docview。初始化代码很短。

(require 'printing)

好的措施:
(add-to-list 'load-path "C:/Program Files (x86)/Ghostgum/gsview/gsview32.exe")
(add-to-list 'load-path "C:/Program Files/gs/gs9.26/bin/gswin64c.exe")

命令(我更喜欢通过 pr-path-alist 设置它们,但是,这没有多大意义)。
(setq pr-gs-command "C:/Program Files/gs/gs9.26/bin/gswin64c.exe")
(setq pr-ps-command "C:/Program Files/gs/gs9.26/bin/gswin64c.exe")

(setq lpr-command "C:/Program Files/gs/gs9.26/bin/gswin64c.exe")
(setq ps-lpr-command "C:/Program Files/gs/gs9.26/bin/gswin64c.exe")


(setq ps-lpr-switches '("-q" "-dNOPAUSE" "-dBATCH" "-sDEVICE=mswinpr2" "-sPAPERSIZE=a4"))

(setq pr-temp-dir "c:/emacs/.emacs.d/temp/")


我尝试了几件事,ps-print.el 方法和printing.el 方法。我更喜欢使用printing.els pr-interface,因为它足够简单。

lpr 缓冲区和 lpr 区域

将打印作业发送到后台处理,再也找不到了。我的打印机是兄弟激光打印机,网络上唯一的,lpr应该不会比postscript好吧?好吧,这里什么也没发生。

打印缓冲区打印区域
使用选项进行假脱机,但没有发送到打印机(假脱机也不做任何事情)。

ps-打印缓冲区

打印文本文档!然而,它用 pdf 输出了 28 页的垃圾。

pr-ps-打印缓冲区

假脱机,什么也没发生

pr-ps-buffer-preview

打开 gsview(带有烦人的注册弹出窗口)并预览打印作业

pr-ps-region-using-ghostscript

28 页垃圾。

因此,我似乎缺少一些基本知识。 Ghostscript 应该在 postscript 和非 postscript 或 pcl 驱动程序之间填写,是吗?

我错过了图书馆吗?还是我只需要更好地配置初始化?

有没有人知道我在说什么?

最佳答案

我知道这不是一个完整的答案,但评论太长了。

Ghostscript 不会在驱动程序之间“填充”。 mswinpr2 设备的工作方式是(细节的抽象剪裁)将输入呈现为位图,为打印机创建 DeviceContext,在 Device Context 上绘制位图,然后告诉 DC 打印自身。

基本上它呈现输入,然后使用 Windows 打印系统来完成繁重的工作。所以你需要能够从 Windows 打印到你的打印机,我假设你已经可以做到了:-)

您是否尝试过从 Windows 命令外壳使用 Ghostscript 命令行?成功了吗?

如果输入是 PDF,Ghostscript 不会将 PostScript 'pushing'到您的打印机中。除了“Brother”之外,您还没有确切说明您使用的是哪种打印机,如果知道会很有用。例如,它是 PCL、PostScript 还是“其他”打印机。

最好知道打印的前几个字节是什么,看看它是 PDF 文件的开头还是其他格式。

我怀疑您是否真的在启动 Ghostscript,您是否收到了打印机选择器对话框?您的命令行似乎没有指定打印机或 QueryUser 开关以使用默认打印机,您也没有选择/NoCancel,所以我希望您看到进度对话框。

尝试添加 -dQueryUser=1到您的 Ghostscript 命令行,如果您没有看到打印机选择器对话框,那么您就没有运行 Ghostscript。

恐怕我无法就为什么会这样提供任何建议。

关于windows - 如何让 emacs 正确打印 pdf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57782105/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com