نمایشگر PDF اندروید، نمایشگر PDF اندروید

کتابخانه نمایشگر PDF جت‌پک، که توسط APIهای چارچوب پشتیبانی می‌شود، یک راه‌حل آماده و کارآمد برای برنامه‌های مرتبط با اسناد PDF در اندروید ارائه می‌دهد.

کتابخانه نمایشگر PDF ( androidx.pdf )، یک رابط کاربری نمایشگر PDF قابل جاسازی ارائه می‌دهد که کاربران را قادر می‌سازد موارد زیر را انجام دهند:

  • باز کردن و مشاهده اسناد PDF
  • جستجو و انتخاب محتوا
  • بزرگنمایی و اسکرول
  • ذخیره حاشیه‌نویسی‌های سند
  • با استفاده از قلم، با فایل‌های PDF تعامل داشته باشید

شما می‌توانید با ادغام APIهای کتابخانه Jetpack یا استفاده مستقیم از APIهای چارچوب، یک تجربه PDF با تمام امکانات ایجاد کنید.

کتابخانه PDF جت‌پک

کتابخانه PDF جت‌پک کلاس PdfViewerFragment را ارائه می‌دهد که اسناد PDF، از جمله PDFهای صفحه‌بندی‌شده را رندر می‌کند. هر صفحه در نمای خاص خود رندر می‌شود. PdfViewerFragment یک دکمه عملیاتی شناور برای پشتیبانی از حاشیه‌نویسی نمایش می‌دهد و معمولاً شامل یک دکمه یا کنترل رابط کاربری دیگر است که یک منوی جستجو را باز می‌کند.

برای یادگیری نحوه‌ی پیاده‌سازی PdfViewerFragment ، به بخش پیاده‌سازی یک نمایشگر PDF مراجعه کنید.

APIهای چارچوب

کتابخانه Jetpack از APIهای چارچوب برای تجزیه و بارگذاری اسناد PDF استفاده می‌کند. PdfRenderer APIهای چارچوب پایه مربوط به رندر PDF را ارائه می‌دهد.

قبل از اندروید V (سطح API 35)، کلاس‌های PdfRenderer و PdfRenderer.Page رابط‌های برنامه‌نویسی کاربردی (API) برای مدیریت PDF را فراهم می‌کردند. کلاس‌های PdfRenderer و PdfRenderer.Page در اندروید V با قابلیت‌های پیشرفته PDF به‌روزرسانی شده‌اند.

PdfRenderer

API های قبل از اندروید V

  • getPageCount() تعداد صفحات موجود در سند را برمی‌گرداند.
  • openPage(index: Int) — یک صفحه را برای رندر کردن باز می‌کند.
  • shouldScaleForPrinting() — مشخص می‌کند که آیا سند باید برای چاپ مقیاس‌بندی شود یا خیر. اگر سند برای چاپ رندر شده و اندازه رسانه هدف با اندازه صفحه متفاوت باشد، این اطلاعات را در نظر بگیرید.

API های اضافه شده در اندروید V

  • PdfRenderer(fileDescriptor: ParcelFileDescriptor, params: LoadParams) — یک نمونه جدید می‌سازد. از بارگذاری فایل‌های PDF محافظت‌شده با رمز عبور پشتیبانی می‌کند.
  • تابع getDocumentLinearizedType() نوع خطی‌شده‌ی سند را برای فایل‌های PDF که حجمشان کمتر از ۱ کیلوبایت است، برمی‌گرداند.
  • getPdfFormType() نوع فرم فایل PDF بارگذاری شده را برمی‌گرداند.
  • write(destination: ParcelFileDescriptor, removePasswordProtection: Boolean) — وضعیت سند بارگذاری شده فعلی را در توصیفگر فایل قابل نوشتن که به عنوان آرگومان ارسال شده است، ذخیره می‌کند.

PdfRenderer.Page

کلاس PdfRenderer.Page یک صفحه سند PDF را برای رندر کردن نشان می‌دهد.

