Форматирование PDF для Kindle
Я начал со сканирования книги в формате PDF с двумя колонками, а затем использовал gs
методы, изложенные в этой теме, чтобы перевести PDF в одностраничный формат, отлично работали. Это хорошо выглядит на экране ПК, но когда я передаю PDF в Kindle (3-го поколения), fit-to-screen
опция отсекает около 10-20% от нижней части большинства страниц, тогда как actual size
Опция слишком велика для экрана.
Есть ли этому решение? я должен использовать другие параметры, чем -g4210x5950
когда я делаю оригинальное расщепление с gs
? или я могу просто изменить размер уже созданного PDF-файла (или его полей), чтобы он подходил для экрана Kindle? Если да, то какой размер мне нужен для экрана Kindle 3-го поколения.
Я хочу изменить масштаб одной страницы PDF, чтобы исправить размер Kindle (возможно, с gs
), не конвертировать. В качестве альтернативы можно добавить поля / границы, чтобы растопить подгонку к экрану, не обрезая концы.
(Должен сказать, что я пробовал бесплатный конвертер Amazon и т. Д., Но в идеале я хотел бы сохранить формат PDF, а не конвертировать, поскольку документ технический и преобразование не выглядит особенно надежным. Я бы предпочел просто изменить размер PDF/PDFmargins и сохранить существующее форматирование, если это возможно).
2 ответа
У меня были хорошие результаты с K2pdfopt. С помощью параметров командной строки -w (ширина) и -h (высота) вы можете установить размер вывода так, чтобы он точно соответствовал размеру экрана вашего Kindle.
Я нашел команду
pdfinfo -box -f 1 -l 3 mypdf.pdf
особенно полезно при поиске информации о данном документе PDF. Для документа PDF, который был нарезан в нижней части, когда он был помещен в Kindle, информация показала:
Page 1 size: 421 x 595 pts (A5)
Page 1 MediaBox: 0.00 0.00 421.00 595.00
Page 1 CropBox: 0.00 0.00 421.00 595.00
Page 1 BleedBox: 0.00 0.00 421.00 595.00
Page 1 TrimBox: 0.00 0.00 421.00 595.00
Page 1 ArtBox: 0.00 0.00 421.00 595.00
.
.
.
в соответствии с тем, как я создал его с помощью команды (которая правильно обрезает страницы A5)
gs \
-o left-sections.pdf \
-sDEVICE=pdfwrite \
-g4210x5950 \
-c "<</PageOffset [0 0]>> setpagedevice" \
-f double-page-input.pdf
-gWxH
флаг устанавливает размер в пикселях на 720dpi
,
Размер экрана просматриваемого 3-го поколения: 560x735 (pixels) @ 167dpi
(согласно этому и вики), таким образом, в 72dpi
(стандартный экран) видимый размер экрана Kindle переводится в (560/167)*72=241.43
от (735/167)*72=316.88
, так 241.43x316.88 @72dpi
, тем не мение pdfwrite
, используется ниже, использует dpi 720dpi
При этом dpi Kindle для просмотра 2414x3168 @720dpi
, очевидно 4210x5950@720dpi
слишком большой
В качестве альтернативы можно убедиться в том, что я создал PDF с 4210x5950 pixels @ 720dpi
и в 167dpi
это было бы 976.48x1380.07
, который явно больше, чем 560x735
Kindle видимой области.
Таким образом мне нужно перемасштабировать до границ Kindle.
Можно установить размер устройства в пунктах непосредственно с -dDEVICEWIDTHPOINTS=w
а также -dDEVICEHEIGHTPOINTS=h
, В 72dpi
1 point= 1 pixel
(как точка определяется как 1/72
дюйма), но в 167dpi
1 point ~ 2.31 pixels
, Так что если наш дисплей 560x735 pixels @ 167dpi
тогда мы бы установили -dDEVICEWIDTHPOINTS=241 -dDEVICEHEIGHTPOINTS=316
чтобы соответствовать Kindle. Проблема в том, что это не меняет значения MediaBox
и т. д., как показано pdfinfo
оставаться в 421x595 @72 dpi
так что используйте флаг -dPDFFitPage
также, чтобы игнорировать их, или, скорее, изменить их масштаб, чтобы соответствовать устройству.
gs -o out.pdf -sDEVICE=pdfwrite -dDEVICEWIDTHPOINTS=241 -dDEVICEHEIGHTPOINTS=317 -dPDFFitPage -f in.pdf
Похоже сейчас когда out.pdf
просматривается с помощью actual-size
Опция в Kindle прекрасно умещается на экране.
Я до сих пор не совсем понимаю, почему Kindle обрезал края PDF-файла, который был слишком большим для его экрана, а не просто масштабировал (даже если это означало очень маленький текст) в режиме подгонки к экрану (я думаю, это то, что обычно делает?).