Pdf.js: 将纸张尺寸添加到文档信息

创建于 2016-02-15  ·  29评论  ·  资料来源: mozilla/pdf.js

您是否可以在文档信息中添加纸张尺寸?

了解文档使用letter还是A4纸张尺寸(以及其他尺寸)非常重要。

1-viewer 2-feature

最有用的评论

我无法编码,因此经验丰富的编码人员可能会提供更好的建议。

我确信核心贡献者将对解决此问题的方式持开放态度。 这里主要关注的是,解决方案一定不能很复杂,也不会增加项目的未来维护负担。

就个人而言,第一步,我只是添加页面大小信息而没有“好”的名称(以避免其本地化),也许(自动)检测单元。 第二步是讨论页面大小的名称和方向。

所有29条评论

它可以包括人像/风景吗?

如果使用多种页面尺寸/方向,例如某些页面是A4纵向,而有些页面是A3横向,则预期的行为是什么? 其他观众如何做到这一点?

我们还需要应对国际化和本地化

  • “ A4”或“ Letter”需要翻译
  • 10cm×15cm(英寸)应为英寸

回复:旋转。 我要检查PR 8043对我有什么作用。 那可以解决我的问题。 看来我确实需要正确阅读PR 8043和#6103,并确保我已应用这些修复程序在较新版本中。

回复:多尺寸。 Dunno(如果有)打印后端支持该功能,而无需将打印输出拆分为多个打印作业。 如果不拆分打印作业,则可以选择“最大打印”或“缩放至最小”作为明智的选择。

Cups在每个打印作业中都包含一个介质尺寸的标头,因此据我所知,Linux和MacOS每个打印作业的尺寸都限于一个尺寸。

回复:本地化。
打印机列出了可能和可用的纸张尺寸。
操作系统打印对话框知道用户的语言环境以及打印机列表。
操作系统打印对话框不知道原始尺寸。
pdf查看器知道区域设置,但不知道打印机列表,因此不知道可用纸张列表。
PDF查看器知道原始PDF大小。
pdf生成器知道服务器和客户端的语言环境。
用户讨厌“ PC加载字母”

回复:旋转。 我要检查PR 8043对我有什么作用。
回复:多尺寸。 Dunno(如果有)打印后端支持该功能,而不会拆分打印输出。
回复:本地化...打印机列出了可能和可用的纸张尺寸...

@berenddeschouwer我认为以上与OP无关

如果使用多种页面尺寸/方向,例如某些页面是A4纵向,而有些页面是A3横向,则预期的行为是什么? 其他观众如何做到这一点?

@timvandermeij ,SumatraPDF显示浏览页面的大小(在工具栏中显示编号的页面)。

我们还需要应对国际化和本地化

  • “ A4”或“ Letter”需要翻译
  • 10cm×15cm(英寸)应为英寸

@yurydelendik ,我认为不应该翻译A4

据我所知,页面尺寸是在PDF文档中的点中指定的。 因此,PDF.js应该使用操作系统中的默认尺寸单位。

@ousiahttps://github.com/mozilla/pdf.js/blob/master/test/pdfs/sizes.pdf上文档的预期页面大小是多少?

@ousia https://github.com/mozilla/pdf.js/blob/master/test/pdfs/sizes.pdf上文档的预期页面大小是

@yurydelendik ,我不明白你的问题。

大小是与实际页面相关的属性,与文档无关。

