我想在PDF文檔中以編程方式更改背景顏色和文本顏色,以便它們在夜晚更好閱讀(有點像在Adobe Reader中:編輯 - >首選項 - >輔助功能 - >替換文檔顏色)。更改PDF文件的文本和背景顏色
有什麼好的命令行工具或API的Windows可以做到這一點?
到目前爲止我還沒有找到任何。如果需要將新着色的PDF保存到新文件中,則可以。
我想在PDF文檔中以編程方式更改背景顏色和文本顏色,以便它們在夜晚更好閱讀(有點像在Adobe Reader中:編輯 - >首選項 - >輔助功能 - >替換文檔顏色)。更改PDF文件的文本和背景顏色
有什麼好的命令行工具或API的Windows可以做到這一點?
到目前爲止我還沒有找到任何。如果需要將新着色的PDF保存到新文件中,則可以。
沒有辦法直接做到這一點,沒有(免費軟件或免費)工具,我知道。 (因爲在一般情況下,你就必須改變的PDF頁面的所有顏色,不只是單純的背景,所以你仍然可以有一些對比度和色彩差異。)
你描述的是什麼Adobe Reader不會自行更改PDF文件,它會更改應用程序呈現頁面的方式(通過反轉顏色或類似方式)。在查看期間和之後,PDF保持不變。
但是,您可能會通過對輸入PDF應用合適的ICC顏色配置文件並在Ghostscript(最新版本)的幫助下生成一個新的PDF輸出PDF 。
問題仍將:什麼IS「合適」的ICC色彩PROFIL你的目的?
我認爲不久的灰色十歲上下的背景適用於PDF與
pdftk ... background ...
命令行的幫助。但是這可能會使一些或許多PDF不可讀。 (A 黑色背景肯定會使其不可讀,因爲大多數文字爲黑色,並會繼續這樣做。)要創建一個PDF頁(A4尺寸),這可以作爲灰色的背景,你可以使用的Ghostscript :
gs -o gray.pdf -sDEVICE=pdfwrite -g5950x8420 -c ".8 setgray 0 0 595 842 rectfill showpage"
。然後將其應用於您的原始PDF(A4):
pdftk original.pdf background gray.pdf output orig-with-backgr.pdf
。注意,這隻會改變這些頁面(或頁面那些區域),其中原始背景是透明的背景下,作爲最基於文本的PDF文件是。它將不的頁面或所在區域的背景是不透明的白色或彩色工作。)
您還可以使用的ImageMagick的幫助下實現了永久性的顏色改變(反色)很容易。但是,這將同時咀嚼和製作漂亮的矢量PDF的百分之五十,將它們轉換爲完整的光柵圖像頁面:
convert nice.pdf -alpha off -invert inverted-colors-ugly-raster.pdf
。
最後,這裏是實現色彩的反相藉助Ghostscript的幫助相當不可靠的方式。它建立了一個colortransfer功能輸出PDF文件:
gs -o output.pdf \
-sDEVICE=pdfwrite \
-c "{1 exch sub}{1 exch sub}{1 exch sub}{1 exch sub} setcolortransfer" \
-f input.pdf
這是不可靠的,因爲不是每個PDF閱讀器將尊重該設置。我測試了幾次,在過去...
這些觀衆確實顯示倒顏色:
這些那些不顯示倒顏色:
作爲一個(也許太令人生氣)除了你的答案,實際上有一些工具,如PitStop或pdfToolbox(警告 - 聯盟),可以應用這樣的轉移曲線,一旦它在那裏(換句話說,計算新的顏色考慮到轉移曲線)。這將使它永久,因此所有的觀衆:) –
@DavidvanDriessche:謝謝大衛 - 當然我*的意思是*說我沒有意識到任何'自由'(如在自由)或'自由'(作爲在免費)我知道的工具...我完全忘記提及商業公共事業,儘管當我寫下我的答案時我打算提及。 –
以防萬一OP不真的需要改變PDF文檔的顏色永久,但只想要一個PDF 觀衆 Acrobat之外,可以做同樣改變顯示的顏色...
MuPDF: MuPDF是一個輕量級的PDF查看器(除其他外)。對於打開文檔的任何文檔,它都可以使用i的簡單筆劃反轉顯示的顏色。 MuPDF也可用於Windows(以及iOS,Android,OSX和Linux)。 (它是由同一家公司給我們帶來的Ghostscript)。
MuPDF截圖在這裏: 「普通」 視圖(左)和 「倒」 視圖(右)
SumatraPDF:這是Windows非常流行的替代PDF閱讀器。它的PDF渲染引擎基於MuPDF。打到。在演示模式下,它將背景更改爲黑色。在演示模式下擊中w,它將背景更改爲白色。 (我不認爲它也可以反轉所有顏色,但我現在沒有最新版本可用來檢查。)對於啓動將-invert-colors
添加到命令行中,它將反轉呈現文檔的顏色。
Zathura: Linux和OSX的輕量級PDF查看器,可以通過類似Vim的鍵盤快捷鍵進行控制。 ctrl + r將重新着色任何打開文檔的渲染。背景將變爲黑暗,文字將變爲明亮的灰色(但它不會反轉,例如藍色文字變成黃色,就像MuPDF一樣)。我不確定它是否可以在Windows上使用。
Evince: Gnome PDF查看器,可用於Linux,OSX和Windows。它也可以反轉打開的文檔的顏色;鍵盤快捷鍵是ctrl + i。 (不知道是否有可用的Windows版本 - 也許在Cygwin中)XPDF是一款非常古老的Unix + Linux的PDF閱讀器(不確定是否有Windows版本可用 - 也許在Cygwin中)。它在命令行中有一個啓動選項:xpdf -rv -papercolor "#333333" file.pdf
將反轉顏色(-rv
用於反轉視頻,-papercolor
可讓您將背景更改爲與純黑色不同的東西[因爲任何倒立的白色都會變成])。
正如您所要求的API,我會在混合中再添加一個可能性。實際上可以爲Adobe Acrobat編寫一個插件(對於Adobe Reader也應該可能,但Reader插件更難),這會干擾顯示。
很久以前,我爲Enfocus PitStop編寫代碼,爲Adobe Acrobat內部的PDF文件實現線框渲染模式。點擊一個按鈕,顯示變爲線框,再次點擊,你有正常的看法。這可以起作用,因爲您可以(作爲插件)修改由Acrobat繪製的顯示列表(對象列表)。
這意味着要繪製您的特殊顯示模式,您可以創建一個新的顯示列表(或修改現有的顯示列表),使其在所需顏色的最後面具有矩形,然後修改所有顏色顯示列表中的對象以滿足您的需求。
這相對比較複雜,因爲它更復雜的是 - 如果您不希望更改影響磁盤上的PDF文件,則必須攔截無數Acrobat通知並撤消更改。例如,如果用戶嘗試在顯示模式下查看時保存PDF文檔,則必須確保已收到警告,並在保存期間撤消更改。 Adobe Acrobat使這成爲可能,因爲它會在保存過程之前和之後向您發送通知,但確保沒有任何事情被搞砸仍然是一項嚴肅的工作。
但是,這是一個絕對酷,非常靈活的方式來實現你以後的東西。只要確保你有超過幾個星期來實現它:)
如果你是一些編程,你可能想嘗試一些沿着[這個答案](http://stackoverflow.com/ a/16877278/1729265),在頁面上以混合模式Difference繪製白色矩形。 – mkl