पर छवि को एक विशिष्ट समन्वय स्थान पर मौजूदा पीडीएफ फ़ाइल पर एक छवि कैसे रख सकता हूं। पीडीएफ एक पेज के साथ एक ड्राइंग शीट का प्रतिनिधित्व करता है। छवि स्केल की जाएगी। मैं ReportLab की जांच कर रहा हूं लेकिन जवाब नहीं मिल रहा है। धन्यवाद।पीडीएफ
पीडीएफ
उत्तर
from pyPdf import PdfFileWriter, PdfFileReader
output = PdfFileWriter()
input1 = PdfFileReader(file("document1.pdf", "rb"))
watermark = PdfFileReader(file("watermark.pdf", "rb"))
page4.mergePage(watermark.getPage(0))
# finally, write "output" to document-output.pdf
outputStream = file("document-output.pdf", "wb")
output.write(outputStream)
outputStream.close()
मुझे लगता है कि यह watermark
तरह है, बेहतर विचार
के लिए मैनुअल देखते हैं, के बाद से अपने मौजूदा पीडीएफ, यह करने के लिए सबसे आसान तरीका है:
- पीडीएफ को .doc या .odt में कनवर्ट करें (http://www.zamzar.com/ देखें)
- परिवर्तित फ़ाइल में छवियां जोड़ें हालांकि आप चाहते हैं । पीडीएफ फाइल आगे हमेशा संपादित करने के लिए स्रोत .doc फ़ाइल का बैकअप रखने की जरूरत है, ताकि परिवर्तन हो सकता है:
- PDF में नहीं बदला वापस
पी एस (OpenOffice और LibreOffice आसान pdfs को बचाने के लिए बनाता है) आसानी से किया गया, बहुत अधिक रूपांतरण फ़ाइल की गुणवत्ता पर बुरा प्रभाव पड़ता है।
मैंने रिपोर्टलाब (http://www.reportlab.com/software/opensource/rl-toolkit/download/) और pyPDF (http://pybrary.net/pyPdf/) को सीधे बिना किसी छवि को सम्मिलित करने के लिए संयुक्त किया पीडीएफ सामने उत्पन्न करने के लिए:
from pyPdf import PdfFileWriter, PdfFileReader
from reportlab.pdfgen import canvas
from StringIO import StringIO
# Using ReportLab to insert image into PDF
imgTemp = StringIO()
imgDoc = canvas.Canvas(imgTemp)
# Draw image on Canvas and save PDF in buffer
imgPath = "path/to/img.png"
imgDoc.drawImage(imgPath, 399, 760, 160, 160) ## at (399,760) with size 160x160
imgDoc.save()
# Use PyPDF to merge the image-PDF into the template
page = PdfFileReader(file("document.pdf","rb")).getPage(0)
overlay = PdfFileReader(StringIO(imgTemp.getvalue())).getPage(0)
page.mergePage(overlay)
#Save the result
output = PdfFileWriter()
output.addPage(page)
output.write(file("output.pdf","w"))
इसकी गया 5 साल, मैं इन उत्तरों कुछ टीएलसी की जरूरत है। यहां एक पूरा समाधान है।
निम्नलिखित अजगर के साथ परीक्षण किया जाता है 2.7
निर्भरता स्थापित
pip install reportlab
pip install pypdf2
जादू
from reportlab.pdfgen import canvas
from PyPDF2 import PdfFileWriter, PdfFileReader
# Create the watermark from an image
c = canvas.Canvas('watermark.pdf')
# Draw the image at x, y. I positioned the x,y to be where i like here
c.drawImage('test.png', 15, 720)
# Add some custom text for good measure
c.drawString(15, 720,"Hello World")
c.save()
# Get the watermark file you just created
watermark = PdfFileReader(open("watermark.pdf", "rb"))
# Get our files ready
output_file = PdfFileWriter()
input_file = PdfFileReader(open("test2.pdf", "rb"))
# Number of pages in input document
page_count = input_file.getNumPages()
# Go through all the input file pages to add a watermark to them
for page_number in range(page_count):
print "Watermarking page {} of {}".format(page_number, page_count)
# merge the watermark with the page
input_page = input_file.getPage(page_number)
input_page.mergePage(watermark.getPage(0))
# add page from input file to output document
output_file.addPage(input_page)
# finally, write "output" to document-output.pdf
with open("document-output.pdf", "wb") as outputStream:
output_file.write(outputStream)
संदर्भ कार्य करें:
pypdf की नई घर: http://mstamy2.github.io/PyPDF2/
Reportlab डॉक्स: http://www.reportlab.com/apis/reportlab/2.4/pdfgen.html
Reportlab पूरा उपयोगकर्ता गाइड: https://www.reportlab.com/docs/reportlab-userguide.pdf
जबकि आप उत्तर को अद्यतित कर रहे हैं, [pdfrw] (https://github.com/pmaupin/pdfrw/) लाइब्रेरी भी [वॉटरमार्क] (https://github.com/pmaupin/pdfrw/blob /master/examples/watermark.py) एक बहुत ही समान फैशन में, और दूसरी तरफ भी जा सकता है - आपको पूर्व-मौजूदा पीडीएफ का उपयोग करने की इजाजत देता है जैसे कि वे पीडीएफ में छवियां (उन्हें रास्टरराइज किए बिना) थे [आप रिपोर्टलैब के साथ निर्मित करते हैं) ] (https://github.com/pmaupin/pdfrw/blob/master/examples/rl1/platypus_pdf_template.py)। अस्वीकरण: मैं पीडीएफडब्ल्यू लेखक हूं ... –
आह अच्छा, मैं इसे ध्यान में रखूंगा –
यह वही पिछले जवाब करने के लिए मेरे लिए काम किया
from PyPDF2 import PdfFileWriter, PdfFileReader
def watermarks(temp, watermar,new_file):
template = PdfFileReader(open(temp, 'rb'))
wpdf = PdfFileReader(open(watermar, 'rb'))
watermark = wpdf.getPage(0)
for i in xrange(template.getNumPages()):
page = template.getPage(i)
page.mergePage(watermark)
output.addPage(page)
with open(new_file, 'wb') as f:
output.write(f)
Thx है। पाइथन 3.4
# -*- coding: utf-8 -*-
from io import BytesIO
from PyPDF2 import PdfFileWriter, PdfFileReader
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import A4
def gen_pdf():
# there are 66 slides (1.jpg, 2.jpg, 3.jpg...)
path = 'slades/{0}.jpg'
pdf = PdfFileWriter()
for num in range(1, 67): # for each slide
# Using ReportLab Canvas to insert image into PDF
imgTemp = BytesIO()
imgDoc = canvas.Canvas(imgTemp, pagesize=A4)
# Draw image on Canvas and save PDF in buffer
imgDoc.drawImage(path.format(num), -25, -45)
# x, y - start position
# in my case -25, -45 needed
imgDoc.save()
# Use PyPDF to merge the image-PDF into the template
pdf.addPage(PdfFileReader(BytesIO(imgTemp.getvalue())).getPage(0))
pdf.write(open("output.pdf","wb"))
if __name__ == '__main__':
gen_pdf()
- 1. पीडीएफ
- 2. पीडीएफ
- 3. पीडीएफ
- 4. पीडीएफ
- 5. पीडीएफ
- 6. पीडीएफ
- 7. पीडीएफ
- 8. पीडीएफ
- 9. पीडीएफ
- 10. पीडीएफ
- 11. पीडीएफ
- 12. पीडीएफ
- 13. पीडीएफ
- 14. पीडीएफ
- 15. पीडीएफ
- 16. पीडीएफ
- 17. पीडीएफ
- 18. पीडीएफ
- 19. पीडीएफ
- 20. पीडीएफ()
- 21. पीडीएफ
- 22. पीडीएफ
- 23. पीडीएफ
- 24. पीडीएफ
- 25. पीडीएफ
- 26. पीडीएफ
- 27. पीडीएफ
- 28. पीडीएफ
- 29. पीडीएफ
- 30. पीडीएफ
क्या छवि हमेशा एक ही स्थान पर होती है? –
हां, यह मूल रूप से निचले बाएं कोने के पास एक टिकट है। –
क्या नीचे पर्याप्त उत्तर है? यदि नहीं तो इसके साथ क्या गलत है? – theheadofabroom