Как-то товарищ попросил меня отсканировать брошюрку страниц на 140 чтобы можно было читать в телефоне.
Я не стал заморачиваться - снял скрепки, сунул брошюрку в лоток Kyocera M2040dn - и за 5 минут получил скан в pdf формате.
И тут возникло НО - страницы шли в таком порядке: 140, 1, 2, 139, 138 , 3, 4, 137 и т.д.
Читать это невозможно.
Решил что нужно сохранить постранично в папку, пересортировать и снова собрать в книгу.
Я открыл pdf-файл FineReader-ом и сохранил в png-формате постранично в одну папку.
(Можно и при помощи других программ)
FineReader пронумеровал выходные файлы от mz-0001.png до mz-0140.png, но при этом в 1-м файле была 140-я страница, во 2-м - 1-я, потом 2-я, 139-я и т.д.
Значит нужно переименовать файлы, так чтобы в 1-м была 1-я страница, во 2-м - 2-я и т.д., а потом собрать их в pdf.
Но вручную переименовывать - долго и лень и можно ошибится.
Поэтому написал программу на Делфи:
program ReNum;
uses
SysUtils,Forms;
{$R *.res}
var i,j,n,a1,b1,c1,d1,a2,b2,c2,d2:integer;
Procedure Ren(p1,p2:integer);
var name,name2,s,l:string;k:integer;
begin
s:=inttostr(p1);l:=s;
for k:=1 to 4-length(s) do
l:='0'+l;
name:=ExtractFilePath(Application.ExeName)+'mz - '+l+'.png';
name2:=ExtractFilePath(Application.ExeName)+inttostr(p2)+'.png';
RenameFile(name,name2);
end;
begin
Application.Initialize;
Application.Run;
n:=140;
j:=1;i:=1;
while i<=n do
begin
a1:=j;a2:=n+1-i;
b1:=j+1;b2:=i;
c1:=j+2;c2:=i+1;
d1:=j+3;d2:=n-i;
j:=j+4;i:=i+2;
Ren(a1,a2); Ren(b1,b2);
Ren(c1,c2); Ren(d1,d2);
end;
end.
Возможно не самое красивое решение, но вполне рабочее.
Attachment | Size |
---|---|
![]() | 187.55 KB |
Comments
Администратор _
Wed, 04/10/2019 - 16:22
Permalink
Решение всегда есть! Надо
Решение всегда есть! Надо только его найти! отлично!