代码改变世界

保护眼睛:给 PDF 设置图片背景

2011-08-04 22:05 鹤冲天 阅读(...) 评论(...) 编辑 收藏

从事 IT 行业,免不了经常阅读 PDF 文档。PDF 文档纯白色背景相当刺眼,长时间阅读会导致眼睛干涩疼痛。一些 PDF 阅读软件可以修改背景,但往往只能使用纯色(单一颜色)。

PDF 文档使用淡雅的图片作背景,可减缓视觉疲劳,保护我们的眼睛。

一直没有找到从 PDF 阅读器中设置背景图片的办法,不得已从 PDF 文件下手,自己写了个小程序,分享给大家:

PDF 设置背景 程序

程序下载:PDF图片背景.rar (1523KB,WPF 程序,需要 .net 4)

程序主界面如下:

image

只需如上三步操作。

程序附带了几个淡雅的背景图:

image

在第二步,选择背景图片后,窗口将自动预览:

image  image

设置背景不会修改原 PDF 文件,第三步程序将生成一个新的文件,并在生成成功后提示保存。

(保存时可替换原文件,但不推荐这么做,因为生成的文件的背景不能再次修改,原 PDF 文件最好保留。)

图片背景 PDF 展示:

image

image

比纯色背景强多了吧!

这个简单的程序一次只能处理一个 PDF 文件,如果需要批量处理或界面操作有更高的要求,请下载源码并修改:

源码下载及简要说明

源码下载:PDF图片背景源码.rar(1493KB,c#,VS2010)

程序借助 iTextSharp 类库从源 PDF 中复制页面,并加以背景,程序的核心类 ImageBackground 的公有成员如下:

1
2
3
4
5
6
7
8
9
public class ImageBackground
{
    public void SetBackground(string pdfFile, string destFile, Drawing.Image image) {...}
    public void SetBackground(string pdfFile, Stream stream, Drawing.Image image) {...}

    public event EventHandler<SetBackgroundProgressEventArgs> Progress;
    public event EventHandler<SetBackgroundErrorEventArgs> Error;
    public event EventHandler Finish;
}

可以在本代码的基础上修改,实现批量处理,或都编写一个更友好方便使用的界面(如果你有好 idea,不妨分享给我)。

如果你想对 PDF 有更深入的控制,如加水印、裁剪页面的空白等,建议阅读 《 iText in Action 》一书。

 

如本文对你有帮助,请推荐本文。

连日写博客,有点累了,如果错误,请包涵。如能通知我,不胜感激。