دسته بندی : آموزش اندروید- android

نوشته شده در 1396/03/02

تولید فایل PDF با محتوای دلخواه در اندروید

برای اینکه بتوانید یک فایل pdf با محتوای دلخواه را در اندروید ایجاد کنید باید از کلاس PdfDocument که در پکیج android.graphics.pdf قرار دارد استفاده کنید، این پکیج ایجاد اسناد PDF با محتوای دلخواه را برای شما امکان‌پذیر می کند. برای انجام این کار بعد از اینکه یک سند جدید را ایجاد کردید، ایجاد صفحه با استفاده از کلاس اطلاعات صفحه (PageInfo) شروع می‌شود. سپس با استفاده از کلاس Canvas، صفحه مورد نظر  مانند بوم نقاشی، به صورت دلخواه طراحی شده و در صورت لزوم اطلاعات لازم در آن قرار می‌گیرد. در نهایت، صفحه شروع‌شده باید پایان یابد.

بعد از اینکه تمامی صفحات مورد نیازتان را ایجاد کردید، سند روی یک جریان خروجی نوشته شده (ذخیره به صورت فایل) و بعد از آن صفحه سند بسته می‌شود. بعد از اینکه سند بسته شد دیگر نباید از آن استفاده کنید. به این  نکته توجه کنید که کلیه صفحات باید بصورت جداگانه ایجاد شوند.

نمونه کد برای ایجاد فایل pdf با محتوای دلخواه :

PdfDocument document = new PdfDocument();

// create a page description | (pageWidth, pageHeight, pageNumber)
PageInfo pageInfo = new PageInfo.Builder(595, 842, 1).create(); // A4 Size in Pixels

// start a page
Page page = document.startPage(pageInfo);

Canvas canvas = page.getCanvas();
Paint paint = new Paint();
paint.setColor(Color.BLACK);
paint.setTextSize(14);

// (String text, float x, float y, Paint paint)
canvas.drawText("نام:", 450, 60, paint);
canvas.drawText("نام خانوادگی:", 200, 60, paint);
canvas.drawText("آدرس:", 450, 110, paint);
canvas.drawText("تاریخ:", 450, 160, paint);
canvas.drawText("توضیحات:", 450, 210, paint);
canvas.drawText("محل امضا:", 200, 310, paint);

paint.setTextAlign(Paint.Align.RIGHT);

canvas.drawText(firstName, 440, 60, paint); // به عنوان مثال، ثبت محتوای یک متغیر از نوع رشته

// finish the page
document.finishPage(page);

File outputFile = new File(Environment.getExternalStorageDirectory().getPath() + "/PDF/", pdfName + “.pdf”);
outputFile.getParentFile().mkdirs();
try {
   outputFile.createNewFile();
   OutputStream out = new FileOutputStream(outputFile);
   document.writeTo(out);
   document.close();
   out.close();
} catch (IOException e) {
   e.printStackTrace();
}

نظرات 0

ارسال نظر