در این مقاله نحوه ایجاد فایل پی دی اف از ابتدا به صورت برنامه نویسی در جاوا را خواهید آموخت.

ایجاد اسناد PDF با استفاده از جاوا

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

Java API برای ایجاد PDF - دانلود رایگان

Aspose.PDF for Java یک API دستکاری فایل PDF است که شما را قادر می سازد فایل های PDF را از داخل برنامه های جاوا ایجاد کنید. با استفاده از API، می توانید اسناد PDF ساده و همچنین پیچیده ایجاد کنید. Aspose.PDF برای جاوا می تواند به صورت JAR بارگیری شود یا در برنامه های مبتنی بر Maven نصب شود.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <version>20.11</version>
    <classifier>jdk17</classifier>
</dependency>

یک فایل PDF در جاوا ایجاد کنید

مراحل زیر برای تولید یک فایل PDF ساده از ابتدا و درج یک متن در آن است.

نمونه کد زیر نحوه ایجاد یک فایل PDF با استفاده از جاوا را نشان می دهد.

// برای نمونه‌های کامل و فایل‌های داده، لطفاً به https://github.com/aspose-pdf/Aspose.PDF-for-Java بروید
// مقداردهی اولیه شی سند
Document document = new Document();
 
//اضافه کردن صفحه
Page page = document.getPages().add();
 
// اضافه کردن متن به صفحه جدید
page.getParagraphs().add(new TextFragment("Hello World!"));
 
// PDF به روز شده را ذخیره کنید
document.save("HelloWorld_out.pdf");

ایجاد فایل PDF با قالب بندی متن در جاوا

حال بیایید نحوه اعمال قالب بندی روی متن سند PDF را بررسی کنیم. قالب بندی متن می تواند شامل فونت، اندازه فونت، رنگ، موقعیت و غیره باشد. مراحل زیر برای انجام این عملیات آمده است.

  • از کلاس Document برای ایجاد یک سند PDF جدید یا بارگیری یک سند موجود استفاده کنید.
  • به Page که می‌خواهید متن را در آن قرار دهید، دسترسی پیدا کنید.
  • یک شی از TextFragment برای تنظیم متن و سایر گزینه‌های قالب‌بندی مانند موقعیت، فونت، رنگ، اندازه و غیره ایجاد کنید.
  • از کلاس TextBuilder برای اضافه کردن شی TextFragment به صفحه استفاده کنید.
  • برای ذخیره سند PDF از روش Document.save(String) استفاده کنید.

نمونه کد زیر نحوه ایجاد یک فایل PDF و اعمال قالب بندی متن با استفاده از جاوا را نشان می دهد.

// سند PDF را بارگیری کنید
Document document = new Document();

// اضافه کردن صفحه
Page page = document.getPages().add();

// قطعه متن ایجاد کنید
TextFragment textFragment = new TextFragment(
		"Text 1: We have now applied text formatting. This is PDF generated by Aspose.PDF for .NET");
textFragment.setPosition(new Position(100, 700));
TextFragment textFragment1 = new TextFragment(
		"Text 2: We have now applied text formatting. This is PDF generated by Aspose.PDF for .NET");
textFragment1.setPosition(new Position(100, 600));

// ویژگی های متن را تنظیم کنید
textFragment.getTextState().setFontSize(12);
textFragment.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
textFragment.getTextState().setBackgroundColor(Color.getLightGray());
textFragment.getTextState().setForegroundColor(Color.getRed());

textFragment1.getTextState().setDrawTextRectangleBorder(true);
textFragment1.getTextState().setUnderline(true);
textFragment1.getTextState().setStrikeOut(true);

// با فضای رنگی الگو، رنگ جدیدی ایجاد کنید
Color color = new Color();
color.setPatternColorSpace(new GradientAxialShading(Color.getRed(), Color.getBlue()));		
textFragment1.getTextState().setForegroundColor(color);

// ایجاد شی TextBuilder
TextBuilder textBuilder = new TextBuilder(page);

// قطعات متن را به صفحه PDF اضافه کنید
textBuilder.appendText(textFragment);
textBuilder.appendText(textFragment1);

// سند PDF را ذخیره کنید
document.save("Generated-PDF.pdf");

جاوا ایجاد فایل های PDF با تصویر

مراحل زیر برای درج یک تصویر در یک فایل PDF با استفاده از Aspose.PDF برای جاوا آمده است.

  • یک شی Document برای ایجاد یا باز کردن سند PDF ایجاد کنید.
  • صفحه ای را که می خواهید تصویری به آن اضافه کنید در شیء Page دریافت کنید.
  • تصویر را به مجموعه Page.getResources() اضافه کنید.
  • از عملگرها برای قرار دادن تصویر در صفحه استفاده کنید:
    • GSave operator to save the current graphical state.
    • ConcatenateMatrix operator to specify where the image is to be placed.
    • انجام دادن operator to draw the image on the page.
    • در نهایت، از عملگر GRestore برای ذخیره وضعیت گرافیکی به روز شده استفاده کنید.
  • فایل PDF را ذخیره کنید.

نمونه کد زیر نحوه درج تصویر در فایل PDF در جاوا را نشان می دهد.

// برای نمونه های کامل و فایل های داده، لطفاً به https://github.com/aspose-pdf/Aspose.Pdf-for-Java بروید
// یک سند باز کنید
Document pdfDocument1 = new Document("input.pdf");

// مختصات را تنظیم کنید
int lowerLeftX = 100;
int lowerLeftY = 100;
int upperRightX = 200;
int upperRightY = 200;

// صفحه ای را که می خواهید تصویر را به آن اضافه کنید دریافت کنید
Page page = pdfDocument1.getPages().get_Item(1);

// بارگذاری تصویر در جریان
java.io.FileInputStream imageStream = new java.io.FileInputStream(new java.io.File("input_image1.jpg"));

// یک تصویر به مجموعه Images منابع صفحه اضافه کنید
page.getResources().getImages().add(imageStream);

// استفاده از عملگر GSave: این عملگر وضعیت گرافیکی فعلی را ذخیره می کند
page.getContents().add(new Operator.GSave());

// اشیاء Rectangle و Matrix ایجاد کنید
Rectangle rectangle = new Rectangle(lowerLeftX, lowerLeftY, upperRightX, upperRightY);
Matrix matrix = new Matrix(new double[] { rectangle.getURX() - rectangle.getLLX(), 0, 0, rectangle.getURY() - rectangle.getLLY(), rectangle.getLLX(), rectangle.getLLY() });

// با استفاده از عملگر ConcatenateMatrix (ماتریس پیوست): نحوه قرار دادن تصویر را مشخص می کند
page.getContents().add(new Operator.ConcatenateMatrix(matrix));
XImage ximage = page.getResources().getImages().get_Item(page.getResources().getImages().size());

// استفاده از عملگر Do: این عملگر تصویر را ترسیم می کند
page.getContents().add(new Operator.Do(ximage.getName()));

// استفاده از عملگر GRestore: این عملگر حالت گرافیکی را بازیابی می کند
page.getContents().add(new Operator.GRestore());

// PDF جدید را ذخیره کنید
pdfDocument1.save("Updated_document.pdf");

// بستن جریان تصویر
imageStream.close();

یک جدول در فایل PDF در جاوا ایجاد کنید

جدول روش خوبی برای سازماندهی داده ها در قالب سطر و ستون است. Aspose.PDF به شما امکان می دهد جدول را به راحتی در یک سند PDF قرار دهید. در زیر مراحل ایجاد جدول آمده است.

  • فایل منبع را با استفاده از کلاس Document بارگیری کنید.
  • یک جدول را راه‌اندازی کنید و ستون‌ها و ردیف‌های آن را تنظیم کنید.
  • تنظیم جدول (مثلاً مرزها).
  • جدول را با افزودن ردیف هایی به آن پر کنید.
  • جدول را به یک صفحه اضافه کنید.
  • فایل PDF را ذخیره کنید.

نمونه کد زیر نحوه ایجاد جدول در فایل های PDF در جاوا را نشان می دهد.

// برای نمونه های کامل و فایل های داده، لطفاً به https://github.com/aspose-pdf/Aspose.Pdf-for-Java بروید
// سند PDF منبع را بارگیری کنید
Document doc = new Document(dataDir + "input.pdf");
// نمونه جدیدی از جدول را راه اندازی می کند
Table table = new Table();
// رنگ حاشیه جدول را به صورت LightGray تنظیم کنید
table.setBorder(new BorderInfo(BorderSide.All, .5f, Color.getLightGray()));
// مرز سلول های جدول را تنظیم کنید
table.setDefaultCellBorder(new BorderInfo(BorderSide.All, .5f, Color.getLightGray()));
// یک حلقه برای اضافه کردن 10 ردیف ایجاد کنید
for (int row_count = 1; row_count < 10; row_count++) {
	// اضافه کردن ردیف به جدول
	Row row = table.getRows().add();
	// سلول های جدول را اضافه کنید
	row.getCells().add("Column (" + row_count + ", 1)");
	row.getCells().add("Column (" + row_count + ", 2)");
	row.getCells().add("Column (" + row_count + ", 3)");
}
// شی جدول را به صفحه اول سند ورودی اضافه کنید
doc.getPages().get_Item(1).getParagraphs().add(table);
// سند به روز شده حاوی شی جدول را ذخیره کنید
doc.save(dataDir + "document_with_table.pdf");

