如何在几个小页面中打印一个大的单页?

And*_*res 10 gnome printing cad poster

我的用例是一张 A3 pdf 横向纸,我需要用两张 A4 肖像打印。我正在使用桌面 ubuntu 16.04。

我所尝试的 我设法做的是使用一个命令行程序来帮助: 拆分/平铺 A3(横向)pdf 到 A4(纵向)如何在纸张的 4 个角打印单个图像?

我还发现打印海报(在几张纸上),但该解决方案使用上述命令行选项的 GUI 版本,但似乎不适用于 PDF 或 SVG。

另一种选择是此答案中提到的打印到文件选项。但即使我要求它打印 A4 尺寸,它也只会打印一个 A3 尺寸的新 PDF。

我想要的是在打印对话框中有选项。

我有一种感觉,如果我使用正确的设置,它应该可以工作。但例如,页面设置和页面处理上的以下设置: 打印页面设置设置 打印页面处理设置

当我单击预览时,我会在一个横向页面中看到完整的 A3 纸,我仍然按打印,希望它可以满足我的要求,但是:

它只打印横向的右上角,我不明白逻辑。

遵循评论:如果未勾选页面处理选项卡下标有“使用文档页面大小选择页面大小”的框,那么我完成了一半的工作:它将仅打印 A4 肖像的左侧,这就是我想。但我仍然会错过右手边。

用例:当您无法使用绘图仪或检查拼写错误时打印 A2、A1 和 A0 尺寸的海报,当您无法使用 A3 打印机或只是用完 A3 纸并打印大尺寸时打印工程图纸图像分成几部分

小智 8

pdftools.PDFposter

sudo apt install pdfposter
pdfposter --help
Run Code Online (Sandbox Code Playgroud)

示例,将海报转换为 3x3 字母大小

pdfposter -p3x3 Let my_1_large_page.pdf my_9_small_pages.pdf
Run Code Online (Sandbox Code Playgroud)

  • 虽然这并没有为我产生可用的输出(我得到了一些黑页),但参数情况实际上变得更简单:“-p”参数现在用于指定目标海报尺寸。例如,要在 A5 纸上打印 A3 文档,请使用“-pa3 -ma5”。 (2认同)
  • 完美,有效!参数必须稍微更改为“-p3x3Let”(必须连接两个参数)。至少对于我的 Ubuntu 20.10 中可用的 pdfposter 0.7.post1 来说是这样。 (2认同)

小智 6

不,您不能从标准打印对话框中执行此操作。

打印对话框中的“每面页数”选项对于打印多对一而不是一对多很有用。前者是用更少的张数打印,而相反的是打印海报(称为平铺打印)。

但我看到了这样的选择?

GTK+ 有一个名为“Pages per side”的选项。然而,在其他图形工具包或应用程序中,可能会发现此类选项为“Number-up”(Qt)或“N-upprinting”(Scribus)。然而,并非所有应用程序都有此选项。

尽管命名不同,但目的是相同的:调整每张“页”上要打印的“页数”。

  • “页面”是指应用程序读取的内容,通常是从预先创建的现有文件中读取的。这就是我们所拥有的

  • “工作表”是指将通过硬件打印机打印或保存到新文件中的内容。这就是我们将得到的

为简单起见,将“页面”理解为输入,将“工作表”理解为输出。

但我有六个标签?

根据图形工具包或应用程序支持的内容,打印对话框可能具有额外或有限的选项。对于 GTK+ 标准打印对话框,大多数用户将拥有这两个选项卡:常规、页面设置。实际上,只有前两个选项卡是常见的。我已经注意到以下几个例子。

  • Firefox 在打印对话框中选择“打印到文件”时,具有三个选项卡(常规、页面设置、选项)。

  • 鼠标垫具有类似的三个选项卡,但最后一个选项卡具有不同的名称(文档设置)和不同的选项。

  • Evince 与 Firefox 相对更相似,除了第三个选项卡有另一个不同的名称(页面处理)和其他不同的选项。

When selecting other type of printer however, users may have up to six tabs (General, Page Setup, Options, Job, Image Quality, Colour) with extended options. 许多 GTK+ 应用程序都有,但并非所有应用程序都有带有扩展选项的附加选项卡。

但我完成了一半的工作?

请注意,无论纸张方向如何(图 1a),左侧都可以找到“完成一半的工作” 。这是由于这样的原点(0,0)位于所述左侧角,类似于显示画面。

                    Illustration 1a

+----------+----------+      +-------------+-------+
|0,0       |          |      |0,0          |       |
|          |          |      |             |       |
|          |          |      |          A4 |       |
|          |          |      |-------------+       |
|       A4 |          |      |                     |
+----------+----------+      +---------------------+
                    A3                           A3

