Tạo ra, Edit & Đổi PDF hình ảnh qua Python API
Python API miễn phí để tạo ra, chỉnh sửa và chuyển đổi PDF thành hình ảnh và ngược lại. Merge/split và chuyển đổi PDF thành tin nhắn, Xoay / Trim/Crop PDFs.
PDFsuite là một thư viện Python rất hữu ích cung cấp đầy đủ chức năng liên quan đến việc tạo và quản lý tài liệu PDF. Thư viện rất ổn định và có thể dễ dàng chạy trên MacOS (OS X). PDFsuite rất dễ sử dụng và cung cấp cho người dùng khả năng quản lý các tệp PDF của họ và mọi thứ họ có thể muốn thực hiện với PDF chỉ bằng một cú nhấp chuột.
Thư viện rất giàu tính năng và đã bao gồm một số tính năng quan trọng liên quan đến xử lý tài liệu PDF, chẳng hạn như chuyển đổi tài liệu PDF sang PDF, hợp nhất hoặc tách tài liệu PDF, chuyển đổi hình ảnh sang PDF, xoay PDF, thêm số trang vào PDF, chèn Hình mờ vào PDF, vẽ đồ họa trong PDF, áp dụng bộ lọc thạch anh cho PDF, truy cập và đọc siêu dữ liệu, xuất các trang PDF dưới dạng hình ảnh, đếm số trang trong PDF, v.v. Các tập lệnh PDFsuite là mã nguồn mở hoàn toàn miễn phí để sử dụng trong bất kỳ loại dự án nào và có thể được điều chỉnh theo bất kỳ cách nào.
Bắt đầu với PDFsuite
Để điều hành filesuite trước khi anh cần cài đặt python 3 và thư viện Pyobjc, và sau đó trong Terminal, xin hãy đặt lệnh và báo cáo sau.
Cài đặt Pyobjc qua đường ống
pip3 install pyobjc
Cũng có thể cài đặt thư viện theo cách thủ công; tải xuống các tệp phát hành mới nhất trực tiếp từ kho lưu trữ GitHub.
Đổi PDF thành hình ảnh và định dạng khác
PDFsuite đã tích hợp chức năng hoàn chỉnh để chuyển đổi tài liệu PDF sang các định dạng tệp hình ảnh khác nhau. Nó cung cấp PNG, JPEG, Tiff và các định dạng tệp hình ảnh phổ biến khác. Cũng có thể tạo một hình ảnh bitmap từ mỗi trang của tài liệu PDF được cung cấp một cách dễ dàng. Sau khi quá trình hoàn tất, bạn cần gán một tên riêng cho từng tệp và lưu nó vào đĩa. Nó cũng hỗ trợ thay đổi độ phân giải, độ trong suốt và các thông số khác. Cũng có thể chuyển đổi tệp PDF thành văn bản và các định dạng tệp khác.
Kết hợp nhiều PDF tập tin bằng Python Scripts
Anh đã từng ở trong một tình huống mà nó cần thiết để kết hợp PDF tài liệu khác nhau để tạo ra một hồ sơ PDF mới chưa? Các tổ chức thường đòi hỏi phải thu thập nhiều PDF hồ sơ vào một tài liệu. Thư viện PDFsuite dễ dàng cho người dùng của nó kết hợp nhiều tài liệu PDF tài liệu vào một cái với một vài dòng mã Python. Nó cũng thêm một bàn vào trong cho mỗi file thành phần. Thư viện cũng hỗ trợ chia PDF tài liệu lớn thành những thứ nhỏ hơn trong các ứng dụng Python.
Merge Multi PDF files qua Python API
def merge(filename):
writeContext = None
shortName = os.path.splitext(filename)[0]
outFilename = shortName + "+wm.pdf"
metaDict = getDocInfo(filename)
writeContext = createOutputContextWithPath(outFilename, metaDict)
readPDF = createPDFDocumentWithPath(filename)
mergePDF = createPDFDocumentWithPath(watermark)
if writeContext != None and readPDF != None:
numPages = Quartz.CGPDFDocumentGetNumberOfPages(readPDF)
for pageNum in range(1, numPages + 1):
page = Quartz.CGPDFDocumentGetPage(readPDF, pageNum)
mergepage = Quartz.CGPDFDocumentGetPage(mergePDF, 1)
if page:
mediaBox = Quartz.CGPDFPageGetBoxRect(page, Quartz.kCGPDFMediaBox)
if Quartz.CGRectIsEmpty(mediaBox):
mediaBox = None
Quartz.CGContextBeginPage(writeContext, mediaBox)
Quartz.CGContextSetBlendMode(writeContext, Quartz.kCGBlendModeOverlay)
Quartz.CGContextDrawPDFPage(writeContext, page)
Quartz.CGContextDrawPDFPage(writeContext, mergepage)
Quartz.CGContextEndPage(writeContext)
Quartz.CGPDFContextClose(writeContext)
del writeContext
else:
print ("A valid input file and output file must be supplied.")
sys.exit(1)
if __name__ == "__main__":
for filename in sys.argv[1:]:
merge(filename)
Chuyển PDF tập tin vào file tin nhắn qua Python
Thư viện PDFsuite mã nguồn mở đã bao gồm một số tính năng quan trọng để chuyển đổi tài liệu PDF sang nhiều định dạng tệp hỗ trợ. Một tính năng quan trọng là chuyển đổi nội dung văn bản của tệp PDF thành tệp văn bản bên ngoài và lưu nó vào nơi bạn chọn. Cũng có thể lưu từng trang của tài liệu PDF thành một tệp riêng biệt và lưu nó với một tên khác.
Chuyển file PDF sang file tin nhắn qua Python API
import os, sys
from Quartz import PDFDocument
from CoreFoundation import (NSURL, NSString)
# Can't seem to import this constant, so manually creating it.
NSUTF8StringEncoding = 4
def main():
for filename in sys.argv[1:]:
shortName = os.path.splitext(filename)[0]
outputfile = shortName+" text.txt"
pdfURL = NSURL.fileURLWithPath_(filename)
pdfDoc = PDFDocument.alloc().initWithURL_(pdfURL)
if pdfDoc :
pdfString = NSString.stringWithString_(pdfDoc.string())
pdfString.writeToFile_atomically_encoding_error_(outputfile, True, NSUTF8StringEncoding, None)
if __name__ == "__main__":
main()
Xoay, Trim, Crop PDFs hay Pages trong Python Apps
Thư viện PDFsuite có nhiều chức năng quan trọng để dễ dàng xử lý PDF hồ sơ. Nó cho phép các lập trình viên xoay, cắt, cắt, cắt, thiếc, dấu nước, cân, và tăng lên PDF tài liệu trong ứng dụng Python của họ. Nó cung cấp hai cách để xoay PDF trang hoặc hoàn thành hồ sơ. Cái đầu tiên là tạo ra một ngữ cảnh PDF mới, có thể thay đổi từng trang của bản gốc và lưu hồ sơ. Thứ hai, cô chỉ cần điều chỉnh thông số 'rotation' trên mỗi trang và nó.
Cách cắt PDF tập tin qua Python API
import sys
import os
from Quartz import PDFDocument, kPDFDisplayBoxMediaBox, kPDFDisplayBoxTrimBox, CGRectEqualToRect
from CoreFoundation import NSURL
mediabox = kPDFDisplayBoxMediaBox
trimbox = kPDFDisplayBoxTrimBox
def trimPDF(filename):
hasBeenChanged = False
# filename = filename.decode('utf-8')
shortName = os.path.splitext(filename)[0]
outFilename = shortName + " TPS.pdf"
pdfURL = NSURL.fileURLWithPath_(filename)
pdfDoc = PDFDocument.alloc().initWithURL_(pdfURL)
if pdfDoc:
pages = pdfDoc.pageCount()
for p in range(0, pages):
page = pdfDoc.pageAtIndex_(p)
mediaBoxSize = page.boundsForBox_(mediabox)
trimBoxSize = page.boundsForBox_(trimbox)
if not CGRectEqualToRect(mediaBoxSize, trimBoxSize):
page.setBounds_forBox_(trimBoxSize, mediabox)
hasBeenChanged = True
if hasBeenChanged:
pdfDoc.writeToFile_(outFilename)
if __name__ == '__main__':
for filename in sys.argv[1:]:
trimPDF(filename)