如何更改pdf背景颜色?


26

白色背景色对眼睛有害。如何更改pdf背景颜色?现在我在Ubuntu 12.04 x64中使用evince 3.4.0。


我也遭受白色背景的困扰,我曾经在下面使用xcalib,但是目前大多数情况下我在KWin上进行中继,后者分别为每个窗口提供颜色反转。这就是为什么我在大多数机器上使用KDE的原因,因为我拥有out_of_the_box,只需要在设置中将其打开即可。
Grzegorz Wierzowiecki

我只是建议解决方法,但是Zathura是另一个(确实很酷)的pdf查看器,它的背景是黑色的。否则,您可以自定义全局Ubuntu主题(例如,将主题Ambiance从复制/usr/share/themes/Ambiance$HOME/.themes/,并在中调整颜色定义gtk.css)。不幸的是,我不知道具体的变量在哪里,因此所有应用程序都将具有黑色背景XD。就个人而言,我对一个完全黑暗的主题感到更加快乐,但这与品味有关。
PlasmaBinturong '17

Answers:


29

我确定您可以反转颜色,但是不确定是否可以使用您选择的其他颜色作为背景色。

反转颜色。

转到:查看 -> 反转色Ctrl+ I

希望这可以帮助。


1
我想改回浅绿色等其他颜色。我认为这对于evidence开发人员来说很容易实现。
waterloo2005年

1
是的,这很有可能。在您发表评论之后,我浏览了evince源代码并找到了它。ev-document-misc.c保留反色的部分if (inverted_colors) cairo_set_source_rgb (cr, 0, 0, 0); else。因此,通过更改此设置,我认为我们可以实现所需的颜色,但是我尚未对此进行编译和测试。你可以试试运气。
devav2 2012年

然后如何将背景色更改为浅绿色。我是新手。
waterloo2005年

15

我已经在这个问题上斗争了很长时间了。我想出的最好的解决方案是xcalib通过工具/应用程序栏上的两个易于访问的应用程序启动器使用命令。我将它们命名为“ 屏幕模式 ”和“ 纸张模式 ”。

xcalib我的帮助下,我可以即时激活两个不同的屏幕配置,而无需查看个人资料和其他内容。请注意,这xcalib是软件的最小位,因为它将配置传递到显示适配器并退出,所以不会占用任何空间或内存。您可能会忘记像argyll + dispcalgui等笨重的专业软件。

首先安装xcalib

sudo apt-get install xcalib

然后使用以下命令设置两个启动器:

要设置“纸张模式”,请使用:

xcalib -red 1.7 1 64 -green 1.7 1 57 -blue 1.7 1 28 -alter

要将(重置)回“屏幕模式”,请使用:

xcalib -clear

如您所知,我正在调整每个通道的参数,而我的努力是产生类似Kindle的结果。显然,您可以并且应该根据自己的喜好和屏幕进行调整。当然,这可以整体上调整屏幕,但是至少对我来说,这对所有白色IDE都是一个福音。这将需要您花费几分钟来习惯它,但您永远不会回头。这是真正的救星!

命令的用法是xcalib -ChannelName Gamma Brightness Contrast和都用单个空格分隔。该-alter饲料的信号适配器。该-clear到适配器发送一个“清除”消息,以清除所有调整恢复正常。

重要提示:为了不使字母的黑度变松,请始终如上所示将“亮度”保持为1。仅在使用“伽玛”和“对比度”时才能玩。灰度系数将产生较暗/较亮的结果,并且在通道之间使用“对比度”播放将调整所得的颜色。

另一个提示:将“纸张模式”快捷方式设置为首先重置,然后设置颜色(例如,“ xcalib -clear && xcalib -red 1.7 1 64 -green 1.7 1 57 -blue 1.7 1 28 -alter”),以便不小心多次使用它不会将您的显示颜色更改为黑色。

我希望这对您中的许多人来说都非常方便!


2
正如我注意到的1.7 gamma即将破解字体的抗锯齿(以及我在上面使用了一些非常有趣的数字的事实),“ Paper Mode”(纸张模式)的更合适的命令是...xcalib -red 1.5 0 65 -green 1.5 0 60 -blue 1.5 0 25 -alter
GRE2608

在撰写本文时,xcalib与Wayland(窗口渲染器)不兼容,因为仅允许每个进程在其各自的窗口内绘制。
Tijs Maas

4

我发现Okular是更好的pdf查看器。它使您可以从GUI将背景颜色和字体颜色更改为所需的任何值。即

设置 -> 配置Okular- > 可访问性 -> 更改颜色

例如,设置:

  • 深色作为字体颜色
  • 浅色作为背景色。