A3 page printed to A4 sheet,
when page scaling is none or ignored
Run Code Online (Sandbox Code Playgroud)

当页面比纸张更大时,结果更加明显(图 1b)。考虑 A2:A4(尺寸系数为 1:4)而不是 A3:A4(尺寸系数为 1:2)。结果是相似的:只打印左侧

                    Illustration 1b

+----------+----------+      +-------------+-------+
|0,0       |          |      |0,0          |       |
|          |          |      |             |       |
|          |          |      |          A4 |       |
|          |          |      |-------------+       |
|       A4 |          |      |                     |
|----------+          |      |                     |
|                     |      |                     |
|                     |      |                     |
|                     |      |                     |
|                     |      |                     |
+---------------------+      +---------------------+
                    A2                           A2

A2 page printed to A4 sheet,
when page scaling is none or ignored
Run Code Online (Sandbox Code Playgroud)

因此,右半部分将不会出现,因为“每面页数”选项根本不打算用作平铺打印。由于页面处理或尝试的任何选项组合,左侧和右侧可能会颠倒(到目前为止我还没有看到这种效果)。

但我只想要另一半?

从前面的解释中,回想一下输入的是“pages”,输出的是“sheet”。考虑到这种理解,请考虑三个用例:

  1. 一对一。给定一个仅包含一页的文档,结果肯定只会打印到一张纸上(图 2a)。

               Illustration 2a
    
    +---------+            +-------------+
    |         |            |             |
    |         |            |             |
    |         |            |1            |
    |         |            +-------------+
    |1        |
    +---------+
    portrait page with     landscape page with
    1 pp/side sheet        1 pp/side sheet
    
    Run Code Online (Sandbox Code Playgroud)
  2. 多对一。给定包含总共 10 页的文档,结果可以打印到: 5 页,每面 2 页;3 张,每面 4 页;或 2 张,每面 6 页。根据页面是纵向(图 2b)还是横向(图 2c),最适合纸张的选项可能因每个选项而异。

               Illustration 2b
    
    +------+------+          +----+----+ 
    |      |      |          |    |    |
    |      |      |          |1   |2   |
    |1     |2     |          +----+----+
    +------+------+          |    |    |
                             |3   |4   |
                             +----+----+
    portrait pages with      portrait pages with
    2 pp/side sheet          4 pp/side sheet
    
               Illustration 2c
    
    +---------+              +------+------+
    |         |              |1     |2     |
    |1        |              +------+------+
    +---------+              |3     |4     |
    |         |              +------+------+
    |2        |
    +---------+
    landscape pages with     landscape pages with
    2 pp/side sheet          4 pp/side sheet
    
    Run Code Online (Sandbox Code Playgroud)
  3. 一对多。通过在打印对话框中仅使用“每面页数”选项,这是不可能的。

用例 1 是最基本的用途。当页面具有不同的纸张尺寸或方向时,某些选项允许用户调整适合度。因此,通过缩小内容,可以将单个大页面 A3 打印在单个较小的纸张 A4 上。

想要打印包含 30 张演示幻灯片的讲义的学生更有可能使用用例 2。每面使用 6 页而不是 30 张纸,结果只打印到 5 张纸上。这样可以节省 25 张或 80% 的纸张!

用例 3 是不可能的,因为 Linux 上的标准打印对话框中没有这样的选项;所以“另一半”也是不可能的。

Linux 上的平铺打印

作为过去十年 Linux 上的最终用户,我想说甚至Linux 上的单个应用程序没有支持平铺打印的标准打印对话框。其他用户可能不同意。

任何支持平铺打印的应用程序都会有一个不同的选项,称为“海报”(Adobe Reader X;仅限 Windows)、“平铺”或类似的东西。这样的选项在 Linux 上几乎不存在。

确切地说,Linux 上很少有命令行和图形应用程序支持平铺打印,但 Linux 上的标准打印对话框不支持。

以上都是什么意思

按照上面的详细解释,包含大单页的文档无论如何都将打印到单张纸上。考虑到大页面是 A3,纸张是 A4,根据纸张方向(图 1a),只能打印 A3 的一半或三分之二。

TL;DR “每面页数”是使用较少的纸张而不是海报进行打印。从 2018 年开始,Linux 上的标准打印对话框无法进行平铺打印。应该建议改进,而不是错误。

  • 简而言之,Linux 或 Ubuntu 缺乏[在 Adob​​e Reader 中打印海报](https://helpx.adobe.com/acrobat/kb/print-posters-banners-acrobat-reader.html) 的便利性。 (2认同)
  • 谢谢你!这是一个很好的答案。我会尝试找到一种方法来完成 gtk 功能请求。 (2认同)