如何在浏览器中查看pdf文件是US Legal格式还是US Letter格式?



我正在浏览器中运行。我有File(JavaScript文件类型)类型application/pdf。我想检查一下pdf的格式是否为US Letter (8.5 in)。x 11英寸)或美国法律(8.5英寸)。(横向或纵向)

我已经看了一下jsPDF,虽然它看起来很适合以编程方式创建pdf文档(这将在测试中派上用场),但我无法找到一种方法来使用它来解析现有的pdf文件并获取有关文档的信息(如页面格式和方向)。

任何帮助在实现我的目标将不胜感激,无论是与jsPDF,另一个库,或香草JS。

使用简单的文本解析,大多数但不是全部PDF文件将有一个或多个/MediaBox条目,代表每个页面。/CropBox是所查看页面的大小,因此如果存在可能更好。页长通常为除非页面使用不同的UserUnit。格式为[x0, y0, x1, y1],因此它们不一定总是以0开头,甚至可能是下面的值,x0和x1之间的差值表示标称宽度。

这里只是最近欧洲的一些例子中的第一个条目,所以请注意变化,有些是整数,有些是实数,有些是混合的(就像许多pdf内容一样,没有强制规则)

/MediaBox [0 0 595.28 841.89]
/MediaBox [0 0 842 595]
/MediaBox[0 0 387.36 594]

对于美国字母和合法字母它们通常是整数除了或者搜索

/MediaBox[0 0 612 792]及类似

在许多情况下,所有的页面都是相同的形状,即使打算稍后旋转,但有时页面可以混合,但这需要搜索/计算所有页面(假设所有都是简单的文本描述)

/MediaBox .... 0 576 720] = A US Gov Letter Portrait Page (8" x 10") [*]
/MediaBox .... 0 720 576] = A US Gov Letter Landscape Page
/MediaBox .... 0 576 756] = A US Gov Letter Portrait Page (8" x 10.5")
/MediaBox .... 0 756 576] = A US Gov Letter Landscape Page
/MediaBox .... 0 576 936] = A US Gov Legal Portrait Page (8" x 13") [*]
/MediaBox .... 0 936 576] = A US Gov Legal Landscape Page
/MediaBox .... 0 612 792] = A US Letter Portrait Page (8.5" x 11")
/MediaBox .... 0 792 612] = A US Letter Landscape Page
/MediaBox .... 0 612 936] = A US Gov Legal Portrait Page (8.5" x 13") [*]
/MediaBox .... 0 936 612] = A US Gov Legal Landscape Page
/MediaBox .... 0 612 1008] = A US Legal Portrait Page (8.5" x 14")
/MediaBox .... 0 1008 612] = A US Legal Landscape Page

还有其他历史上的美国尺码

* https://en.wikipedia.org/wiki/Paper_size Loose_sizes

旋转最常被设置为0,然后应用矩阵变换或/action来旋转第一个视图,在那些支持这种动作或脚本而不阻塞的阅读器中。因此,搜索100x/Rotate 0条目是没有用的

例如,我应该补充一下我上面举的例子中的第一个随机文件是一个垂直的纵向页面又窄又高但它是一个从右侧阅读的横向机场布局的图表对于它是纵向阅读还是横向阅读的方式测试会失败这可以在pdf中设置,但这取决于用户是否同时阅读纵向和横向文本

最新更新