我有Okular版本0.16.5


3

将背景颜色更改为浅色贪婪并保护眼睛

配置编译环境并下载源

sudo apt source evince

将源更改为您的颜色,例如浅绿色(R:199,G:237,B:204)ev_document_misc_invert_surface在文件中编辑该功能:libdocument/ev-document-misc.c在第467行

更改

cairo_set_operator (cr, CAIRO_OPERATOR_DIFFERENCE);
cairo_set_source_rgb (cr, 1., 1., 1.);

cairo_set_operator (cr, CAIRO_OPERATOR_DARKEN);
cairo_set_source_rgb (cr, 0.8, 0.9098, 0.8117647);

配置并进行安装

cd evince
./configure --prefix=$YOUR-PLACE  --enable-nls --disable-scrollkeeper --disable-dbus --disable-debug --disable-tests --disable-nautilus --disable-thumbnailer --disable-previewer --disable-comics --without-keyring --without-gconf --without-gtk-unix-print
```

然后make,我得到了错误:

Making all in synctex
make[3]: Entering directory '/home/luopeng/Downloads/evince-3.28.4/cut-n-paste/synctex'
  CC       libsynctex_la-synctex_parser.lo
  CC       libsynctex_la-synctex_parser_utils.lo
synctex_parser_utils.c:106:29: error: format string is not a string literal [-Werror,-Wformat-nonliteral]
        result += vfprintf(stderr, reason, arg);
                                   ^~~~~~
1 error generated.
Makefile:545: recipe for target 'libsynctex_la-synctex_parser_utils.lo' failed
make[3]: *** [libsynctex_la-synctex_parser_utils.lo] Error 1

当然,可以通过以下方法修复它:

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wformat-nonliteral"
    result = fprintf(stderr,"SyncTeX ERROR: ");
    result += vfprintf(stderr, reason, arg);
    result += fprintf(stderr,"\n");
#pragma GCC diagnostic pop

在Ubuntu 18.04版本中,由于上述情况,我发现了一些错误,并在忽略GCC的情况下修复了这些错误。(请在以下代码的杂注之前添加#)

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wformat-nonliteral"
  the code where the errors occur
#pragma GCC diagnostic pop

然后在中更改配置 /usr/share/applications/evince.desktop

change Exec=$YOUR-Evince-PLACE/bin/evince %U

单击视图->反转色时,您的背景色将变为浅绿色

好好享受!


2

感谢Evan的邀请。这是我为实现Evince 2.30.3中的浅绿色背景所做的工作。

如几年前我发布的线程(https://mail.gnome.org/archives/evince-list/2011-November/msg00015.html)中所述,我将第327行的源代码替换为libdocument /的 329 带有以下代码段的ev-document-misc.c

// make sure that we just turn the near "white" back ground to light green
if ((245 <= p[0] && p[0] <= 255) &&
    (245 <= p[1] && p[1] <= 255) &&
    (245 <= p[2] && p[2] <= 255)) {
    p[0] = 204; /* cc */
    p[1] = 232; /* e8 */
    p[2] = 207; /* cf */
}

请注意,对于不同版本的Evince,代码位置可能会有所不同。

然后重新编译Evince:

$ ./configure --prefix=/usr --enable-nls --disable-scrollkeeper --disable-dbus --disable-debug --disable-tests --disable-nautilus --disable-thumbnailer --disable-previewer --disable-comics --without-keyring --without-gconf --without-gtk-unix-print
$ make

编译后,DONOT运行make install,因为这可能会更改Evince的语言环境设置。只需备份原始的/usr/lib/libevdocument.so.2.0.0,然后手动将其替换为修改后的libdocument / .libs / libevdocument.so.2.0.0

然后重新启动Evince,打开.pdf文件(或其他受支持的格式,无论如何),然后使用“反转颜色”选项将背景颜色更改为浅绿色。

可能对您有帮助:)


1
如果您在摘要中显示代码,这将很有用。否则,不清楚如何在不花费太多时间的情况下找到合适的地方。
艾琳娜

0

我也试图更改evince的背景颜色,但失败了。

可能另一个应用程序qpdfview对您有用。它可以用绿色背景为所有PDF文档上色,包括扫描的PDF文档,使您倍感舒适。

不幸的是,从synaptic安装的版本无法为扫描的PDF文档着色,但是与PPA一起安装的版本对此非常有用。只需执行以下命令。

sudo apt-add-repository ppa:b-eltzner/qpdfview
sudo apt-get update
sudo apt-get install qpdfview

您需要更改颜色参数。

对于扫描的PDF文档,您需要单击“查看-组成-暗”按钮,并选择纸张颜色,这样就可以了。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.