API های قبل از اندروید V

  • RENDER_MODE_FOR_DISPLAY — حالتی برای رندر کردن محتوا جهت نمایش روی صفحه.
  • RENDER_MODE_FOR_PRINT — حالتی برای رندر کردن محتوا جهت چاپ.
  • getIndex() - ایندکس صفحه را برمی‌گرداند.
  • getWidth() عرض صفحه را بر حسب نقطه (۱/۷۲ اینچ) برمی‌گرداند.
  • getHeight() ارتفاع صفحه را بر حسب نقطه (1/72 اینچ) برمی‌گرداند.
  • render(destination: Bitmap, destClip: Rect?, transform: Matrix?, renderMode: Int) — یک صفحه را به صورت یک بیت‌مپ رندر می‌کند.

API های اضافه شده در اندروید V

  • applyEdit(editRecord: FormEditRecord) — یک FormEditRecord را به PDF اعمال می‌کند.
  • getFormWidgetInfos() — اطلاعات مربوط به تمام ویجت‌های فرم موجود در صفحه را برمی‌گرداند.
  • getFormWidgetInfos(types: IntArray) — اطلاعات مربوط به تمام ویجت‌های فرم از انواع مشخص‌شده در صفحه را برمی‌گرداند.
  • تابع getFormWidgetInfoAtIndex(widgetIndex: Int) اطلاعاتی در مورد ویجت شناسایی شده توسط آرگومان widgetIndex را برمی‌گرداند.
  • fun getFormWidgetInfoAtPosition(x: Int, y: Int) — اطلاعات مربوط به ویجت را در نقطه داده شده برمی‌گرداند.
  • getGotoLinks() — بوک‌مارک‌ها و لینک‌های goto موجود در صفحه یک سند PDF را دریافت می‌کند.
  • getImageContents() — فهرستی از PdfPageImageContent موجود در صفحه را برمی‌گرداند.
  • getLinkContents() — محدوده‌ها و URLهای تمام لینک‌های موجود در صفحه را دریافت می‌کند.
  • getTextContents() — فهرستی از PdfPageTextContent موجود در صفحه را برمی‌گرداند.
  • render(destination: Bitmap, destClip: Rect?, transform: Matrix?, params: RenderParams) — یک صفحه را به صورت یک بیت‌مپ رندر می‌کند.
  • searchText(query: String) — صفحه را برای رشته داده شده جستجو می‌کند و محدوده‌های همه تطابق‌ها را برمی‌گرداند.
  • selectContent(start: SelectionBoundary, stop: SelectionBoundary) — یک PageSelection برمی‌گرداند که نشان‌دهنده محتوای بین دو مرز است.

استفاده از API

  • API PdfRenderer#write() یک نسخه از PDF بارگذاری شده را در ParcelFileDescriptor می‌نویسد. موارد استفاده شامل موارد زیر است:

    • ذخیره یک کپی از سند PDF پس از حذف رمز عبور امنیتی
    • ذخیره ویرایش‌ها (یادداشت‌ها، پر کردن فرم و غیره)
  • APIهای PdfRenderer.Page#render() یک صفحه یا بخشی از آن را به صورت یک بیت‌مپ رندر می‌کنند. در صورت بزرگنمایی، این API همچنین می‌تواند برای رندر کردن بخشی از صفحه به صورت یک بیت‌مپ با اندازه مشخص استفاده شود.

  • APIهای PdfRenderer.Page getImageContents() ، getLinkContents() و getTextContents() محتوای موجود در صفحه را برمی‌گردانند. می‌توانید از این محتوا برای دسترسی‌پذیری و اعلان‌های TalkBack یا در ویژگی‌های دارای قابلیت هوش مصنوعی مانند ایجاد خلاصه‌ای از صفحه استفاده کنید.

  • API PdfRenderer.Page#selectContent محتوای موجود در یک صفحه را انتخاب می‌کند. می‌توانید از محتوای انتخاب شده برای اقداماتی مانند موارد زیر استفاده کنید:

    • اگر شماره تلفن
    • نقشه‌ها، در صورت انتخاب آدرس
    • کپی
    • اشتراک گذاری
    • نظرات

سازگاری

کلاس PdfRendererPreV رابط‌های برنامه‌نویسی کاربردی (API) اندروید V را در اندروید R تا U (سطح API 30 تا 34) نمایش می‌دهد.

منابع اضافی

برای یادگیری نحوه افزودن یک نمایشگر PDF به برنامه خود، به بخش پیاده‌سازی یک نمایشگر PDF مراجعه کنید.

