提前在python中获取打印文档后的页数

提前在python中获取打印文档后的页数,python,macos,unix,printing,printers,Python,Macos,Unix,Printing,Printers,我的打印机不支持双面打印,因此我基于lpr实用程序用Python编写了一个简单的脚本。它会延迟一页一页地打印文档,在此期间我会手动翻页: from sys import argv from subprocess import run assert(len(argv) == 2) i = 1 try: while True: opt = 'page-ranges={}'.format(i) i += 1 print(run(['lpr', '-o', opt, ar

我的打印机不支持双面打印,因此我基于
lpr
实用程序用Python编写了一个简单的脚本。它会延迟一页一页地打印文档,在此期间我会手动翻页:

from sys import argv
from subprocess import run

assert(len(argv) == 2)

i = 1
try:
  while True:
    opt = 'page-ranges={}'.format(i)
    i += 1
    print(run(['lpr', '-o', opt, argv[1]]))
    f = input('> Ready to print next page?\n'
              '(Press ENTER or CTRL+C to exit) ')
except KeyboardInterrupt:
  print()
问题是我事先不知道最终打印文档的页数,所以我不知道何时应该在循环时中断

也许有解决方案可以帮助我获得结果页面的数量

另外,我正在使用macOS Sierra 10.12.2和A4纸张。

计算pdf

from pyPdf import PdfFileReader
pdf = PdfFileReader(open('path/to/file.pdf','rb'))
pdf.getNumPages()
清点单据

from win32com.client import Dispatch
#open Word
word = Dispatch('Word.Application')
word.Visible = False
word = word.Documents.Open(doc_path)

#get number of sheets
word.Repaginate()
num_of_sheets = word.ComputeStatistics(2)
有关更多详细信息,请参阅以下页面 感谢@Josh&@a_嘉宾


@sabbahillel它不适用于pdf、docx等。在将文本文件发送到输出之前,您是否能够打印到文本文件并使用wc获取文本文件的大小?这是一个很好的解决方法,但我希望有一个通用的解决方案:)