افزودن یادداشتهای سفارشی یا واترمارکها اغلب نیاز دارد متن را به PDF در برنامههای Java اضافه کنید. Conholdate.Total for Java یک SDK قدرتمند است که به توسعهدهندگان امکان ویرایش فایلهای PDF بهصورت برنامهنویسی را میدهد. این راهنما شما را از پیشنیازها، مرور دقیق کد، و یک مثال کامل عبور میدهد تا بتوانید به راحتی متن سفارشی را بر روی PDFهای موجود بکشید.
پیشنیازها و راهاندازی
قبل از شروع، مطمئن شوید که موارد زیر را دارید:
- Java 8 یا بالاتر نصب شده است.
- Maven برای مدیریت وابستگیها.
- یک IDE مانند IntelliJ IDEA یا Eclipse.
- یک لایسنس معتبر Conholdate.Total for Java برای استفاده در تولید (برای جزئیات بیشتر به بخش مجوزها مراجعه کنید).
مخزن Maven Conholdate و وابستگی SDK را به فایل pom.xml خود اضافه کنید:
<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>
آخرین باینریهای SDK را از صفحه دانلود دریافت کنید. پس از موفقیتآمیز شدن ساخت Maven، آمادهاید که کدنویسی را آغاز کنید. بخش بعدی دقیقاً نشان میدهد چگونه یک PDF را بارگذاری و متن وارد کنید.
افزودن متن به PDF در جاوا: راهنمای گام به گام
در زیر یک مرور مختصر از هر گام منطقی ارائه شده است. کد کامل منبع بعداً در بخش Complete Code Example تکرار میشود.
مرحله 1: باز کردن PDF و ایجاد TextBuilder
ابتدا، PDF منبع را با کلاس Document باز کنید، سپس یک TextBuilder ایجاد کنید که به صفحهای که میخواهید متن را به آن اضافه کنید، اشاره داشته باشد.
String dataDir = "path/to/your/document/directory/";
// Open document
Document doc = new Document(dataDir + "Conholdate.pdf");
TextBuilder builder = new TextBuilder(doc.getPages().get_Item(1));
کلاسهای Document و TextBuilder در مرجع API مستند شدهاند.
مرحله ۲: ایجاد و پیکربندی یک TextParagraph
یک TextParagraph بسازید و چیدمان آن را پیکربندی کنید: تورفتگی اعمالشده به خطوط بعدی، مستطیلی که ناحیه متن را در صفحه محدود میکند، و حالت بستهبندی کلمه.
// Create text paragraph
TextParagraph paragraph = new TextParagraph();
// Set subsequent lines indent
paragraph.setSubsequentLinesIndent(20);
// Specify the location to add TextParagraph
paragraph.setRectangle(new Rectangle(100, 300, 200, 700));
// Specify word wrapping mode
paragraph.getFormattingOptions().setWrapMode(TextFormattingOptions.WordWrapMode.ByWords);
مرحله 3: ایجاد یک TextFragment و پیکربندی فونت
یک TextFragment ایجاد کنید که شامل متنی باشد که میخواهید روی آن قرار دهید، سپس قلم و اندازه قلم را از طریق getTextState() تنظیم کنید.
// Create text fragment
TextFragment fragment1 = new TextFragment("the quick brown fox jumps over the lazy dog");
fragment1.getTextState().setFont(FontRepository.findFont("Times New Roman"));
fragment1.getTextState().setFontSize(12);
مرحله ۴: افزودن قطعه و پاراگراف
قطعه متن را به عنوان یک خط در داخل پاراگراف اضافه کنید، سپس پاراگراف را از طریق TextBuilder به صفحه اضافه کنید.
// Add fragment to paragraph
paragraph.appendLine(fragment1);
// Add paragraph
builder.appendParagraph(paragraph);
مرحله 5: ذخیره PDF اصلاحشده
در نهایت، مسیر خروجی را بسازید و سند حاصل را ذخیره کنید.
dataDir = dataDir + "AddText_out.pdf";
// Save resulting PDF document.
doc.save(dataDir);
با این مراحل، شما جریان کار درج متن PDF را تکمیل کردهاید.
مثال کامل کد: درج متن در PDF با Java
مثال زیر کل فرآیند را از بارگذاری فایل منبع تا ذخیرهسازی PDF بهروزشده نشان میدهد.
این مثال نشان میدهد که چگونه میتوان متن را به یک PDF موجود اضافه کرد با استفاده از Conholdate.Total for Java.
import com.aspose.pdf.Document;
import com.aspose.pdf.TextBuilder;
import com.aspose.pdf.TextParagraph;
import com.aspose.pdf.Rectangle;
import com.aspose.pdf.TextFormattingOptions;
import com.aspose.pdf.TextFragment;
import com.aspose.pdf.FontRepository;
public class AddTextToPdf {
public static void main(String[] args) {
String dataDir = "path/to/your/document/directory/";
// Open document
Document doc = new Document(dataDir + "Conholdate.pdf");
TextBuilder builder = new TextBuilder(doc.getPages().get_Item(1));
// Create text paragraph
TextParagraph paragraph = new TextParagraph();
// Set subsequent lines indent
paragraph.setSubsequentLinesIndent(20);
// Specify the location to add TextParagraph
paragraph.setRectangle(new Rectangle(100, 300, 200, 700));
// Specify word wrapping mode
paragraph.getFormattingOptions().setWrapMode(TextFormattingOptions.WordWrapMode.ByWords);
// Create text fragment
TextFragment fragment1 = new TextFragment("the quick brown fox jumps over the lazy dog");
fragment1.getTextState().setFont(FontRepository.findFont("Times New Roman"));
fragment1.getTextState().setFontSize(12);
// Add fragment to paragraph
paragraph.appendLine(fragment1);
// Add paragraph
builder.appendParagraph(paragraph);
dataDir = dataDir + "AddText_out.pdf";
// Save resulting PDF document.
doc.save(dataDir);
}
}
توجه: این مثال کد عملکرد اصلی را نشان میدهد. قبل از استفاده از آن در پروژه خود، مطمئن شوید که
dataDirرا به مسیر واقعی پوشه سند خود (که شاملConholdate.pdfاست) بهروزرسانی کنید، بررسی کنید که تمام وابستگیهای مورد نیاز بهدرستی نصب شدهاند و بهطور کامل در محیط توسعه خود تست کنید. اگر با مشکلی مواجه شدید، لطفاً به مستندات رسمی مراجعه کنید یا برای دریافت کمک با تیم پشتیبانی تماس بگیرید.
نتیجهگیری
در این آموزش نشان دادیم که چگونه میتوانید متن را به PDF در جاوا اضافه کنید با استفاده از ویژگیهای قدرتمند Conholdate.Total for Java. با دنبال کردن راهنمای گامبهگام، میتوانید بهصورت قابل اعتماد پاراگرافهای متنی را با TextBuilder و TextParagraph بسازید، استایل فونت را از طریق TextFragment کنترل کنید و سند اصلاحشده را ذخیره کنید. SDK مختصات صفحات PDF و رندر متن را بهصورت داخلی مدیریت میکند، بنابراین میتوانید بر منطق کسبوکار تمرکز کنید. بهخاطر داشته باشید که برای استفاده در محیط تولید، باید یک لایسنس مناسب دریافت کنید؛ میتوانید لایسنس موقت را از صفحه لایسنس موقت دریافت کنید یا گزینههای قیمتگذاری را در صفحه قیمتگذاری بررسی کنید. با داشتن این ابزارها، افزودن متن سفارشی به PDFها بهسادگی بخشی از برنامهٔ جاوا شما میشود.
سوالات متداول
چگونه میتوانم متن را به PDF در جاوا اضافه کنم بدون اینکه محتوای موجود را بازنویسی کنم؟
ازbuilder.appendParagraph(paragraph)همانطور که در مثال نشان داده شده است استفاده کنید؛TextBuilderپاراگراف جدید را به صفحه هدف اضافه میکند و محتوای موجود را حفظ میکند.آیا میتوان متن واترمارک سفارشی را به PDF در جاوا اضافه کرد؟
بله. همان رویکرد برای واترمارکها نیز کار میکند — یکTextFragmentبا متن واترمارک مورد نظر ایجاد کنید، یک فونت و اندازه مناسب (یا شفافیت از طریق وضعیت متن) را پیکربندی کنید، و آن را از طریق یکTextParagraphدر هر صفحه اضافه کنید.اگر متن درج شده برای برخی زبانها به درستی نمایش داده نشد، چه کاری باید انجام دهم؟
یک فونت که مجموعه کاراکترهای مورد نیاز را پشتیبانی میکند باFontRepository.findFont()انتخاب کنید. SDK تنظیمات فونت اعمالشده از طریقgetTextState()را رعایت میکند و مستندات راهنماییهایی برای کار با اسکریپتهای مختلف ارائه میدهد.آیا میتوانم چندین PDF را به صورت دستهای پردازش کنم تا همان متن را اضافه کنم؟
مطمئناً. کد را داخل یک حلقه که بر روی فهرستی از مسیرهای فایل تکرار میشود، بپیچید و منطقDocument/TextBuilderیکسان را برای هر فایل دوباره استفاده کنید.
