Kiedy drukuję plik PDF z dowolnego z moich źródłowych plików PDF, rozmiar pliku spada i usuwa pola tekstowe w formie. W skrócie, spłaszcza plik. To jest zachowanie, które chcę osiągnąć.Generowanie spłaszczonego pliku PDF z pythonem
Poniższy kod do utworzenia pliku PDF przy użyciu innego pliku PDF jako źródła (tego, który chcę spłaszczyć), zapisuje również pola tekstowe.
Czy mogę uzyskać plik PDF bez pól tekstowych, spłaszczyć? Podobnie jak Adobe, kiedy drukuję PDF jako PDF.
Mój inny kod wyglądać tak minus kilka rzeczy:
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
Reasumując: Mam pdf, dodać pole tekstowe do niego, ukrywanie informacji i dodawania nowych informacji, a następnie Drukuję pdf z tego pliku pdf. Pole tekstowe przestanie być edytowalne lub przenośne. Chciałem zautomatyzować ten proces, ale wszystko, co próbowałem, nadal pozwalało na edycję tego pola tekstowego.
Poszukuje również rozwiązania tego problemu. Mam skrypt Python ze znakami wodnymi, ale znak wodny przeszkadza przy próbie wybrania lub zaznaczenia tekstu w dokumencie. Gdybym mógł wygenerować spłaszczony znak wodny PDF, a następnie połączyć go ze źródłowymi plikami PDF, rozwiąże to problem. –
Czy nazwy plików są zgodne z określoną konwencją? jeśli tak, to jaka jest semantyczna? Jaki jest cel dzielenia nazwy pliku na spację, a następnie przecinek? (w przeciwnym razie skrypt się nie powiedzie, ale nie jestem pewien, czy jest to istotne, czy nie dla problemu, przed którym stoisz). – gpoo
+ MakeCents Nie mogę odtworzyć problemu. Nie mam skrzynek. Czy możesz wkleić obraz z uzyskanym wynikiem i oczekiwanym wynikiem? – gpoo