From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Gleb Kulikov Organization: IAO To: community@altlinux.ru Subject: Re: [Comm] Many images -> one pdf Date: Mon, 28 Jun 2004 21:59:24 +0700 User-Agent: KMail/1.5 References: <40DFCD6A.1060605@rambler.ru> In-Reply-To: <40DFCD6A.1060605@rambler.ru> MIME-Version: 1.0 Content-Type: Multipart/Mixed; boundary="Boundary-00=_MJD4A1yOPbCm74A" Message-Id: <200406282159.24885.gleb@asd.iao.ru> X-Virus-Scanned: by amavisd-new at core.tsc.ru X-BeenThere: community@altlinux.ru X-Mailman-Version: 2.1.5 Precedence: list Reply-To: community@altlinux.ru List-Id: Mailing list for ALT Linux users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Jun 2004 15:07:19 -0000 Archived-At: List-Archive: List-Post: --Boundary-00=_MJD4A1yOPbCm74A Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: 8bit Content-Disposition: inline В сообщении от Понедельник 28 Июнь 2004 14:48 Yury Aliaev написал: > Не подскажите ли мне, как можно осуществить следующую задачку: имеется > отсканированная книга в виде кучи пронумерованных картинок, хочется ради > удобства запихнуть всё это в один pdf или PostScript. Желательно -- > скриптом и автоматически, ибо прописывать более 150 файлов вручную Всего-то 150... Имхо, такие вещи лучше зажимать не в pdf, а в дежавю. Сначала convert в pnm, буде изначальные картинки были в другом формате, ну а потом cjb2. Например, я пользуюсь для этой цели на скорую руку безоразно намалёваным скриптом (файл. начинающийся с бувквы C, считается цветным, и обрабатывается соответственно). Если отдельные странички были в pdf, их можно извлечь через gs: gs -q -dNOPAUSE -dBATCH -r300 -sDEVICE=pbmraw -sOutputFile=name -- Салют, /GLeb UIN: 15341920 jabber://gleb@asd.iao.ru netmail: 2:5005/78 --Boundary-00=_MJD4A1yOPbCm74A Content-Type: text/x-python; charset="koi8-r"; name="tdj.py" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="tdj.py" #!/usr/bin/python # где лежат файлы ppm (каталог оригинала) originaldir = "./" # где создавать временные .djvu djdir = "./DJ/" # ---------------------------------------------------------------------------------------------------------------- assemblelist = [] # ---------------------------------------------------------------------------------------------------------------- import os, os.path def GetList(fromwhere): list = os.listdir(fromwhere) result = [] for item in list: if os.access(item, os.R_OK) and not os.path.isdir(item): if item.find(".pnm") > -1: result.append(item) return result # ---------------------------------------------------------------------------------------------------------------- def CompressIt(fileslist): global djdir global assemblelist for file in fileslist: outname = file.replace(".pnm", ".djvu") if file.find("C")>-1: # outname = outname.replace("C", "") cmd = "c44 " # используем цветной кодировщик pass else: # иначе битональный кодировщик cmd = "cjb2 -clean -loose " pass cmd = cmd + file + " " + djdir+outname assemblelist.append(djdir+outname) if os.access(djdir+outname, os.R_OK): pass else: print cmd os.system(cmd) # ---------------------------------------------------------------------------------------------------------------- # собираем воедино def Assemble(files): cmd = "djvm -c outfile.djvu " files.sort() for item in files: cmd = cmd + item + " " print cmd os.system(cmd) # ---------------------------------------------------------------------------------------------------------------- def main(): filesto =GetList(originaldir) CompressIt(filesto) global assemblelist Assemble(assemblelist) # ---------------------------------------------------------------------------------------------------------------- if __name__ == "__main__": main() --Boundary-00=_MJD4A1yOPbCm74A--