如何将PDF文档的所有页面向右移动一英寸?

2024-10-01 15:46:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我想将现有pdf文档的所有页面右移一英寸,这样就可以在不影响内容的情况下打三个孔。pdf文档将已经生成,因此无法更改其生成方式。在

看来iText可以从previous question执行此操作。在

<> C++或Python是一个等价的库(或方法)?在

如果它依赖于平台,我需要一个可以在Linux上运行的。在

更新:我想我会把我写的一个小脚本贴出来,以防其他人发现这个页面并需要它。在

工作代码感谢Scott Anderson的建议:

在右移.py在

#!/usr/bin/python2
import sys
import os
from  pyPdf import PdfFileReader, PdfFileWriter

#not sure what default user space units are. 
# just guessed until current document i was looking at worked
uToShift = 50;

if (len(sys.argv) < 3):
  print "Usage rightshift [in_file] [out_file]"
  sys.exit()

if not os.path.exists(sys.argv[1]):
  print "%s does not exist." % sys.argv[1]
  sys.exit()

pdfInput = PdfFileReader(file( sys.argv[1], "rb"))
pdfOutput = PdfFileWriter()

pages=pdfInput.getNumPages()

for i in range(0,pages):
  p = pdfInput.getPage(i)
  for box in (p.mediaBox, p.cropBox, p.bleedBox, p.trimBox, p.artBox):
    box.lowerLeft = (box.getLowerLeft_x() - uToShift, box.getLowerLeft_y())
    box.upperRight = (box.getUpperRight_x() - uToShift, box.getUpperRight_y())
  pdfOutput.addPage( p )

outputStream = file(sys.argv[2], "wb")
pdfOutput.write(outputStream)
outputStream.close()

Tags: in文档importboxpdfsysnot页面
3条回答

在Linux中执行此任务的两种方法

  1. 使用ghostscript

    • 在您的/root/home中查找隐藏文件。gsview.ini文件

    • 转到部分:

    [pdfwrite Options]

    Options=

    Xoffset=0

    Yoffset=0

更改X轴的值,设置一个方便的值(值以postscript点为单位,1英寸=72个postscript点

所以:

[pdfwrite Options]

Options=

Xoffset=72

Yoffset=0

  • 关闭。gsview.ini文件

  • 用gsview打开您的pdf文件

  • 文件/转换/pdfwrite

  • 选择firstoddpages并打印到新文件(您可以将其命名为奇数.pdf

现在对偶数页重复相同的步骤

  • 用gsview打开您的pdf文件

[pdfwrite Options]

Options=

Xoffset=-72

Yoffset=0

  • 文件/转换/pdfwrite
  • 选择firstevenpages并打印到新文件(您可以将其命名为偶数.pdf

现在您需要将这两个pdf与奇数页和偶数页混合使用

您可以使用:

Pdf转换器

java -jar ./pdf-transformer-0.4.0.jar <INPUT_FILE_NAME1> <INPUT_FILE_NAME2> <OUTPUT_FILE_NAME> merge -j


2::使用podofobox+pdftk

  • 第一步:使用pdftk将整个pdf文档分成两个pdf文件,只有奇数页和偶数页

    pdftk file.pdf cat 1-endodd output odd.pdf && pdftk file.pdf cat 1-endeven output even.pdf

  • 现在有了podofobox,包含在podofo实用工具中

  • http://podofo.sourceforge.net/about.html

  • podofobox file.pdf odd.pdf crop -3600 0 widht height对于奇数页和

  • podofobox file.pdf even.pdf crop 3600 0 widht height对于偶数页

宽度和高度在postscript点x100处,可以通过pdfinfo找到

例如,如果您的pdf文件具有页面大小482x680,则输入

./podofobox file.pdf odd.pdf crop -3600 0 48200 68000

./podofobox file.pdf even.pdf crop 3600 0 48200 68000

然后你可以把奇数和偶数混合在一个已经被引用的唯一文件中

Pdf转换器

你可以试试pyPdf:

http://pybrary.net/pyPdf/

我可以确认pyPdf确实很好,应该是您的问题的解决方案。在

相关问题 更多 >

    热门问题