所有 PDF 应用程序都会混合 PDF 文件的宽度和高度

所有 PDF 应用程序都会混合 PDF 文件的宽度和高度

我有这个PDF文件通过扫描创建。在任何 PDF 查看器中查看时,页面的宽度大于高度。

但似乎我尝试过的所有 PDF 应用程序都将宽度误认为高度,将高度误认为此 PDF 文件的宽度(见下文。)

为什么?

PDF 文件是否已损坏?

如何“修复”PDF 文件,以便 PDF 应用程序不会混合其宽度和高度?

  1. 以下命令显示宽度小于高度(以磅为单位):

    $ 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
    
  2. 以下命令显示宽度小于高度(以像素为单位):

    $ 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
    
  3. 我正在尝试使用脚本裁剪掉 PDF 文件的左右边距pdfcrop.sh 这里这似乎基于gspdftk。我测量的左右边距分别是 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:

test.png(从 test.pdf 转换而来)

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。所以你没有陷入臭名昭著的境地施乐扫描错误

相关内容