Жишээлбэл надад тамгалаад, батлачихсан гэрээ(8 хуудас) байлаа гэж саная. Хуудас хуудсаар нь сканнердаад, 8 ширхэг зураг болгочихно. Дараа нь энэ бүгдээ Trac, Redmine зэрэг хамтын ажиллагаа, төслийн удирдлагын талбарт хуулна. 8 удаа browse товч дарахад хамаа алга гэхэд түүнийг үзэх, ашиглах хүнд баахан төвөгтэй. Болдог бол бүгдийг нь базаад нэг PDF файл болгочихмоор. Хуулахад ч, үзэхэд ч, маллахад ч амар. Тэгвэл яаж үүнийг хийх вэ?
Танд imagemagick[1] тус болно. За ингээд, алхам алхмаар хамтдаа хийж үзье. Танд дараахь зургийн файлууд байгаа гэж саная:
$ ls -lh
total 19M
-rwxr-xr-x 1 battur battur 2.7M 2010-02-21 19:24 DSC_0801.JPG
-rwxr-xr-x 1 battur battur 2.6M 2010-02-21 19:24 DSC_0802.JPG
-rwxr-xr-x 1 battur battur 2.6M 2010-02-21 19:24 DSC_0803.JPG
-rwxr-xr-x 1 battur battur 2.0M 2010-02-21 19:24 DSC_0804.JPG
-rwxr-xr-x 1 battur battur 2.0M 2010-02-21 19:24 DSC_0805.JPG
-rwxr-xr-x 1 battur battur 2.4M 2010-02-21 19:24 DSC_0806.JPG
-rwxr-xr-x 1 battur battur 2.2M 2010-02-21 19:24 DSC_0807.JPG
-rwxr-xr-x 1 battur battur 2.2M 2010-02-21 19:24 DSC_0808.JPG
Ер нь бол нэг нь л дор хаяад 3 мега байт(3008x2000) хүртэл хэмжээтэй гэвэл эднийг тэр чигт нь PDF болговол веб рүү хуулж барахгүй нүсэр том хэмжээтэй болох байх. Ийм учраас юуны түрүүнд бүх зургаа 1200 пикселийн өргөнтэй болгож хэмжээг нь багасгая(өндөр нь дагаад багасна):
$ mogrify -resize 1200 *.JPG
$ ls -lh
total 1.3M
-rw-r--r-- 1 battur battur 198K 2010-02-21 19:25 DSC_0801.JPG
-rw-r--r-- 1 battur battur 199K 2010-02-21 19:25 DSC_0802.JPG
-rw-r--r-- 1 battur battur 188K 2010-02-21 19:25 DSC_0803.JPG
-rw-r--r-- 1 battur battur 126K 2010-02-21 19:25 DSC_0804.JPG
-rw-r--r-- 1 battur battur 127K 2010-02-21 19:25 DSC_0805.JPG
-rw-r--r-- 1 battur battur 166K 2010-02-21 19:25 DSC_0806.JPG
-rw-r--r-- 1 battur battur 144K 2010-02-21 19:25 DSC_0807.JPG
-rw-r--r-- 1 battur battur 142K 2010-02-21 19:25 DSC_0808.JPG
Үүний дараагаар багассан зургуудаа нэг PDF файлд нэгтгэе:
$ convert *.JPG 201002_Geree_XYZCompany.pdf
Segmentation fault
Уул нь дээрх тушаал байхад л хангалттай боловч миний машин алдаа өгөөд явсангүй. Нэг дор олон файл хөрвүүлж дийлэхгүйгээс бус ганц ганцаар нь бол чадаад байна.
$ ls | grep JPG | while read name; do \
convert $name ${name/JPG}PDF; done; ls -lh
total 2.6M
-rw-r--r-- 1 battur battur 198K 2010-02-21 19:25 DSC_0801.JPG
-rw-r--r-- 1 battur battur 202K 2010-02-21 19:27 DSC_0801.PDF
-rw-r--r-- 1 battur battur 199K 2010-02-21 19:25 DSC_0802.JPG
-rw-r--r-- 1 battur battur 204K 2010-02-21 19:27 DSC_0802.PDF
-rw-r--r-- 1 battur battur 188K 2010-02-21 19:25 DSC_0803.JPG
-rw-r--r-- 1 battur battur 193K 2010-02-21 19:27 DSC_0803.PDF
-rw-r--r-- 1 battur battur 126K 2010-02-21 19:25 DSC_0804.JPG
-rw-r--r-- 1 battur battur 130K 2010-02-21 19:27 DSC_0804.PDF
-rw-r--r-- 1 battur battur 127K 2010-02-21 19:25 DSC_0805.JPG
-rw-r--r-- 1 battur battur 130K 2010-02-21 19:27 DSC_0805.PDF
-rw-r--r-- 1 battur battur 166K 2010-02-21 19:25 DSC_0806.JPG
-rw-r--r-- 1 battur battur 170K 2010-02-21 19:27 DSC_0806.PDF
-rw-r--r-- 1 battur battur 144K 2010-02-21 19:25 DSC_0807.JPG
-rw-r--r-- 1 battur battur 148K 2010-02-21 19:27 DSC_0807.PDF
-rw-r--r-- 1 battur battur 142K 2010-02-21 19:25 DSC_0808.JPG
-rw-r--r-- 1 battur battur 146K 2010-02-21 19:27 DSC_0808.PDF
Тэгвэл олон PDF файлыг нэгтгэчихдэг програм бий болов уу? Хайлаа... Байна! GhostScript[2] :) Нэгтгэе:
$gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=201002_Geree_XYZCompany.pdf -dBATCH *.PDF && ls -lh
GPL Ghostscript 8.70 (2009-07-31)
Copyright (C) 2009 Artifex Software, Inc. All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Processing pages 1 through 1.
Page 1
Processing pages 1 through 1.
Page 1
Processing pages 1 through 1.
Page 1
Processing pages 1 through 1.
Page 1
Processing pages 1 through 1.
Page 1
Processing pages 1 through 1.
Page 1
Processing pages 1 through 1.
Page 1
Processing pages 1 through 1.
Page 1
total 2.9M
-rw-r--r-- 1 battur battur 289K 2010-02-21 19:28 201002_Geree_XYZCompany.pdf
-rw-r--r-- 1 battur battur 198K 2010-02-21 19:25 DSC_0801.JPG
-rw-r--r-- 1 battur battur 202K 2010-02-21 19:27 DSC_0801.PDF
-rw-r--r-- 1 battur battur 199K 2010-02-21 19:25 DSC_0802.JPG
-rw-r--r-- 1 battur battur 204K 2010-02-21 19:27 DSC_0802.PDF
-rw-r--r-- 1 battur battur 188K 2010-02-21 19:25 DSC_0803.JPG
-rw-r--r-- 1 battur battur 193K 2010-02-21 19:27 DSC_0803.PDF
-rw-r--r-- 1 battur battur 126K 2010-02-21 19:25 DSC_0804.JPG
-rw-r--r-- 1 battur battur 130K 2010-02-21 19:27 DSC_0804.PDF
-rw-r--r-- 1 battur battur 127K 2010-02-21 19:25 DSC_0805.JPG
-rw-r--r-- 1 battur battur 130K 2010-02-21 19:27 DSC_0805.PDF
-rw-r--r-- 1 battur battur 166K 2010-02-21 19:25 DSC_0806.JPG
-rw-r--r-- 1 battur battur 170K 2010-02-21 19:27 DSC_0806.PDF
-rw-r--r-- 1 battur battur 144K 2010-02-21 19:25 DSC_0807.JPG
-rw-r--r-- 1 battur battur 148K 2010-02-21 19:27 DSC_0807.PDF
-rw-r--r-- 1 battur battur 142K 2010-02-21 19:25 DSC_0808.JPG
-rw-r--r-- 1 battur battur 146K 2010-02-21 19:27 DSC_0808.PDF
Ингээд л боллоо до. Одоо ч хуулаад, хуваалцаад байна бид дэ хө ;)
Хэрэггүй гэж үзвэл зургаа мөн ганц хуудастай PDF файлуудаа устгана биз ээ.
Дүгнэлт:
- Линукст хар мянган гоё програм бий.
- Линуксчид "дугуй"-г дахин нээж цагаа үрдэггүй.
- Линукс бол бүтээмжит хүний хөлөглөх унаа.
Тайлбар:
[1] ImageMagick® is a software suite to create, edit, and compose bitmap images. It can read, convert and write images in a variety of formats (over 100) including DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG, and TIFF. Use ImageMagick to translate, flip, mirror, rotate, scale, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves.
The functionality of ImageMagick is typically utilized from the command line or you can use the features from programs written in your favorite programming language. Choose from these interfaces: G2F (Ada), MagickCore (C), MagickWand (C), ChMagick (Ch), ImageMagickObject (COM+), Magick++ (C++), JMagick (Java), L-Magick (Lisp), NMagick (Neko/haXe), MagickNet (.NET), PascalMagick (Pascal), PerlMagick (Perl), MagickWand for PHP (PHP), IMagick (PHP), PythonMagick (Python), RMagick (Ruby), or TclMagick (Tcl/TK). With a language interface, use ImageMagick to modify or create images dynamically and automagically.
ImageMagick is free software delivered as a ready-to-run binary distribution or as source code that you may freely use, copy, modify, and distribute. Its license is compatible with the GPL. It runs on all major operating systems. Эх сурвалж: http://www.imagemagick.org/
[2] Ghostscript is a suite of software based on an interpreter for Adobe Systems' PostScript and Portable Document Format (PDF) page description languages. Эх сурвалж: Википедиа.
6 comments:
Ер нь бол зургийн хэмжээг багасгахгүйгээр хөрвүүлсэн ч болохоор юм байна. PDF рүү хөрвүүлэх явцдаа хангалттай багасгачихдаг шиг байна шүү ;)
Мөн олон файлыг нэг дор хөрвүүлэхэд гарсан алдааны шалтгааныг тодруулсан хүн байна уу? ;)
Хэрэгтэй зүйл бичжээ. Энэ командуудыг эвлүүлээд зургуудыг pdf болгодог скрипт бичвэл. Тэгээд github дээрээ тавьчуул... ;)
@Маахай Л.Очирхуяг
Баярлалаа, нээрэн тэгье ;)
Их хэрэгтэй зүйл бичсэн байна.
Чамайг скриптээ биччихвэл нэг товч дараад л ашиглаад баймаар байна6
Ашиглаж үзлээ болж байна, баярлалаа хэрэг боллоо =).
Post a Comment