AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 1861407
Accepted
lmat - Reinstate Monica
lmat - Reinstate Monica
Asked: 2024-11-11 20:14:44 +0800 CST2024-11-11 20:14:44 +0800 CST 2024-11-11 20:14:44 +0800 CST

如何将一个 pdf 页面的一部分移动到另一个 pdf 页面上

  • 772

我有一份 2 页的 PDF 文档。我想创建一个新的单页 PDF 文档,其中包含原始文档 p1 的一部分和 p2 的一部分(见图片链接):

问题说明

做到这一点的最好方法是什么?

pdf
  • 2 2 个回答
  • 111 Views

2 个回答

  • Voted
  1. Best Answer
    johnwhitington
    2024-11-13T22:33:32+08:002024-11-13T22:33:32+08:00

    大致未经测试:

    1. 分成两部分:

    cpdf in.pdf 1 -o 1.pdf

    cpdf in.pdf 2 -o 2.pdf

    1. 现在,将第二页的内容向下移动:

    cpdf -shift "0 dy" 2.pdf -o shifted.pdf

    1. 现在,裁剪您想要剪切的框:

    cpdf -cropbox "x y w h" shifted.pdf -o cropped.pdf

    1. 现在,通过剪切将裁剪框固定下来:

    cpdf -hard-box /CropBox cropped.pdf -o clipped.pdf

    1. 现在,将一个文件盖印到另一个文件上:

    cpdf -stamp-on clipped.pdf 1.pdf -o final.pdf

    您需要为 选择适当的值dy, x, y, w, h。

    如果有两页以上的页面,您可以在开始时用cpdf in.pdf odd -o 1.pdf和代替cpdf in.pdf even -o 2.pdf,以便一次性完成所有操作。

    • 1
  2. lmat - Reinstate Monica
    2024-11-11T22:32:42+08:002024-11-11T22:32:42+08:00

    一个目标是避免文档“栅格化”。字母仍应是“字母”(而不是字母的图片),输入 PDF 中的任何图像都应保留其原始光彩,而不是重新采样。我非常确定此处概述的方法可以实现这一点。

    总体来说,做法是:

    1. 将每个输入部分隔离到其自己的 PDF 文件中
    2. 创建具有所需最终尺寸的空白 PDF
    3. (滥用)使用 pdftk 将各部分放置到空白文档上

    似乎应该可以跳过上面的步骤 1 并将其作为步骤 3 的一部分来执行,但我无法弄清楚如何 1) 从输入中选择一页以及 2) 在插入空白文档之前裁剪输入页面。

    详细步骤

    1. 创建“工作区”目录
      • mkdir pdftk && cd pdftk;
    2. 放置输入文件
      • cp ~/Downloads/ticket.pdf .;
    3. 创建与所需最终尺寸相匹配的空白 PDF
      • magick xc:none -page Letter a.pdf;
    4. 隔离输入页面 1(对于页面 2 也类似)
      • pdftk ticket.pdf cat 1 output ticket-p1.pdf
    5. 裁剪输入页面
      • pdfcrop --margins '0 0 0 -440' ticket-p1.pdf ticket-p1-cropped.pdf
    6. git clone 'https://gitlab.com/pdftk-java/pdftk.git' source;
    7. cd source && git checkout origin/master
    8. mvn package -DskipTests=true
      • 初始构建以确保您拥有所需的一切。立即修复所有构建错误(更正路径上的 jdk 等)。
    9. 应用以下补丁
      diff --git a/java/com/gitlab/pdftk_java/filter.java 
      b/java/com/gitlab/pdftk_java/filter.java
      index c2b92d5..dea82e9 100644
      --- a/java/com/gitlab/pdftk_java/filter.java
      +++ b/java/com/gitlab/pdftk_java/filter.java
      @@ -415,7 +415,7 @@ class filter {
      
            float[] trans = null;
             if (mark_page_rotation == 0) {
      -          trans = new float[] {mark_scale, 0, 0, mark_scale, h_trans, v_trans};
      +          trans = new float[] {1, 0, 0, 1, (float)40, (float)450};
             } else if (mark_page_rotation == 90) {
               trans =
                   new float[] {
      
      • 从差异中可以看出,您可以根据需要缩放和翻译您的输入。
    10. 运行修改后的代码
      • mvn package -DskipTests=true
      • cd target/
      • java -jar pdftk-java-*.jar ../../blank.pdf background ../../ticket-p1-cropped.pdf output ../../phase1.pdf
    11. 再次修饰filter.java并创建第二阶段:
      • java -jar pdftk-java-*.jar ../../phase1.pdf background ../../ticket-p2-cropped.pdf output ../../phase2.pdf
    • 0

相关问题

  • Chrome 一直要求保存 PDF 并且从不打开它

  • 是否可以将保存为 PDF 文件的网页还原为网页?

  • CMYK 打印

  • 将双面扫描的 A3 pdf 裁剪并重新排列为 A4 格式

  • WebBrowser 刷新不会刷新 PDF 缩放级别

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    Vickel Firefox 不再允许粘贴到 WhatsApp 网页中? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke 为什么使用 Python 的 tar 库时 tar.xz 文件比 macOS tar 小 15 倍? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve