#Doc-to-PDF import sys import os from PIL import Image from PyPDF2 import PdfMerger, PdfReader, PdfWriter from reportlab.pdfgen import canvas from reportlab.lib.units import inch from io import BytesIO def create_watermark(text, width, height): packet = BytesIO() can = canvas.Canvas(packet, pagesize=(width, height)) font_size = 45 can.setFont("Helvetica-Bold", font_size) can.setFillColorRGB(0, 0, 0) # Black # Measure text width to center it text_width = can.stringWidth(text, "Helvetica-Bold", font_size) x_position = (width - text_width) / 2 y_position = 20 # 20 points from the bottom can.drawString(x_position, y_position, text) can.save() packet.seek(0) return PdfReader(packet).pages[0] def apply_watermark(input_pdf_path, output_pdf_path, watermark_text): original = PdfReader(input_pdf_path) writer = PdfWriter() for page in original.pages: width = float(page.mediabox.width) height = float(page.mediabox.height) watermark_page = create_watermark(watermark_text, width, height) page.merge_page(watermark_page) writer.add_page(page) with open(output_pdf_path, "wb") as f: writer.write(f) print(f"✅ Watermarked PDF saved to: {output_pdf_path}") def combine_images_to_pdf(img1, img2, output_path, watermark_text): images = [] for path in [img1, img2]: img = Image.open(path) if img.mode != 'RGB': img = img.convert('RGB') images.append(img) temp_path = "temp_combined.pdf" images[0].save(temp_path, save_all=True, append_images=images[1:]) apply_watermark(temp_path, output_path, watermark_text) os.remove(temp_path) def combine_pdfs(pdf1, pdf2, output_path, watermark_text): merger = PdfMerger() merger.append(pdf1) merger.append(pdf2) temp_path = "temp_merged.pdf" merger.write(temp_path) merger.close() apply_watermark(temp_path, output_path, watermark_text) os.remove(temp_path) def main(file1, file2, output_pdf): _, ext1 = os.path.splitext(file1) _, ext2 = os.path.splitext(file2) ext1 = ext1.lower() ext2 = ext2.lower() watermark_text = "Tom's PDF converter - Tproc.net" if ext1 in ['.jpg', '.jpeg', '.png'] and ext2 in ['.jpg', '.jpeg', '.png']: combine_images_to_pdf(file1, file2, output_pdf, watermark_text) elif ext1 == '.pdf' and ext2 == '.pdf': combine_pdfs(file1, file2, output_pdf, watermark_text) else: print("❌ Error: Both files must be either images (.jpg, .png) or PDFs.") if __name__ == "__main__": if len(sys.argv) != 4: print("Usage: python combine_files_with_watermark.py ") else: main(sys.argv[1], sys.argv[2], sys.argv[3])