当前位置: 首页 > 知识库问答 >
问题:

仅在PDF中更改横向页面的方向

华烈
2023-03-14

我有一个从LibreOffice Writer导出的PDF文件。这里有一个例子。一些页面具有纵向,其他页面具有横向。我正在使用Linux,当我在evice或Foxit Reader中查看文件时,它会正确显示,即所有文本行都是水平的。它也可以在我的打印机上用A4纸正确打印:横向页面逆时针旋转90度,使文本行垂直。

问题是:文档将在另一台设备(出版商中)上打印,我被告知所有页面都必须具有纵向方向。我不确定是否已经是这种情况,evince只是显示顺时针旋转的风景页面。例如,pdfinfo文件.pdf打印页面腐烂:0.如果是这样,那么一切都很好。但是,如果PDF文件有一个命令,指出下一页处于横向模式,那么有必要将其旋转90度并将其声明为纵向。

那么是否可以从命令行只旋转横向页面呢?我知道我可以用pdftk做到,但是接下来我需要手动指定页码。我有很多文档,手动指定横向页码很困难。有自动方式吗?

共有1个答案

孙辰阳
2023-03-14

Python和模块PyPDF2是可能的。请参阅示例代码

import PyPDF2

pdf_in = open('test.pdf', 'rb')
pdf_reader = PyPDF2.PdfFileReader(pdf_in)
pdf_writer = PyPDF2.PdfFileWriter()

numofpages = pdf_reader.numPages

numrotated = 0 
for pagenum in range(numofpages):
    page = pdf_reader.getPage(pagenum)
    mb = page.mediaBox
    if (mb.upperRight[0] > mb.upperRight[1]) and (page.get('/Rotate') is None):
        page.rotateCounterClockwise(90)
        numrotated = numrotated + 1
    pdf_writer.addPage(page)

print str(numrotated) + " of " + str(numofpages) + " pages were rotated"
pdf_out = open('test_rotated.pdf', 'wb')
pdf_writer.write(pdf_out)
pdf_out.close()

pdf_in.close()

已在Red Hat Enterprise Linux 6、Python 2.7.12、PyPDF2 1.26.0上测试。也可在Windows上运行。

 类似资料:
  • 给定一个包含纵向页面的现有 PDF 文件,我该如何以编程方式(使用 .NET)处理该文件,以便在横向页面上生成具有相同内容的新文件。 新页面应该充分利用可用的横向宽度。页面数量可能会增加,因为现有的纵向页面可能不适合一个横向页面。 背景故事:我们使用Google Sheets REST API来生成pdf文档。如果有很多列,文档可能会很宽。不幸的是,Google Drive REST API总是以

  • 我想更改PDF文档中特定几页的页面方向。PDF文档是使用html2pdf在html模板外创建的。它是这样的:如果页面的内容(通常是一个表格)太宽而不能以纵向显示,则以横向显示页面。 按照[如何将页面旋转为横向,页面内容应该为纵向iTextpdf][1]中的提示 [1]:如何将页面旋转成横向,页面内容应该在纵向iTextpdf中我已经创建了我的自定义标签和TagWorker。 } 问题是:首先,这没

  • 问题内容: 我正在Qt和C ++中开发一个Android应用程序。我的整个应用程序都是纵向的,但是当我播放视频时,我想将方向更改为横向,并且在视频结束后应该再次更改为纵向。 因此,问题是如何在Android的Qt / C ++应用程序中将屏幕设置为横向或纵向模式。 问题答案: 可以使用Java函数更改Android上的屏幕方向,因此您应该从应用中调用Java函数。要在Qt Android应用程序中

  • 问题内容: 我有一个PDFReader,其中包含横向模式的某些页面和纵向模式的其他页面。 我需要区分它们以进行一些处理…但是,如果我调用getOrientation或getPageSize,则该值始终是相同的(pagesize为595,方向为0)。 为什么横向页面的值没有不同? 我试图找到其他方法来检索页面宽度/方向,但没有任何效果。 这是我的代码: 谢谢 ! 问题答案: 解决: 用 代替

  • 问题内容: 我有一个PDFReader,其中包含横向模式的某些页面和纵向模式的其他页面。 我需要区分它们以进行一些处理…但是,如果我调用getOrientation或getPageSize,则该值始终是相同的(pagesize为595,方向为0)。 为什么横向页面的值没有不同? 我试图找到其他方法来检索页面宽度/方向,但没有任何效果。 这是我的代码: 谢谢 ! 问题答案: 解决: 用 代替

  • Adobe Illustrator 通常使用所选打印机的 PPD 文件定义的默认页面大小。但可以把介质尺寸改为 PPD 文件中所列的任一尺寸,并且可指定纵向(垂直)还是横向(水平)。可指定的最大页面大小取决于照排机的最大可成像面积。 注意:在“打印”对话框中更改页面大小和方向,只能用于打印目的。若要更改画板的页面大小或方向,请使用“画板选项”对话框或控制面板中的“画板”选项。(请参阅编辑画板。)