python - 从 pdf 中删除打印机裁剪标记
问题描述
我有一些 PDF 文件需要从中删除打印标记或裁剪标记,有没有办法使用 PyPDF2 或任何类似的包来做到这一点?
我不想裁剪页面的内部可打印面,我想找到标记对象并将它们从页面中删除。
解决方案
你可以试试我的 PrintManager,用 pyqt5 Printmanager写的
我正在使用这样的东西来裁剪页面(删除裁剪标记)
def pdf_get_num_pages(pdf_input):
pdf_file = PdfFileReader(open(pdf_input, 'rb'))
pages = pdf_file.getNumPages()
return pages
def pdf_cropper(pdf_input,outputpdf,pages):
pdf_file = PdfFileReader(open(pdf_input, 'rb'))
output = PdfFileWriter()
for i in range(pages):
page = pdf_file.getPage(i)
# print ('TRIMBOX'+ str(i) + ':' +str(page.trimBox))
# print ('CROPBOX'+ str(i) + ':' +str(page.cropBox))
# print ('cropbox to crop' + str(cropboxes[0]))
page.cropBox.upperLeft = (page.trimBox[0], page.trimBox[1])
page.cropBox.lowerRight = (page.trimBox[2], page.trimBox[3])
page.mediaBox.upperLeft = (page.trimBox[0], page.trimBox[1])
page.mediaBox.lowerRight = (page.trimBox[2], page.trimBox[3])
# print ('output cropbox XXXX' +str(page.cropBox))
output.addPage(page)
def remove_cropmarks_mod(pdf_input,multipage):
head, ext = os.path.splitext(pdf_input)
outputpdf = head + '_crop' + ext
pages = pdf_get_num_pages(pdf_input)
pdf_cropper(pdf_input,outputpdf,pages)
if __name__ == '__main__':
pdf_input = '/Users/xxx/Desktop/file.pdf'
remove_cropmarks_mod(pdf_input,multipage=True)
推荐阅读
- java - 应用程序属性“server.servlet.session.timeout”在 Spring Boot 项目中不起作用
- swift - TableViewCell 笔尖错误:已加载笔尖但未设置视图出口
- llvm - llvm 在循环中通过添加函数调用(通过感应变量进行参数)
- html - 防止鼠标悬停在孩子上时父母调整大小
- ios - 错误 ITMS-90171:“无效的捆绑结构不允许使用二进制文件 MyApp.app/libswiftRemoteMirror.dylib
- c# - 如何检查输入的十进制值是否大于十进制列表
- android - 在发布模式下启用 Proguard 后 Firebase 应用内消息崩溃
- sql-server - 如何重命名 SQL Server 2016 数据库,包括物理文件,即 .mdf 和 .log 文件
- javascript - 比较 JavaScript 中对象数组的两个参数
- javascript - 我怎样才能承诺一个 AJAX 请求 onreadystatechange?