اگر نیاز دارید که به PDF در جاوا واترمارک اضافه کنید، یک لایهٔ بصری میتواند اسناد شما را از استفادهٔ غیرمجاز محافظت کند. Conholdate.Total for Java یک SDK قدرتمند فراهم میکند که دستکاری PDF را در سمت سرور ساده میسازد. در این راهنما، یک مثال کامل و آمادهبه‑اجرا را میبینید، میآموزید هر خط چگونه کار میکند، وابستگی Maven را تنظیم میکنید و گزینههایی برای تنظیم دقیق شفافیت، چرخش و تراز برای نتایج حرفهای کشف میکنید.
مثال کامل کد: افزودن واترمارک متنی به PDF در جاوا
مثال زیر نشان میدهد که چگونه میتوان یک واترمارک متنی را به یک PDF اضافه کرد با استفاده از Conholdate.Total for Java.
import com.groupdocs.watermark.Watermark;
import com.groupdocs.watermark.options.PdfLoadOptions;
import com.groupdocs.watermark.options.PdfSaveOptions;
import com.groupdocs.watermark.watermarks.TextWatermark;
import com.groupdocs.watermark.watermarks.HorizontalAlignment;
import com.groupdocs.watermark.watermarks.VerticalAlignment;
import java.awt.Color;
import java.awt.Font;
public class AddPdfWatermark {
public static void main(String[] args) {
String inputFile = "input.pdf";
String outputFile = "output.pdf";
// Create a text watermark
Font font = new Font("Arial", Font.BOLD, 48);
TextWatermark textWatermark = new TextWatermark("CONFIDENTIAL", font);
textWatermark.setColor(Color.RED);
textWatermark.setOpacity(0.3);
textWatermark.setRotationAngle(45);
textWatermark.setHorizontalAlignment(HorizontalAlignment.Center);
textWatermark.setVerticalAlignment(VerticalAlignment.Center);
// Load options for the source PDF (enable caching for large files)
PdfLoadOptions loadOptions = new PdfLoadOptions(inputFile);
loadOptions.setCacheSize(100 * 1024 * 1024); // 100 MB cache
// Initialize the Watermark processor
Watermark watermark = new Watermark();
try {
// Apply the watermark to every page of the PDF
watermark.add(textWatermark, loadOptions);
// Save the watermarked PDF
PdfSaveOptions saveOptions = new PdfSaveOptions();
watermark.save(outputFile, saveOptions);
} catch (Exception e) {
System.err.println("Failed to add watermark: " + e.getMessage());
e.printStackTrace();
}
}
}
Note: این مثال کد عملکرد اصلی را نشان میدهد. قبل از استفاده از آن در پروژهتان، مطمئن شوید مسیرهای فایل (
input.pdf،output.pdfو غیره) را به مکانهای واقعی خود بهروزرسانی کنید، اطمینان حاصل کنید تمام وابستگیهای مورد نیاز بهدرستی نصب شدهاند، و بهطور کامل در محیط توسعه خود تست کنید. اگر با مشکلی مواجه شدید، لطفاً به مستندات رسمی مراجعه کنید یا برای دریافت کمک به تیم پشتیبانی مراجعه نمایید.
درک افزودن واترمارک به PDF در کد جاوا
کد افزودن واترمارک به PDF در جاوا یک توالی واضح دارد که میتوانید آن را برای هر سند PDF تنظیم کنید.
- Initialize the Watermark Processor -
Watermark watermark = new Watermark();موتور را که واترمارکها را اعمال میکند، ایجاد میکند. - Create a TextWatermark - شیء
TextWatermarkمتن، قلم، رنگ، شفافیت و چرخش را نگه میدارد.Font font = new Font("Arial", Font.BOLD, 48); TextWatermark textWatermark = new TextWatermark("CONFIDENTIAL", font); - Configure Appearance - روشهایی مانند
setColor،setOpacityوsetRotationAngleنحوه نمایش واترمارک بر روی صفحه را تعیین میکنند. - Load the Source PDF -
PdfLoadOptionsفایل ورودی را بارگذاری میکند و کشگذاری را برای اسناد بزرگ فعال میسازد که فشار حافظه را کاهش میدهد. - Apply and Save -
watermark.add(textWatermark, loadOptions);واترمارک را بر روی هر صفحه اعمال میکند وwatermark.save(outputFile, saveOptions);نتیجه را ذخیره مینماید.
بارگذاری PDF منبع با کش
هنگامی که با PDFهای چند مگابایتی کار میکنید، فعالسازی کش از بارگذاری کل سند در حافظه توسط SDK جلوگیری میکند. خط loadOptions.setCacheSize(100 * 1024 * 1024); 100 MB را برای ذخیرهسازی موقت رزرو میکند و به پردازشگر اجازه میدهد صفحات را بهصورت جریاندار در صورت نیاز بارگذاری کند. این رویکرد بهویژه در محیطهای سرور که ممکن است تعداد زیادی کار آبنشان همزمان اجرا شود، مفید است.
برای اطلاعات دقیق API، به مرجع API جاوا مراجعه کنید.
آمادهسازی محیط برای افزودن واترمارک به PDF
فرآیند افزودن واترمارک به PDF در جاوا با افزودن وابستگی Maven شروع میشود. پس از آن، به یک JDK سازگار و مقدار کمی پیکربندی نیاز دارید.
پیشنیازها و نسخهٔ جاوا
- جاوا 8 یا بالاتر مورد نیاز است؛ SDK از ویژگیهای مدرن زبان و جریانها استفاده میکند.
- Maven 3.5+ مدیریت وابستگیها را ساده میکند.
- اطمینان حاصل کنید که
pom.xmlپروژه شما شامل مخزن Conholdate باشد تا Maven بتواند آرتیفکت را حل کند.
<repositories>
<repository>
<id>conholdate-repo</id>
<name>Conholdate Maven Repository</name>
<url>https://repository.conholdate.com/repo/</url>
</repository>
</repositories>
<dependency>
<groupId>com.conholdate</groupId>
<artifactId>conholdate-total</artifactId>
<version>24.9</version>
<type>pom</type>
</dependency>
شما میتوانید فایلهای JAR را مستقیماً از صفحه دانلود دریافت کنید. پس از افزودن وابستگی، mvn clean install را اجرا کنید تا تأیید شود که SDK در مسیر کلاس شما قرار دارد.
استفاده از REST API (اختیاری)
اگر ترجیح میدهید رویکردی مستقل از زبان داشته باشید، Conholdate.Total همچنین یک نقطه انتهایی REST ارائه میدهد که میتواند بدون نیاز به کد Java، واترمارکها را اضافه کند. یک دستور curl ساده به شکل زیر است:
curl -X POST "https://api.conholdate.com/v1/pdf/watermark" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@input.pdf" \
-F "text=CONFIDENTIAL" \
-F "font=Arial" \
-F "fontSize=48" \
-F "color=FF0000" \
-F "opacity=0.3" \
-F "angle=45" \
-F "horizontalAlignment=center" \
-F "verticalAlignment=center" \
-o output.pdf
نسخه REST همان مراحل منطقی بارگذاری، پیکربندی، اعمال و ذخیرهسازی را دنبال میکند تا بتوانید رویکردی را که بهترین تطابق را با معماری شما دارد انتخاب کنید.
پیکربندی ظاهر و موقعیت واترمارک
SDK چندین ویژگی را در اختیار میگذارد که به شما امکان تنظیم دقیق واترمارک را میدهد. در زیر رایجترین تنظیمات تنظیمشده آورده شده است.
سفارشیسازی قلم و رنگ
میتوانید فونت پیشفرض Arial را با هر فونت TrueType موجود بر روی سرور جایگزین کنید. تغییر رنگ به سادگی عبور از یک ثابت java.awt.Color متفاوت یا ایجاد یک مقدار RGB سفارشی است.
Font customFont = new Font("Times New Roman", Font.ITALIC, 36);
textWatermark.setColor(new Color(0, 102, 204)); // Deep blue
textWatermark.setFont(customFont);
تنظیم شفافیت و چرخش
شفافیت کنترل میکند که واترمارک چقدر شفاف ظاهر شود. مقادیر از 0.0 (کاملاً نامرئی) تا 1.0 (کاملاً غیر شفاف) متغیر هستند. چرخش به شما امکان میدهد متن را متمایل کنید تا حذف آن سختتر شود.
textWatermark.setOpacity(0.45); // 45% opacity
textWatermark.setRotationAngle(30); // 30 degrees clockwise
همراستاسازی واترمارک در صفحه
خواص تراز افقی و عمودی مقادیر Left، Center، Right و Top، Center، Bottom را میپذیرند. مرکزگذاری برای مهرهای محرمانه رایج است، اما میتوانید واترمارک را برای اهداف برندینگ در گوشهای قرار دهید.
textWatermark.setHorizontalAlignment(HorizontalAlignment.Right);
textWatermark.setVerticalAlignment(VerticalAlignment.Bottom);
اگر میخواهید متن واترمارک را به PDF در جاوا اضافه کنید با طرحبندی متفاوت در هر صفحه، میتوانید این ویژگیها را درون یک حلقه که صفحات را بهصورت جداگانه پردازش میکند، تغییر دهید. همچنین SDK از واترمارکهای تصویری، پرکنندههای گرادیان و متن چندخطی پشتیبانی میکند اگر مورد استفاده شما به پیچیدگی بصری بیشتری نیاز داشته باشد.
نتیجهگیری
Adding a watermark to PDF in Java is straightforward with Conholdate.Total for Java. SDK بارگذاری، پردازش و ذخیره PDFها را بهصورت کارآمد انجام میدهد، حتی برای فایلهای بزرگ بهدلیل کش داخلی. با سفارشیسازی شفافیت، چرخش، فونت، رنگ و تراز میتوانید واترمارکهای حرفهای ایجاد کنید که توزیع غیرمجاز را منع میکند. بهخاطر داشته باشید برای استفاده در محیط تولید یک لایسنس مناسب تهیه کنید؛ میتوانید یک لایسنس موقت از temporary license page درخواست کنید یا گزینههای قیمتگذاری را در pricing page بررسی کنید. با پوشش کد و مراحل پیکربندی، آمادهاید تا واترمارکگذاری PDF را در برنامههای Java خود ادغام کنید.
سوالات متداول
چگونه میتوانم در جاوا بدون نوشتن کدهای سطح پایین PDF، واترمارک به PDF اضافه کنم؟
Use the Watermark class from Conholdate.Total for Java. It abstracts the PDF structure, letting you focus on watermark properties such as text, font, and placement.
کدام گزینهها برای استایل دادن به واترمارک متنی موجود هستند؟
شما میتوانید فونت (new Font(...))، اندازه، سبک (bold, italic)، رنگ (setColor)، شفافیت (setOpacity)، چرخش (setRotationAngle) و تراز (setHorizontalAlignment، setVerticalAlignment) را تنظیم کنید. این گزینهها در مثال کامل کد نشان داده شدهاند.
آیا SDK میتواند PDFهای بزرگ را بهصورت کارآمد پردازش کند؟
بله. با پیکربندی PdfLoadOptions.setCacheSize، شما امکان استریمینگ و کشینگ را فعال میکنید که مصرف حافظه برای PDFهای چند مگابایتی را کاهش میدهد. این باعث میشود که جریان کاری افزودن واترمارک به PDF در جاوا برای پردازش دستهای روی سرورها مناسب باشد.
آیا برای اجرای این مثال نیاز به خرید لایسنس دارم؟
برای استقرارهای تولیدی به لایسنس نیاز است. یک لایسنس موقت را از صفحه لایسنس موقت دریافت کنید یا جزئیات کامل قیمتگذاری را در صفحه قیمتگذاری بررسی کنید.
