我有这个PDF文件通过扫描创建。在任何 PDF 查看器中查看时,页面的宽度大于高度。
但似乎我尝试过的所有 PDF 应用程序都将宽度误认为高度,将高度误认为此 PDF 文件的宽度(见下文。)
为什么?
PDF 文件是否已损坏?
如何“修复”PDF 文件,以便 PDF 应用程序不会混合其宽度和高度?
以下命令显示宽度小于高度(以磅为单位):
$ pdfinfo test.pdf Creator: Xerox WorkCentre 7830 Producer: Xerox WorkCentre 7830 CreationDate: Tue Dec 23 00:22:47 2014 Tagged: no Form: none Pages: 1 Encrypted: no Page size: 612 x 1008 pts Page rot: 90 File size: 81820 bytes Optimized: no PDF version: 1.4
以下命令显示宽度小于高度(以像素为单位):
$ pdfimages -list test.pdf page num type width height color comp bpc enc interp object ID --------------------------------------------------------------------- 1 0 image 864 1400 rgb 3 8 jpeg no 6 0 1 1 mask 1236 895 - 1 1 jbig2 no 8 0 1 2 mask 737 891 - 1 1 jbig2 no 10 0 1 3 mask 247 381 - 1 1 jbig2 no 11 0 1 4 mask 44 298 - 1 1 jbig2 no 12 0 1 5 mask 429 9 - 1 1 jbig2 no 13 0 1 6 mask 22 258 - 1 1 jbig2 no 14 0 1 7 mask 130 142 - 1 1 jbig2 no 15 0
我正在尝试使用脚本裁剪掉 PDF 文件的左右边距
pdfcrop.sh
这里这似乎基于gs
和pdftk
。我测量的左右边距分别是 116 pts 和 20 pts。该脚本的用法是这样的:
echo " -t \"<left> [<top> [<right> <bottom>]]\"" echo " trims outer page edges by the given amounts. Unit is bp. A single number" echo " is used for all trims, two numbers \"<left> <top>\" are applied to the" echo " right and bottom trims alike."
但
pdfcrop.sh -t "116 0 20 0" test.pdf 修剪.pdf
会将顶部裁剪 116 点,将底部裁剪 20 点,而下面的做法正确的是,将左侧裁剪 116 点,右侧裁剪 20 点。
pdfcrop.sh -t "0 116 0 20" test.pdf 修剪.pdf
答案1
0。
这是根据一页示例 PDF 文件制作的 PNG:
1.
在任何 PDF 查看器中查看时,页面的宽度大于高度。
这正是它应该的样子。
2.
[...] 似乎我尝试过的所有 PDF 应用程序都将宽度误认为高度,将高度误认为此 PDF 文件的宽度。
正如你所说,它只是似乎像那样。
3.
PDF 文件是否已损坏?
不,不是。
4.
您忽略了第一个命令 ( pdfinfo
) 给您的一个信息:
Page rot: 90
这意味着 PDF 文件内的 PDF 源代码告诉查看者将此“确实比宽高”-翻页并旋转 90 度显示。
因此,“在任何 PDF 查看器中查看,页面的宽度大于高度”。正如它应该的那样。看我的1号多于。和我的2号多于。
5.
您可以使用pdfimages
提取所有图像,然后使用 ImageMagickconvert
将这些以 PNM 或 PBM 形式出现的图像转换为 JPEG:
pdfimages -j test.pdf test-
for i in *.pbm ; do \
convert $i ${i/.pbm/.jpg} ; \
done
这会产生八个不同的图像,其中在pdfimages -list
您的问题的命令中编号为 0--7 的图像(“2。”)。
这是这些图像。它们全部缩放至原始大小的 25%,因此不会浪费太多空间。所有这些都以其“自然”方向显示,因为它们是由 提取的pdfimages
。这是0
列表中的第一个,编号:
该图像是以其“自然”方向提取的。明显比宽高。
以下几对图像均缩放了 25%。它们代表上面mask
输出列表中类型的图像pdfimages
:
您的扫描仪(及其内置软件)是一种更“智能”的扫描仪。它不是简单地从页面生成单个 TIFF,然后将其嵌入到 PDF shell 中,而是尝试使用图像来优化不同部分'面具'(使用 Alpha 通道——在我创建的 JPEG 中显示为黑色)包含文本的部分。
幸运的是,您的扫描仪软件没有“更多的”当它对文本应用压缩时,它是智能的,并且它使用 JPEG2000 而不是 JBIG2。所以你没有陷入臭名昭著的境地”施乐扫描错误”。