Khi tôi in một tệp PDF từ bất kỳ tệp PDF nguồn nào của mình, kích thước tệp sẽ giảm xuống và loại bỏ các hộp văn bản có trong biểu mẫu. Tóm lại, nó làm phẳng tập tin. Đây là hành vi tôi muốn đạt được.Tạo PDF phẳng với Python
Đoạn mã sau để tạo PDF bằng cách sử dụng PDF khác làm nguồn (tài liệu tôi muốn làm phẳng), nó cũng viết các hộp văn bản.
Tôi có thể nhận được tệp PDF mà không có hộp văn bản, làm phẳng không? Cũng giống như Adobe khi tôi in PDF dưới dạng PDF.
mã khác của tôi trông giống như trừ này một số điều:
import os
import StringIO
from pyPdf import PdfFileWriter, PdfFileReader
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter
directory = os.path.join(os.getcwd(), "source") # dir we are interested in
fif = [f for f in os.listdir(directory) if f[-3:] == 'pdf'] # get the PDFs
for i in fif:
packet = StringIO.StringIO()
can = canvas.Canvas(packet, pagesize=letter)
can.rotate(-90)
can.save()
packet.seek(0)
new_pdf = PdfFileReader(packet)
fname = os.path.join('source', i)
existing_pdf = PdfFileReader(file(fname, "rb"))
output = PdfFileWriter()
nump = existing_pdf.getNumPages()
page = existing_pdf.getPage(0)
for l in range(nump):
output.addPage(existing_pdf.getPage(l))
page.mergePage(new_pdf.getPage(0))
outputStream = file("out-"+i, "wb")
output.write(outputStream)
outputStream.close()
print fName + " written as", i
Tổng hợp: Tôi đã một pdf, tôi thêm một hộp văn bản với nó, bao che cho thông tin và bổ sung thông tin mới, và sau đó Tôi in một bản pdf từ bản pdf đó. Hộp văn bản sẽ không thể chỉnh sửa hoặc di chuyển được nữa. Tôi muốn tự động hóa quy trình đó nhưng mọi thứ tôi đã thử vẫn cho phép hộp văn bản có thể chỉnh sửa được.
Cũng đang tìm giải pháp cho việc này. Tôi có một kịch bản Python watermarking, nhưng watermark được trong cách khi cố gắng để chọn hoặc làm nổi bật văn bản trong tài liệu. Nếu tôi có thể tạo một PDF watermark phẳng và sau đó hợp nhất nó với các tệp PDF nguồn, điều đó sẽ giải quyết được nó. –
Tên tệp có tuân thủ một số quy ước cụ thể không? nếu vậy, đó là ngữ nghĩa? Mục đích của việc chia nhỏ tên tập tin theo không gian, và sau đó bằng dấu phẩy là gì? (nếu không, tập lệnh không thành công, nhưng tôi không chắc liệu có liên quan hay không cho vấn đề bạn đang gặp phải) – gpoo
+ MakeCents Tôi không thể tạo lại vấn đề. Tôi không có hộp. Bạn có thể dán một hình ảnh với kết quả bạn nhận được và kết quả mong đợi không? – gpoo