在PDF中, /MediaBox/Page词典中的条目,而不是/Catalog /Pages中的条目(

您提到的文档中的页面大小应该是哪个?

_Acrobat Reader_显示所显示页面的尺寸。 这边有

pageone

pagetwo

pagethree

感谢您提供此信息! 现在已经很清楚了,我认为这应该很好地实现。 我将其标记为一个好的初学者错误,因为它应该不太难。

如果没有人在处理它,我可以将其删除。

@loganhuskins这是你的!

我想我已经很接近了,我想使用base_viewer getPagesOverview() base_viewer

我应该在pdf_document_properties导入import { BaseViewer } from './base_viewer'; ,然后将BaseViewer.getPagesOverview()[0]作为计划显示的pageSize值吗? 这种方式似乎不起作用,还有其他我可以重复使用的util方法来获取此信息。 很抱歉从Logan劫持了这个。

我忙于工作,所以如果您接管这项工作,我很好。

你好
这是您要做什么?

compressed tracemonkey pldi 09 pdf

@ linton-Portman,在这种情况下添加_Letter,portrait_会很棒。

我的意思是,使用标准纸张尺寸时,提供标准纸张名称很有用。

查看_Evince_的功能:

evince-properties

和_SumatraPDF_:

sumatrapdf-properties

我的意思是,使用标准纸张尺寸时,提供标准纸张名称很有用。

这意味着我们需要适当地本地化所有这些名称。 是否有一些常用纸张尺寸的简短列表?

你好
从我到目前为止所读的内容来看,纸张大小是有区别的(美国字母= 8.50 x 11.00英寸和英国A4 = 8.26 x 11.69英寸)...我打算采用的是一系列if / else语句检查这些尺寸。 然后,这将确定显示什么文本..通过使用这些大小,您还可以确定是纵向还是横向...。

这将是很多if / else语句,具体取决于要满足的纸张尺寸...。
我是初学者/新手,所以也许有更好的方法:)

a4 portrait pdf
letter portrait pdf

请注意,A4尺寸最好用毫米表示,例如210mm x 297mm

@yurydelendik哦,是的,我也可以这样做。

在这里,您有一个列表(我改编自ConTeXt)。

欧洲标准纸张尺寸:

[A0] [宽度= 841mm,高度= 1189mm]
[A1] [宽度= 594mm,高度= 841mm]
[A2] [宽度= 420mm,高度= 594mm]
[A3] [宽度= 297mm,高度= 420mm]
[A4] [宽度= 210mm,高度= 297mm]
[A5] [宽度= 148mm,高度= 210mm]
[A6] [宽度= 105mm,高度= 148mm]
[A7] [宽度= 74mm,高度= 105mm]
[A8] [宽度= 52mm,高度= 74mm]
[A9] [宽度= 37mm,高度= 52mm]
[A10] [宽度= 26mm,高度= 37mm]

欧洲标准的不太常见的纸张尺寸:

[B0] [宽度= 1000mm,高度= 1414mm]
[B1] [宽度= 707mm,高度= 1000mm]
[B2] [宽度= 500mm,高度= 707mm]
[B3] [宽度= 353mm,高度= 500mm]
[B4] [宽度= 250mm,高度= 353mm]
[B5] [宽度= 176mm,高度= 250mm]
[B6] [宽度= 125mm,高度= 176mm]
[B7] [宽度= 88mm,高度= 125mm]
[B8] [宽度= 62mm,高度= 88mm]
[B9] [宽度= 44mm,高度= 62mm]
[B10] [宽度= 31mm,高度= 44mm]

欧洲标准信封尺寸:

[C0] [宽度= 917mm,高度= 1297mm]
[C1] [宽度= 648mm,高度= 917mm]
[C2] [宽度= 458mm,高度= 648mm]
[C3] [宽度= 324mm,高度= 458mm]
[C4] [宽度= 229mm,高度= 324mm]
[C5] [宽度= 162mm,高度= 229mm]
[C6] [宽度= 114mm,高度= 162mm]
[C7] [宽度= 81mm,高度= 114mm]
[C8] [宽度= 57mm,高度= 81mm]
[C9] [宽度= 40mm,高度= 57mm]
[C10] [宽度= 28mm,高度= 40mm]

CD封面纸尺寸:

[CD] [宽度= 120mm,高度= 120mm]

美国标准纸张尺寸:

[字母] [宽度= 8.5英寸,高度= 11英寸]
[分类帐] [宽度= 11英寸,高度= 17英寸]
[小报] [宽度= 17英寸,高度= 11英寸]

