pdf - 如何确定PDF是横向还是纵向

标签 pdf pdf-generation itext pdfbox

是否有工具可以确定 PDF 是横向还是纵向?

我目前正在查看 pdfbox itext 为此,但似乎我找不到它。请告诉他们是否支持这一点。

使用 提取 PDF 页面信息折纸 正在提供 pdf 页面有一定程度旋转的信息。这是折纸报告的内容:

{:Parent=>#<PDF::Reader::Reference:0x872349c @id=8, @gen=0>, :Type=>:Page, 
 :Contents=>#<PDF::Reader::Reference:0x8722f24 @id=4, @gen=0>, :Resources=># <PDF::Reader::Reference:0x870dbd8 @id=2, @gen=0>, 
:MediaBox=>[0, 0, 612, 792], :Rotate=>270}

旋转:270

“旋转”究竟是什么意思?

最佳答案

pdfinfo命令行实用程序有一种方法可以让您查看每个页面的页面大小信息和 MediumBox、CropBox、BleedBox、ArtBox 和 TrimBox 值。在这里,我询问特定文档第 2 页到第 4 页的值:

pdfinfo -box -f 2 -l 4 sample.pdf
  Creator:        FrameMaker 6.0
  Producer:       Acrobat Distiller 5.0.5 (Windows)
  CreationDate:   Thu Aug 17 16:43:06 2006
  ModDate:        Tue Aug 22 12:20:24 2006
  Tagged:         no
  Form:           AcroForm
  Pages:          146
  Encrypted:      no
  Page    2 size: 419.535 x 297.644 pts
  Page    2 rot:  90
  Page    3 size: 297.646 x 419.524 pts
  Page    3 rot:  0
  Page    4 size: 297.646 x 419.524 pts
  Page    4 rot:  0
  Page    2 MediaBox:     0.00     0.00   595.00   842.00
  Page    2 CropBox:     87.25   430.36   506.79   728.00
  Page    2 BleedBox:    87.25   430.36   506.79   728.00
  Page    2 TrimBox:     87.25   430.36   506.79   728.00
  Page    2 ArtBox:      87.25   430.36   506.79   728.00
  Page    3 MediaBox:     0.00     0.00   595.00   842.00
  Page    3 CropBox:    148.17   210.76   445.81   630.28
  Page    3 BleedBox:   148.17   210.76   445.81   630.28
  Page    3 TrimBox:    148.17   210.76   445.81   630.28
  Page    3 ArtBox:     148.17   210.76   445.81   630.28
  Page    4 MediaBox:     0.00     0.00   595.00   842.00
  Page    4 CropBox:    148.17   210.76   445.81   630.28
  Page    4 BleedBox:   148.17   210.76   445.81   630.28
  Page    4 TrimBox:    148.17   210.76   445.81   630.28
  Page    4 ArtBox:     148.17   210.76   445.81   630.28
  Page    4 MediaBox:     0.00     0.00   595.00   842.00
  File size:      6888764 bytes
  Optimized:      yes
  PDF version:    1.4

请注意以下事项:
  • *Box values:这些是 4 个数字,单位是 PostScript 点:第一对代表左下角的坐标,第二对代表右上角的坐标。
  • MediaBox : 是 PDF 中每个页面的必需设置。
  • TrimBox : 是可选设置,如果未明确定义,则默认与 MediaBox 相同。如果它偏离 MediaBox,则它会告诉 PDF 查看器(和打印机驱动程序)仅呈现和显示整页的特定部分。
  • Page size :此信息是根据 TrimBox 值设置的距离得出 + 计算得出的。
  • rot :这给出了页面旋转的值。可能是 0 , 90 , 180270度。

  • 现在,页面的横向和纵向定义是这样的:
  • 如果宽度大于高度,则被视为“风景”。
  • 如果高度大于宽度,则将其视为“纵向”。
  • 不确定宽度和高度是否具有相同的值。

  • 但! ,....
  • ...你可以输入一个非零值 /Rotation值到您的 PDF 源代码中(其中 pdfinfo 将显示为 rot: 信息)并通过这种方式实现“纵向”PDF 页面将显示为“横向”,反之亦然;
  • ...你可以定义一个“风景”形状的 '/TrimBox inside a 'portrait' shaped/MediaBox` 或反之亦然,并将其与非零旋转混合,并通过这种方式实现“横向”形状的内容将以“纵向”(或倒置)外观出现...

  • 对此感到困惑?别担心,很多都是。事实是,“风景”和“肖像”并不是明确定义的技术术语。它们只是描述我们所见的约定......

    关于pdf - 如何确定PDF是横向还是纵向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12050743/

    相关文章:

    c# - iTextSharp 创建页脚页 # of#

    itextsharp - 如何设置初始 View 属性?

    python - PyPDF2 PdfFileMerger 在合并文件中丢失 PDF 模块

    C#:如何使用 iText 7 创建自定义大小的 Document 对象?

    php - 是否可以使用 Google Docs API 将文本字符串转换为 PDF

    java - 使用 PDPageContentStream.drawLine 时出现 pdfbox 错误

    c# - 如何从字节数组 c# MVC .NET Core 在 iframe 中显示 pdf

    .net - 如何使用 .NET 中的智能卡对 PDF 文件进行数字签名?

    java - 如何使用 PDFBox drawString 插入换行符

    java - seam iText 集成库