خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

نحوه اضافه کردن واترمارک متنی به هر PDF با استفاده از پایتون

مهر خود را روی یک فایل PDF با واترمارک کردن صفحات آن قرار دهید.

واترمارک ها راهی واضح و در عین حال ظریف برای شناسایی صاحب یک فایل خاص هستند. در حالی که مردم ممکن است آنها را آزاردهنده بدانند، اما هدف خود را با ظرافت انجام می دهند.

با واترمارک، نه تنها می توانید از فایل های خود محافظت کنید، بلکه می توانید متن توصیفی، مکان، زمان تولید و موارد دیگر را نیز اضافه کنید. بنابراین، دفعه بعد که تکلیف یا مقاله ژورنال خود را تحویل می‌دهید، حتماً با استفاده از این برنامه ساده پایتون یک واترمارک اضافه کنید.

ماژول ReportLab چیست؟

برای افزودن واترمارک به فایل PDF، به یک کتابخانه خوب مانند ماژول ReportLab نیاز دارید. این یک کتابخانه منبع باز است که به شما امکان می دهد فایل های PDF ایجاد کنید و همچنین نمودارها، داده ها و گرافیک ها را به آنها اضافه کنید. این ماژول به شما کمک می کند تا PDf های پویا تولید کنید، فایل های XML را به PDF تبدیل کنید و گزارش تهیه کنید. برای نصب ReportLab بر روی سیستم خود، یک ترمینال باز کنید و تایپ کنید:

pip install reportlab

با این کار ReportLab در محیط پایتون شما نصب می شود.

ماژول PyPDF2 چیست؟

PyPDF2 یک کتابخانه محبوب است که می توانید از آن برای انجام انواع عملیات مفید PDF استفاده کنید. اینها شامل برش، ادغام، تقسیم، چرخش، تبدیل، افزودن داده ها، مهر و موم کردن، و علامت گذاری است. همچنین می توانید رمزگذاری و رمزگشایی کنید، متن، تصاویر و ابرداده را استخراج کنید و حاشیه نویسی PDF را بخوانید یا اضافه کنید. برای نصب PyPDF2 در سیستم خود، یک ترمینال باز کنید و تایپ کنید:

pip install PyPDF2

با این کار PyPDF2 در محیط پایتون شما نصب می شود.

نحوه اضافه کردن واترمارک مورد نظر به PDF با استفاده از پایتون

افزودن واترمارک به فایل PDF با استفاده از پایتون بسیار ساده است. شما می خواهید یک بوم ایجاد کنید و واترمارک متن را با استفاده از رنگ و جهت دلخواه خود بکشید، سپس آن را به عنوان PDF ذخیره کنید.

مطلب مرتبط:   6 روش پایتون برای کار با String Case

پس از تولید این طرح واترمارک یک صفحه ای، می توانید هر دو PDF را باز کرده و آنها را صفحه به صفحه ادغام کنید. Voilà، PDF واترمارک شده شما آماده است.

برنامه خود را با وارد کردن بوم از pdfgen که در ماژول reportlab قرار دارد شروع کنید. رابط pdfgen در پایین ترین سطح برای تولید PDF عمل می کند. می توانید آن را به عنوان نقاشی طرح و ساختار سند در یک صفحه تجسم کنید. کلاس canvas عملیات مورد نیاز برای انجام این کار را فراهم می کند.

شما می توانید بوم را به عنوان یک ورق کاغذ ساده با مختصات دکارتی در نظر بگیرید. نقطه مبدا (0,0) در گوشه پایین سمت چپ است. مقادیر مختصات x و y با دور شدن نقاط از مبدا، به سمت بالا و راست افزایش می یابد.

از کتابخانه ReportLab، اینچ، رنگ و اندازه صفحه را وارد کنید. این برنامه از اینچ به عنوان واحد اندازه گیری استفاده می کند. دو فرمت رنگی در ReportLab موجود است: مدل RGB و مدل CYMK. RGB ترجیح داده می شود، اما اگر می خواهید کنترل بیشتری روی سطح رنگ هایی که هنگام چاپ PDF ظاهر می شوند، داشته باشید، می توانید به جای آن CYMK را انتخاب کنید.

همانطور که از نام آن پیداست، اندازه صفحه روی A4 تنظیم شده است. علاوه بر این، PdfFileReader و PdfFileWriter را از PyPDF2 برای انجام عملیات خواندن و نوشتن روی فایل‌های PDF وارد کنید.

from reportlab.pdfgen import canvas
from reportlab.lib.units import inch
from reportlab.lib import colors
from reportlab.lib.pagesizes import A4
from PyPDF2 import PdfFileReader, PdfFileWriter

تابعی به نام makeWatermark() برای ایجاد فایل پی‌دی‌اف واترمارک یک صفحه‌ای که بعداً برای اعمال آن در صفحات سند مورد نظر استفاده خواهید کرد، تعریف کنید. از کاربر بخواهید متن واترمارک را با استفاده از عبارت input وارد کند.

مطلب مرتبط:   نحوه ایجاد مسیرهای پویا در Next.js

