gpt4 book ai didi

pdf - 将 PDF 文件中的 A4 页面拆分为 A5 页面

转载 作者:行者123 更新时间:2023-12-04 06:27:06 30 4
gpt4 key购买 nike

这个问题在这里已经有了答案:




9年前关闭。




Possible Duplicate:
Split A4 PDF page into two A5 and back again



我在 PDF 文件中有 A4 页,如下所示:

this pdf

如何将每个 A4 页面拆分为两个 A5 页面?

最佳答案

如果此功能尚未由某些现有 PDF 工具执行,那么这里是我将如何使用 CAM::PDF 解决问题的高级头脑 Storm 。 .我不确定它是否会起作用。

  • 复制页面
  • 旋转内容
  • 将每个页面的裁剪框设置为感兴趣的一半

  • 在我的脑海里,我不知道额外的裁剪框外内容是否会不可见,或者它是否会影响渲染......

    更新:我实现了一个主要工作的简单解决方案,如下所示。它复制有问题的页面,旋转两个副本,并在每个副本上设置 CropBox,选择第一页的左半部分和第二页的右半部分。您的情况可能不需要轮换,不确定。
    #!/usr/bin/perl
    use strict;
    use warnings;
    use CAM::PDF;
    my $pdffile = 't/sample1.pdf';
    my $pdfout = 'temp2.pdf';
    my $pagenum = 1;

    my $pdf = CAM::PDF->new($pdffile) or die $CAM::PDF::errstr;

    my ($objnum, $gennum) = $pdf->getPageObjnum($pagenum);
    my $pagedict = $pdf->getPage($pagenum);
    $pagedict->{Rotate} = CAM::PDF::Node->new('number', 90);
    my $oldbox = $pdf->getValue($pagedict->{CropBox} || $pagedict->{MediaBox});
    my @box = map {$pdf->getValue($_)} @{$oldbox};
    $pagedict->{CropBox} = CAM::PDF::Node->new('array', [
    map {CAM::PDF::Node->new('number', $_)} $box[0], $box[1], $box[2], ($box[3]+$box[1])/2
    ]);

    my $duplicate = CAM::PDF->new($pdffile) or die $CAM::PDF::errstr;
    $duplicate->extractPages($pagenum);
    $pdf->appendPDF($duplicate); # appends at end instead of inserting

    $pagedict = $pdf->getPage($pdf->numPages());
    $pagedict->{Rotate} = CAM::PDF::Node->new('number', 90);
    $pagedict->{CropBox} = CAM::PDF::Node->new('array', [
    map {CAM::PDF::Node->new('number', $_)} $box[0], ($box[3]+$box[1])/2, $box[2], $box[3]
    ]);

    if ($objnum) {
    $pdf->{changes}->{$objnum} = 1;
    }
    $pdf->cleanoutput($pdfout);

    关于pdf - 将 PDF 文件中的 A4 页面拆分为 A5 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5133725/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com