我首先扫描了一本双栏 PDF 书,然后使用gs
了这线程将 PDF 转换为单页格式,效果很好。这在 PC 屏幕上看起来不错,但当我将 PDF 传输到我的 Kindle(第 3 代)时,该fit-to-screen
选项会从大多数页面的底部截去大约 10-20%,而该actual size
选项对于屏幕来说太大了。
有解决办法吗?我应该使用-g4210x5950
与原始拆分不同的参数gs
吗?或者我是否可以调整已生成的 PDF(或其边距)的大小,使其适合 Kindle 屏幕?如果是这样,我需要的第三代 Kindle 屏幕尺寸是多少。
我想重新缩放单页 pdf 以适应 kindle 大小(可能使用gs
),而不是转换。或者添加边距/边框,以便 kindle 适合屏幕工作而不会截断两端。
(我应该说我已经尝试过亚马逊的免费转换器等,但理想情况下,我希望保留 PDF 格式而不是转换,因为该文档是技术性的,并且转换似乎不是特别可靠。如果可能的话,我宁愿只调整 PDF/PDFmargins 的大小并保留现有的格式)。
答案1
我取得了良好的效果K2pdfopt. 使用命令行选项 -w(宽度)和 -h(高度),您可以设置输出大小,使其完全匹配您的 Kindle 的屏幕尺寸。
答案2
我找到了命令
pdfinfo -box -f 1 -l 3 mypdf.pdf
在查找有关给定 PDF 文档的信息时特别有用。对于在 Kindle 上放进底部被截断的 PDF,信息显示:
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
。
第三代 Kindle 的可视屏幕尺寸为560x735 (pixels) @ 167dpi
(根据这和 wiki),因此在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
a处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
使用 Kindle 中的选项查看时actual-size
,它可以很好地适应屏幕。
我仍然不完全清楚为什么 Kindle 要从对于其屏幕来说太大的 PDF 中截断边缘,而不是在适合屏幕模式下重新缩放(即使这意味着非常小的文本)(我认为这是它通常所做的?)。