ไลบรารีโปรแกรมดู PDF ของ Jetpack ซึ่งได้รับการสนับสนุนจาก API ของเฟรมเวิร์กมีโซลูชันที่พร้อมใช้งานและมีประสิทธิภาพ สำหรับแอปพลิเคชันที่เกี่ยวข้องกับเอกสาร PDF ใน Android
ไลบรารีโปรแกรมอ่าน PDF (androidx.pdf) มี UI โปรแกรมอ่าน PDF ที่ฝังได้ ซึ่งช่วยให้ผู้ใช้ทำสิ่งต่อไปนี้ได้
- เปิดและดูเอกสาร PDF
- ค้นหาและเลือกเนื้อหา
- ซูมและเลื่อน
- บันทึกคำอธิบายประกอบในเอกสาร
- โต้ตอบกับ PDF โดยใช้สไตลัส
คุณสร้างประสบการณ์การใช้งาน PDF ที่มีฟีเจอร์ครบถ้วนได้โดยการผสานรวม API ของไลบรารี Jetpack หรือใช้ API ของเฟรมเวิร์กโดยตรง
ไลบรารี PDF ของ Jetpack
ไลบรารี PDF ของ Jetpack มีคลาส PdfViewerFragment
ซึ่งแสดงเอกสาร PDF รวมถึง PDF ที่มีการแบ่งหน้า แต่ละหน้าจะ
แสดงในมุมมองของตัวเอง PdfViewerFragment แสดงปุ่มการทำงานแบบลอย
สำหรับการรองรับคำอธิบายประกอบ และโดยทั่วไปจะมีปุ่มหรือตัวควบคุม UI อื่นๆ ที่
เปิดเมนูค้นหา
ดูวิธีติดตั้งใช้งาน PdfViewerFragment ได้ที่
ติดตั้งใช้งานโปรแกรมอ่าน PDF
Framework API
ไลบรารี Jetpack ใช้ API ของเฟรมเวิร์กเพื่อแยกวิเคราะห์และโหลดเอกสาร PDF
PdfRenderer มี API เฟรมเวิร์กพื้นฐานที่เกี่ยวข้องกับการแสดงผล PDF
ก่อน Android V (API ระดับ 35) คลาส PdfRenderer และ
PdfRenderer.Page มี API สำหรับการจัดการ PDF
คลาส PdfRenderer และ PdfRenderer.Page ได้รับการอัปเดตใน
Android V พร้อมความสามารถขั้นสูงของ PDF
PdfRenderer
API ก่อน Android V
getPageCount()— รับจำนวนหน้าในเอกสารopenPage(index: Int)— เปิดหน้าสำหรับการแสดงผลshouldScaleForPrinting()— Gets whether the document should be scaled for printing. โปรดคำนึงถึงข้อมูลนี้หากมีการแสดงผลเอกสารสำหรับการพิมพ์และขนาดสื่อเป้าหมายแตกต่างจากขนาดหน้า
API ที่เพิ่มใน Android V
PdfRenderer(fileDescriptor: ParcelFileDescriptor, params: LoadParams)— สร้างอินสแตนซ์ใหม่ รองรับการโหลดไฟล์ PDF ที่มีการป้องกันด้วยรหัสผ่านgetDocumentLinearizedType()— แสดงประเภทที่แปลงเป็นเชิงเส้นของเอกสารสำหรับ PDF ที่มีขนาดน้อยกว่า 1 KBgetPdfFormType()— แสดงผลประเภทแบบฟอร์มของ PDF ที่โหลดwrite(destination: ParcelFileDescriptor, removePasswordProtection: Boolean)— บันทึกสถานะของเอกสารที่โหลดอยู่ในปัจจุบันไปยัง ตัวอธิบายไฟล์ที่เขียนได้ซึ่งส่งผ่านเป็นอาร์กิวเมนต์
PdfRenderer.Page
คลาส PdfRenderer.Page แสดงหน้าเอกสาร PDF สำหรับการแสดงผล
API ก่อน Android V
RENDER_MODE_FOR_DISPLAY- โหมดแสดงเนื้อหาเพื่อแสดงบนหน้าจอRENDER_MODE_FOR_PRINT— โหมดที่จะแสดงเนื้อหาสำหรับการพิมพ์getIndex()— รับดัชนีหน้าgetWidth()— รับความกว้างของหน้าเป็นจุด (1/72 ของนิ้ว)getHeight()— รับความสูงของหน้าเป็นจุด (1/72 ของนิ้ว)render(destination: Bitmap, destClip: Rect?, transform: Matrix?, renderMode: Int)— แสดงหน้าเป็นบิตแมป
API ที่เพิ่มใน Android V
applyEdit(editRecord: FormEditRecord)— ใช้FormEditRecordกับ PDFgetFormWidgetInfos()— แสดงข้อมูลเกี่ยวกับวิดเจ็ตแบบฟอร์มทั้งหมดในหน้าเว็บgetFormWidgetInfos(types: IntArray)— แสดงข้อมูลเกี่ยวกับวิดเจ็ตแบบฟอร์มทั้งหมด ของประเภทที่ระบุในหน้าเว็บgetFormWidgetInfoAtIndex(widgetIndex: Int)— แสดงข้อมูล เกี่ยวกับวิดเจ็ตที่ระบุโดยอาร์กิวเมนต์widgetIndexfun getFormWidgetInfoAtPosition(x: Int, y: Int)— Returns information about the widget at the given point.getGotoLinks()— รับบุ๊กมาร์กและลิงก์ goto ที่อยู่ในหน้า ของเอกสาร PDFgetImageContents()— แสดงผลรายการของPdfPageImageContentที่พบในหน้าเว็บgetLinkContents()— รับขอบเขตและ URL ของลิงก์ทั้งหมดในหน้า เว็บgetTextContents()— แสดงผลรายการของPdfPageTextContentในหน้าrender(destination: Bitmap, destClip: Rect?, transform: Matrix?, params: RenderParams)— แสดงหน้าเป็นบิตแมปsearchText(query: String)— ค้นหาสตริงที่ระบุในหน้า และแสดงขอบเขตของรายการที่ตรงกันทั้งหมดselectContent(start: SelectionBoundary, stop: SelectionBoundary)— แสดงผลPageSelectionซึ่งแสดงถึงเนื้อหา ระหว่างขอบเขต 2 รายการ
การใช้งาน API
PdfRenderer#write()API จะเขียน PDF ที่โหลดแล้วเวอร์ชันหนึ่งไปยังParcelFileDescriptorกรณีการใช้งานมีดังนี้- การบันทึกสำเนาเอกสาร PDF หลังจากนำการรักษาความปลอดภัยด้วยรหัสผ่านออก
- การบันทึกการแก้ไข (คำอธิบายประกอบ การกรอกแบบฟอร์ม ฯลฯ)
API ของ
PdfRenderer.Page#render()จะแสดงหน้าเว็บหรือบางส่วนของหน้าเว็บ เป็นบิตแมป ในกรณีของการซูม คุณยังใช้ API เพื่อแสดงผลส่วนหนึ่ง ของหน้าเป็นบิตแมปที่มีขนาดที่กำหนดได้ด้วยPdfRenderer.PageAPIgetImageContents(),getLinkContents()และgetTextContents()จะแสดงเนื้อหาที่มีในหน้าเว็บ คุณสามารถใช้ เนื้อหาสำหรับการช่วยเหลือพิเศษและการประกาศของ TalkBack หรือในฟีเจอร์ที่เปิดใช้ AI เช่น การสร้างสรุปของหน้าเว็บPdfRenderer.Page#selectContentAPI จะเลือกเนื้อหาที่มีอยู่ในหน้าเว็บ คุณใช้เนื้อหาที่เลือกเพื่อดำเนินการต่างๆ ได้ เช่น- โทรออกหากเป็นหมายเลขโทรศัพท์
- เปิด Maps หากเลือกที่อยู่ไว้
- คัดลอก
- แชร์
- ความคิดเห็น
ความเข้ากันได้
คลาส PdfRendererPreV แสดง API ของ Android V ใน Android R ถึง U (API ระดับ 30-34)
แหล่งข้อมูลเพิ่มเติม
ดูติดตั้งใช้งานโปรแกรมดู PDF เพื่อดูวิธีเพิ่มโปรแกรมดู PDF ลงในแอป