از بوم برای ایجاد یک منطقه طراحی با نام watermark.pdf و اندازه صفحه A4 استفاده کنید. تابع translate() مبدا را به گوشه سمت چپ بالا منتقل می کند.

فایل متن را به رنگ خاکستری با کدورت 0.6 تنظیم کنید. در مقیاس 0-1، 0 شفاف ترین و 1 مات ترین است. استایل فونت را روی Helvetica با اندازه 50 قرار دهید. چرخش 45 درجه ای را در جهت خلاف جهت عقربه های ساعت اعمال کنید. مختصات x و y را به همراه متن ارسال کنید تا آن را روی بوم بکشید و با استفاده از تابع save() ذخیره کنید.

def makeWatermark():
    text = input("Enter the watermark text here:")
    pdf = canvas.Canvas("watermark.pdf", pagesize=A4)
    pdf.translate(inch, inch)
    pdf.setFillColor(colors.grey, alpha=0.6)
    pdf.setFont("Helvetica", 50)
    pdf.rotate(45)
    pdf.drawCentredString(400, 100, text)
    pdf.save()

فایل پی‌دی‌اف واترمارک که تابع بالا تولید می‌کند به شکل زیر است:

واترمارک متنی سای آشیش

تابعی به نام makepdf() برای واترمارک کردن صفحات PDF تعریف کنید. نام فایلی را که می خواهید واترمارک کنید، از جمله هر پسوند pdf. وارد کنید. یک متغیر را برای ذخیره نام PDF واترمارک شده راه اندازی کنید. هر دو فایل را در حالت خواندن باینری باز کنید.

از PdfFileReader() برای نمونه سازی یک شی که هر PDF را نشان می دهد استفاده کنید. از تابع getPage() برای دریافت اولین و تنها صفحه PDF واترمارک شده استفاده کنید.

def makepdf():
    pdf_file = input("PDF file: ")
    watermark = 'watermark.pdf'
    merged = "Watermarked.pdf"

    with open(pdf_file, "rb") as input_file, open(watermark, "rb") as watermark_file:
        input_pdf = PdfFileReader(input_file)
        watermark_pdf = PdfFileReader(watermark_file)
        watermark_page = watermark_pdf.getPage(0)

اکنون زمان آن است که صفحه واترمارک را با هر صفحه در PDF مورد نظر ادغام کنید.

یک شی از کلاس PdfFileWriter ایجاد کنید تا از آن برای تولید PDF خروجی استفاده کنید. حلقه ای را تعریف کنید که روی هر صفحه در PDF مورد نظر تکرار شود. تابع getNumPages() تعداد کل صفحات یک PDF را برمی گرداند. از تابع getPage() برای دریافت صفحه و ادغام آن با صفحه واترمارک ذخیره شده قبلی استفاده کنید.

مطلب مرتبط:   نحوه استفاده از عبارات منظم در جاوا اسکریپت

از شی PdfFileWriter برای اضافه کردن هر صفحه ادغام شده به PDF نهایی استفاده کنید. هنگامی که PDF خروجی را ایجاد کردید، فایل خروجی را در حالت نوشتن باینری باز کنید و از تابع write() برای ذخیره pdf واترمارک شده در این فایل استفاده کنید.

        output = PdfFileWriter()

        for i in range(input_pdf.getNumPages()):
            pdf_page = input_pdf.getPage(i)
            pdf_page.mergePage(watermark_page)
            output.addPage(pdf_page)

        with open(merged, "wb") as merged_file:
            output.write(merged_file)

در نهایت، هر دو تابع – makeWatermark() و makepdf()- را فراخوانی کنید تا فایل PDF واترمارک شده ایجاد شود:

makeWatermark()
makepdf()

متن پی‌دی‌اف واترمارک‌شده تولید شده با استفاده از برنامه پایتون بالا به شکل زیر است:

نمونه واترمارک متن PDF

علاوه بر این، می‌توانید این روش پنج مرحله‌ای را برای ایجاد و افزودن واترمارک به هر تصویری با استفاده از Canva دنبال کنید. همچنین می‌توانید از تکنیک‌هایی برای واترمارک کردن ویدیوهای خود در چند دقیقه استفاده کنید.

ابزارهایی برای حذف واترمارک از PDF، تصاویر و ویدیوها

ممکن است مواقعی پیش بیاید که به اشتباه یک واترمارک اضافه کرده باشید و بخواهید آن را حذف کنید. می توانید از ابزارهای آنلاین مانند Soda PDF، Microsoft Word، Google Docs و PDF Zorro به صورت رایگان استفاده کنید. برای تصاویر، می‌توانید ابزارهایی مانند Wondershare PixCut، Inpaint، Aiseesoft، Apowersoft و Cutout.pro را کاوش کنید.

برای حذف واترمارک رایگان در ویدیوها، از Apowersoft، 123apps، PickFrom Blur و BeeCut استفاده کنید.

با این حال، به یاد داشته باشید که از هیچ گونه مطالب دارای حق چاپ بدون اجازه مالک استفاده نکنید.