،

کتابخانه نمایشگر PDF جت‌پک، که توسط APIهای چارچوب پشتیبانی می‌شود، یک راه‌حل آماده و کارآمد برای برنامه‌های مرتبط با اسناد PDF در اندروید ارائه می‌دهد.

کتابخانه نمایشگر PDF ( androidx.pdf )، یک رابط کاربری نمایشگر PDF قابل جاسازی ارائه می‌دهد که کاربران را قادر می‌سازد موارد زیر را انجام دهند:

  • باز کردن و مشاهده اسناد PDF
  • جستجو و انتخاب محتوا
  • بزرگنمایی و اسکرول
  • ذخیره حاشیه‌نویسی‌های سند
  • با استفاده از قلم، با فایل‌های PDF تعامل داشته باشید

شما می‌توانید با ادغام APIهای کتابخانه Jetpack یا استفاده مستقیم از APIهای چارچوب، یک تجربه PDF با تمام امکانات ایجاد کنید.

کتابخانه PDF جت‌پک

کتابخانه PDF جت‌پک کلاس PdfViewerFragment را ارائه می‌دهد که اسناد PDF، از جمله PDFهای صفحه‌بندی‌شده را رندر می‌کند. هر صفحه در نمای خاص خود رندر می‌شود. PdfViewerFragment یک دکمه عملیاتی شناور برای پشتیبانی از حاشیه‌نویسی نمایش می‌دهد و معمولاً شامل یک دکمه یا کنترل رابط کاربری دیگر است که یک منوی جستجو را باز می‌کند.

برای یادگیری نحوه‌ی پیاده‌سازی PdfViewerFragment ، به بخش پیاده‌سازی یک نمایشگر PDF مراجعه کنید.

APIهای چارچوب

کتابخانه Jetpack از APIهای چارچوب برای تجزیه و بارگذاری اسناد PDF استفاده می‌کند. PdfRenderer APIهای چارچوب پایه مربوط به رندر PDF را ارائه می‌دهد.

قبل از اندروید V (سطح API 35)، کلاس‌های PdfRenderer و PdfRenderer.Page رابط‌های برنامه‌نویسی کاربردی (API) برای مدیریت PDF را فراهم می‌کردند. کلاس‌های PdfRenderer و PdfRenderer.Page در اندروید V با قابلیت‌های پیشرفته PDF به‌روزرسانی شده‌اند.

PdfRenderer

API های قبل از اندروید V

  • getPageCount() تعداد صفحات موجود در سند را برمی‌گرداند.
  • openPage(index: Int) — یک صفحه را برای رندر کردن باز می‌کند.
  • shouldScaleForPrinting() — مشخص می‌کند که آیا سند باید برای چاپ مقیاس‌بندی شود یا خیر. اگر سند برای چاپ رندر شده و اندازه رسانه هدف با اندازه صفحه متفاوت باشد، این اطلاعات را در نظر بگیرید.

API های اضافه شده در اندروید V

  • PdfRenderer(fileDescriptor: ParcelFileDescriptor, params: LoadParams) — یک نمونه جدید می‌سازد. از بارگذاری فایل‌های PDF محافظت‌شده با رمز عبور پشتیبانی می‌کند.
  • تابع getDocumentLinearizedType() نوع خطی‌شده‌ی سند را برای فایل‌های PDF که حجمشان کمتر از ۱ کیلوبایت است، برمی‌گرداند.
  • getPdfFormType() نوع فرم فایل PDF بارگذاری شده را برمی‌گرداند.
  • write(destination: ParcelFileDescriptor, removePasswordProtection: Boolean) — وضعیت سند بارگذاری شده فعلی را در توصیفگر فایل قابل نوشتن که به عنوان آرگومان ارسال شده است، ذخیره می‌کند.

PdfRenderer.Page

کلاس PdfRenderer.Page یک صفحه سند PDF را برای رندر کردن نشان می‌دهد.