ایجاد فرم در یک فایل PDF در جاوا

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

  • با استفاده از کلاس Document سند PDF را بارگیری کنید یا یک سند جدید ایجاد کنید.
  • فیلد فرمی را که می خواهید اضافه کنید مانند TextBoxField ایجاد کنید.
  • ویژگی های فیلد را تنظیم کنید.
  • فیلد را با استفاده از روش pdfDocument.getForm().add(Field, Int) به Form PDF اضافه کنید.
  • سند PDF را ذخیره کنید.

نمونه کد زیر نحوه ایجاد فرم در یک فایل PDF در جاوا را نشان می دهد.

// برای نمونه های کامل و فایل های داده، لطفاً به https://github.com/aspose-pdf/Aspose.Pdf-for-Java بروید
// یک سند باز کنید
Document pdfDocument = new Document("input.pdf");

// یک فیلد ایجاد کنید
TextBoxField textBoxField1 = new TextBoxField(pdfDocument.getPages().get_Item(1), new Rectangle(100, 200, 300, 300));

// نام فیلد را تنظیم کنید
textBoxField1.setPartialName("textbox1");

// مقدار فیلد را تنظیم کنید
textBoxField1.setValue("Text Box");

// یک آبجکت مرزی ایجاد کنید
Border border = new Border(textBoxField1);

// عرض حاشیه را تنظیم کنید
border.setWidth(5);

// سبک خط تیره حاشیه را تنظیم کنید
border.setDash(new Dash(1, 1));

// مرز فیلد را تنظیم کنید
textBoxField1.setBorder(border);

// فیلد را به سند اضافه کنید
pdfDocument.getForm().add(textBoxField1, 1);

// PDF اصلاح شده را ذخیره کنید
pdfDocument.save("output.pdf");

درباره فیلدهای فرم با استفاده از اینجا بیشتر بخوانید.

درج نشانک ها در فایل PDF در جاوا

مراحل زیر برای افزودن نشانک در فایل PDF آمده است.

  • یک سند PDF را با استفاده از شیء Document باز کنید.
  • خطوط کلی اسناد را به مجموعه OutlineItemCollection اضافه کنید.
  • شماره صفحه مقصد را تنظیم کنید.
  • نشانک را در مجموعه طرح کلی سند اضافه کنید.
  • فایل PDF را ذخیره کنید.

نمونه کد زیر نحوه درج نشانک ها را در PDF با استفاده از جاوا نشان می دهد.

// برای نمونه های کامل و فایل های داده، لطفاً به https://github.com/aspose-pdf/Aspose.Pdf-for-Java بروید
// سند PDF منبع را باز کنید
Document pdfDocument = new Document("input.pdf");

// یک شی نشانک ایجاد کنید
OutlineItemCollection pdfOutline = new OutlineItemCollection(pdfDocument.getOutlines());
pdfOutline.setTitle("Test Outline");
pdfOutline.setItalic(true);
pdfOutline.setBold(true);

// شماره صفحه مقصد را تنظیم کنید
pdfOutline.setAction(new GoToAction(pdfDocument.getPages().get_Item(1)));

// یک نشانک در مجموعه طرح کلی سند اضافه کنید.
pdfDocument.getOutlines().add(pdfOutline);

// سند به روز رسانی را ذخیره کنید
pdfDocument.save("output.pdf");

مجوز رایگان دریافت کنید

برای امتحان API بدون محدودیت ارزیابی، می‌توانید یک مجوز موقت رایگان دریافت کنید.

نتیجه

در این مقاله نحوه ایجاد فایل های PDF از ابتدا در جاوا را یاد گرفتید. علاوه بر این، نمونه‌های کد جاوا نحوه درج متن، تصاویر، جداول، فرم‌ها و نشانک‌ها را در فایل‌های PDF جدید یا موجود نشان داده‌اند. می‌توانید با استفاده از مستندات درباره Java PDF API بیشتر کاوش کنید.

همچنین ببینید