[合法] [宽度= 8.5英寸,高度= 14英寸]
[作品集] [宽度= 8.5英寸,高度= 13英寸]
[行政人员] [宽度= 7.25英寸,高度= 10.5英寸]

不同套信封:

[信封9] [宽度= 8.88英寸,高度= 3.88英寸]
[信封10] [宽度= 9.5英寸,高度= 4.13英寸]
[信封11] [宽度= 10.38英寸,高度= 4.5英寸]
[信封12] [宽度= 11.0英寸,高度= 4.75英寸]
[信封14] [宽度= 11.5英寸,高度= 5.0英寸]
[monarch] [宽度= 7.5英寸,高度= 3.88英寸]
[检查] [宽度= 8.58英寸,高度= 3.88英寸]
[DL] [宽度= 110mm,高度= 220mm]
[E4] [宽度= 280mm,高度= 400mm]

我认为添加方向是纵向还是横向很有用。

@ linton-Portman,根据您在屏幕截图中看到的内容,我有一个问题:

以下信息会更好吗?

Letter, portrait (8.5  × 11 in)

我的意思是,以下是这些修改:

  • 首先使用纸张名称。

  • 后跟_portrait_或_landscape_。

    顺便说一句,如果之前的分隔符是逗号,则我认为该单词应以小写字母开头。

  • 将尺寸写在括号内。

    • 最好使用正确的Unicode符号_×_(而不是_x_)。

    • 在上一列表中指定了哪种纸张尺寸需要哪些尺寸。

    • 我认为最好使用长度单位的缩写(在这种情况下为_in_或_mm_)。

如果不可能,则_portrait_或_landscape_应该放在括号内。

非常感谢您的贡献。

@ linton-Portman,使用switch可能是if... else语句的更好选择。

我无法编码,因此经验丰富的编码人员可能会提供更好的建议。 (我只是回答了您的问题,因为尚未回答)。

在这里,您有一个列表(我改编自ConTeXt)。

所有这些都需要翻译。 就我个人而言,我更喜欢找到5-10个最常用的页面大小并给它们命名。

信件,肖像(8.5×11英寸)

因此:“ 8.5 in×11 in,Letter / Portrait”或仅“ 100mm x 200mm”在这里看起来是更好的选择

最好使用正确的Unicode符号×(而不是x)。

是的,但这也取决于特定文化的本地化者

我无法编码,因此经验丰富的编码人员可能会提供更好的建议。

我确信核心贡献者将对解决此问题的方式持开放态度。 这里主要关注的是,解决方案一定不能很复杂,也不会增加项目的未来维护负担。

就个人而言,第一步,我只是添加页面大小信息而没有“好”的名称(以避免其本地化),也许(自动)检测单元。 第二步是讨论页面大小的名称和方向。

我尝试了一下,因为大约两个月以来没有在这里进行任何交流。 抱歉,我以前应该问过。
PR在pt中添加Page Size视图,这是一个开始。 下一步(如此处所述)将这些步骤转换为cm / mm / inch / ...并尝试查找匹配的标准文档尺寸。 这两个PR均未实现。

上面的拉取请求实现了此功能的大部分。 剩下要做的是显示当前可见页面的页面大小,而不是仅显示第一个页面的大小。 可以选择添加字母/肖像和默认页面尺寸(例如A4),但我认为这不是解决此问题所必需的。

#9577进行了更多改进,该方法还实现了显示当前可见页面的页面大小。 对于此问题,仅保留字母/肖像和默认页面大小。

最后一部分由上面的拉取请求(页面方向和页面大小名称)实现。 固定关闭。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

collinanderson picture collinanderson  ·  29评论

timvandermeij picture timvandermeij  ·  28评论

Snuffleupagus picture Snuffleupagus  ·  28评论

agilgur5 picture agilgur5  ·  32评论

Rob--W picture Rob--W  ·  34评论