当打开特定的 pdf 文件时,evince
决定以“演示模式”打开它。
我在手册页中看到 evince 可以-s
选择以演示模式打开,但我没有调用它。我只是将所有 pdf 文件打开为evince file.pdf
不知何故,evince 自行决定以演示模式打开这种特殊类型的 pdf。
其他 pdf 在普通窗口中打开效果很好。
我怎样才能禁用这种行为?
答案1
下列的多德格的回答您应该编辑 PDF 元数据来更改该PageMode
字段。接受不同的值(来源):
UseNone
:在查看器中打开文档时,它仅显示页面(书签、附件、页面缩略图和图层面板被隐藏)。UseOutlines
:在查看器中打开文档时,它会显示页面并打开“书签”面板以显示轮廓(书签)。UseThumbs
:在查看器中打开文档时,它会显示页面并打开页面缩略图面板以显示缩略图。FullScreen
:在查看器中打开文档时,它会以全屏模式显示页面(没有菜单栏、窗口控件或任何其他窗口可见)。UseOC
:例如,在 Adobe Acrobat Reader 中打开文档时,Reader 会显示页面并打开可选内容组面板(“图层”面板)。UseAttachments
:在查看器中打开文档时,它会显示页面并打开“附件”面板以显示附件。
有多种工具可用于编辑 PDF 元数据,例如pdftk
、exiftool
、 和qpdf
。但从测试来看,似乎只能pdftk
实际向该元数据字段添加信息。
要修改此元数据字段,您可以使用命令
pdftk file.pdf update_info info.txt output output.pdf
其中info.txt
包含
PageMode: UseNone
答案2
不知何故,evince 自己决定以这种愚蠢的模式打开这种特殊类型的 pdf。
该“决定”是由于 PDF 功能所致:
/PageMode /FullScreen
您可能希望在 PDF 本身中永久禁用它,方法是将其替换为
/PageMode /UseNone
...在末尾填充 3 个空格以保持文件大小。
请注意,evince 存储文件的最后演示模式,因此您可能必须先将之前查看的 PDF 切换到窗口模式。
对于常用的 PDF 非常有用。但对于这个问题,这只是一个解决方法。
如何修补的示例:
sed -zE 's|(<<[^>]*/PageMode\s*)/FullScreen|\1/UseNone |' Your.PDF > YourPatched.PDF
我不会-i
就地执行,因为这个搜索字符串对于所有可以想到的情况来说并不是完全安全的。