自制掃描文檔

拍照

材料
拿裁紙刀把書頁裁下來,裝訂好的厚書中間部分無法清晰拍攝,注意不要在桌子上裁,容易把桌子劃到,儘可能找一把夠堅硬的尺子

設備
三角架+相機+手機控制+一張比書本略大的紙作爲背景

條件
充足的照明,可以是自然光或者近距離燈光

拍攝方式
將書整齊放在背景紙上,拍一頁拿走一頁,拿走的頁不要翻面
拍完一面之後把書頁整理好,拍另一面,一部分一部分整理,否則書頁對齊不了

後期處理

雙面合併
用shell處理,奇數面從1開始,偶數面從2開始,每次加2,按順序重新命名

圖片壓縮
imagemagick(convert)
相機拍出來比較大,需要適當壓縮,加上自動白平衡
convert odd/$file -rotate -90 -resize “999x1333” -auto-level $filename

轉成分片pdf
用convert需要一部分一部分轉,否則內存會暴
convert *.jpg output.pdf

合併pdf
pdftk 1.pdf 2.pdf 3.pdf cat out out.pdf

製作書籤
導出原有pdf信息至info文件
pdftk out.pdf dump_data output info

編輯書籤文件
級別 標題 頁碼
1|第1章 計算機系統概論|1
2|1.1 計算機的分類|1
2|1.2 計算機的發展簡史|2

書籤標題轉碼

function make_title() {
	echo -n "$1" |iconv -t unicode|od -x -d | grep -E '\<[0-9]{5}\>' |\
		awk -F"[ \n]" -v RS="\n\n" '
			{out_str="";
				for (i=1;i<=NF;i++) {
					if ($i != "" && $i != "65279") {
						#print $i
						out_str=out_str"&#"$i";"
					}
				}
				print out_str
			}'
}

生成pdf信息格式

function read_table() {
	while IFS="|" read -r level title i; do
	book_title=$(make_title "$title")
		# 頁碼對齊
	((i=i+4))
	echo "BookmarkBegin"
	printf "BookmarkTitle: %s\n" $book_title
	printf "BookmarkLevel: %s\n" $level
	printf "BookmarkPageNumber: %d\n" $i
	done < $1
}

生成的信息合併到原pdf信息文件info當中

BookmarkBegin
BookmarkTitle: &#30446;&#24405;
BookmarkLevel: 1
BookmarkPageNumber: 1
BookmarkBegin
BookmarkTitle: &#31532;&#49;&#31456;&#32;&#35745;&#31639;&#26426;&#31995;&#32479;&#27010;&#35770;
BookmarkLevel: 1
BookmarkPageNumber: 5
BookmarkBegin
BookmarkTitle:   &#49;&#46;&#49;&#32;&#35745;&#31639;&#26426;&#30340;&#20998;&#31867;
BookmarkLevel: 2
BookmarkPageNumber: 5

生成最終文檔final.pdf
pdftk out.pdf update_info info output final.pdf

踩的坑

imagemagick策略文件

/etc/ImageMagick-6/policy.xml

默認不支持讀寫pdf

生成pdf過程中會報錯,聲稱緩存不足(有點懞,大致是這幾行,我都改了)

  <policy domain="resource" name="memory" value="2GB"/>
  <policy domain="resource" name="map" value="2GB"/>                         
  <policy domain="resource" name="area" value="2GB"/>      
  <policy domain="resource" name="disk" value="3GB"/> 

調整圖像質量
1、空白部分亮度不足,嘗試了-sigmoidal-contrast參數,連字體一起變談了,最後用的-auto-level自動調整的白平衡
2、想製作掃描儀效果,嘗試了生成灰度圖像-colorspace Gray,背景也是灰的,嘗試了二值化-threshold 40%-70%,要麼整體看不清,要麼一塊一塊黑膏藥,文石的去水印挺好用,不完美但已經是最好結果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章