複製代码
- python3 << 'EOF'
- import Quartz, os
- path = os.path.abspath("1.pdf")
- url = Quartz.NSURL.fileURLWithPath_(path)
- doc = Quartz.PDFDocument.alloc().initWithURL_(url)
- doc.unlockWithPassword_("t66y.com")
- for i in range(doc.pageCount()):
- page = doc.pageAtIndex_(i)
- bounds = page.boundsForBox_(Quartz.kPDFDisplayBoxMediaBox)
- w, h = int(bounds.size.width), int(bounds.size.height)
- cs = Quartz.CGColorSpaceCreateDeviceRGB()
- ctx = Quartz.CGBitmapContextCreate(None, w, h, 8, 0, cs, Quartz.kCGImageAlphaNoneSkipLast)
- Quartz.CGContextSetInterpolationQuality(ctx, Quartz.kCGInterpolationHigh)
- page.drawWithBox_toContext_(Quartz.kPDFDisplayBoxMediaBox, ctx)
- img = Quartz.CGBitmapContextCreateImage(ctx)
- out = os.path.abspath(f"_{i+1}.jpg")
- dest = Quartz.CGImageDestinationCreateWithURL(
- Quartz.NSURL.fileURLWithPath_(out), "public.jpeg", 1, None)
- Quartz.CGImageDestinationAddImage(dest, img, None)
- Quartz.CGImageDestinationFinalize(dest)
- print(f"已导出: {out}")
- EOF
複製代码
使用说明:
1、1.pdf是文件名,可以带路径,默认就是当前目录下
2、doc.unlockWithPassword_("t66y.com"),如果文件有密码,修改t66y.com为文件加密密码
3、out = os.path.abspath(f"_{i+1}.jpg"),可以自定义导出文件名
4、必须安装了python3
5、将上面代码修改完整后,直接复制粘贴到当前目录的终端里执行即可
6、本代码仅支持Mac系统