API های قبل از اندروید V

  • RENDER_MODE_FOR_DISPLAY — حالتی برای رندر کردن محتوا جهت نمایش روی صفحه.
  • RENDER_MODE_FOR_PRINT — حالتی برای رندر کردن محتوا جهت چاپ.
  • getIndex() - ایندکس صفحه را برمی‌گرداند.
  • getWidth() عرض صفحه را بر حسب نقطه (۱/۷۲ اینچ) برمی‌گرداند.
  • getHeight() ارتفاع صفحه را بر حسب نقطه (1/72 اینچ) برمی‌گرداند.
  • render(destination: Bitmap, destClip: Rect?, transform: Matrix?, renderMode: Int) — یک صفحه را به صورت یک بیت‌مپ رندر می‌کند.

API های اضافه شده در اندروید V

  • applyEdit(editRecord: FormEditRecord) — یک FormEditRecord را به PDF اعمال می‌کند.
  • getFormWidgetInfos() — اطلاعات مربوط به تمام ویجت‌های فرم موجود در صفحه را برمی‌گرداند.
  • getFormWidgetInfos(types: IntArray) — اطلاعات مربوط به تمام ویجت‌های فرم از انواع مشخص‌شده در صفحه را برمی‌گرداند.
  • تابع getFormWidgetInfoAtIndex(widgetIndex: Int) اطلاعاتی در مورد ویجت شناسایی شده توسط آرگومان widgetIndex را برمی‌گرداند.
  • fun getFormWidgetInfoAtPosition(x: Int, y: Int) — اطلاعات مربوط به ویجت را در نقطه داده شده برمی‌گرداند.
  • getGotoLinks() — بوک‌مارک‌ها و لینک‌های goto موجود در صفحه یک سند PDF را دریافت می‌کند.
  • getImageContents() — فهرستی از PdfPageImageContent موجود در صفحه را برمی‌گرداند.
  • getLinkContents() — محدوده‌ها و URLهای تمام لینک‌های موجود در صفحه را دریافت می‌کند.
  • getTextContents() — فهرستی از PdfPageTextContent موجود در صفحه را برمی‌گرداند.
  • render(destination: Bitmap, destClip: Rect?, transform: Matrix?, params: RenderParams) — یک صفحه را به صورت یک بیت‌مپ رندر می‌کند.
  • searchText(query: String) — صفحه را برای رشته داده شده جستجو می‌کند و محدوده‌های همه تطابق‌ها را برمی‌گرداند.
  • selectContent(start: SelectionBoundary, stop: SelectionBoundary) — یک PageSelection برمی‌گرداند که نشان‌دهنده محتوای بین دو مرز است.

استفاده از API

  • API PdfRenderer#write() یک نسخه از PDF بارگذاری شده را در ParcelFileDescriptor می‌نویسد. موارد استفاده شامل موارد زیر است:

    • ذخیره یک کپی از سند PDF پس از حذف رمز عبور امنیتی
    • ذخیره ویرایش‌ها (یادداشت‌ها، پر کردن فرم و غیره)
  • APIهای PdfRenderer.Page#render() یک صفحه یا بخشی از آن را به صورت یک بیت‌مپ رندر می‌کنند. در صورت بزرگنمایی، این API همچنین می‌تواند برای رندر کردن بخشی از صفحه به صورت یک بیت‌مپ با اندازه مشخص استفاده شود.

  • APIهای PdfRenderer.Page getImageContents() ، getLinkContents() و getTextContents() محتوای موجود در صفحه را برمی‌گردانند. می‌توانید از این محتوا برای دسترسی‌پذیری و اعلان‌های TalkBack یا در ویژگی‌های دارای قابلیت هوش مصنوعی مانند ایجاد خلاصه‌ای از صفحه استفاده کنید.

  • API PdfRenderer.Page#selectContent محتوای موجود در یک صفحه را انتخاب می‌کند. می‌توانید از محتوای انتخاب شده برای اقداماتی مانند موارد زیر استفاده کنید:

    • اگر شماره تلفن
    • نقشه‌ها، در صورت انتخاب آدرس
    • کپی
    • اشتراک گذاری
    • نظرات

سازگاری

کلاس PdfRendererPreV رابط‌های برنامه‌نویسی کاربردی (API) اندروید V را در اندروید R تا U (سطح API 30 تا 34) نمایش می‌دهد.

منابع اضافی

برای یادگیری نحوه افزودن یک نمایشگر PDF به برنامه خود، به بخش پیاده‌سازی یک نمایشگر PDF مراجعه کنید.