pdf

  
앱 내에 PDF 보기 기능을 추가하는 라이브러리입니다.
최근 업데이트 안정화 버전 출시 후보 버전 베타 버전 알파 버전
2025년 7월 16일 - - - 1.0.0-alpha10

종속 항목 선언

pdf의 종속 항목을 추가하려면 프로젝트에 Google Maven 저장소를 추가해야 합니다. 자세한 내용은 Google Maven 저장소를 읽어보세요.

다음과 같이 앱 또는 모듈의 build.gradle 파일에 필요한 아티팩트의 종속 항목을 추가합니다.

Groovy

dependencies {
    implementation "androidx.pdf:pdf-viewer-fragment:1.0.0-alpha10"
}

Kotlin

dependencies {
    implementation("androidx.pdf:pdf-viewer-fragment:1.0.0-alpha10")
}

종속 항목에 관한 자세한 내용은 빌드 종속 항목 추가를 참고하세요.

의견

제출하신 의견은 Jetpack을 개선하는 데 도움이 됩니다. 새로운 문제를 발견하거나 라이브러리 개선을 위한 아이디어가 있다면 Google에 알려 주세요. 새 문제를 제출하기 전에 이 라이브러리의 기존 문제를 살펴보시기 바랍니다. 별표 버튼을 클릭하여 기존 문제에 투표할 수 있습니다.

새로운 문제 제출하기

자세한 내용은 Issue Tracker 문서를 참고하세요.

이 아티팩트의 출시 노트는 없습니다.

버전 1.0

버전 1.0.0-alpha10

2025년 7월 16일

androidx.pdf:pdf-*:1.0.0-alpha10이 출시되었습니다. 버전 1.0.0-alpha10에는 이 커밋이 포함되어 있습니다.

새로운 기능

  • 사용자가 페이지 경계를 넘어 선택 핸들을 드래그하여 여러 페이지에 걸쳐 텍스트를 선택할 수 있도록 선택 기능이 향상되었습니다.
  • 이제 애플리케이션이 PDF 문서 내에서 하이퍼링크 클릭 처리를 가로채고 맞춤설정할 수 있습니다.

API 변경사항

  • PDF 콘텐츠를 표시하는 컴포저블을 노출합니다 (I8e7ee).
  • PdfPointPdfRectandroidx.pdf.models 패키지로 이동 (I26cf4)
  • PDF 콘텐츠를 표시하는 View 구성요소를 노출합니다 (I9fe27).
  • 미리 PDF 리소스를 초기화하고 콜드 스타트 지연 시간을 줄이는 API 노출 (a18fa89)
  • PDF 콘텐츠에서 하이퍼링크 클릭 처리를 재정의하는 API 노출(6330a8b)
  • 새 아티팩트 pdf-document-service와 해당 API(PdfLoader, PdfDocument, SandboxedPdfLoader)를 노출합니다. 이 인터페이스는 PDF 문서의 파싱 및 처리 구성요소 (Ide70d)를 구현하는 데 사용할 수 있습니다.
  • 문서 렌더링을 초기화하기 위해 PdfView에서 PdfDocument를 설정하는 API를 노출합니다 (If8738).

버전 1.0.0-alpha09

2025년 5월 7일

androidx.pdf:pdf-*:1.0.0-alpha09이 출시되었습니다. 버전 1.0.0-alpha09에는 이러한 커밋이 포함되어 있습니다.

주요 변경사항

  • 코드베이스가 대대적으로 리팩터링되었으며 이제 코루틴과 ViewModel를 사용하여 Kotlin으로 완전히 작성됩니다. 여기에는 PdfViewerFragment 재구현이 포함됩니다. 이 출시에는 새로운 API나 기능이 포함되어 있지 않습니다.

알려진 문제:

  • 빠른 스크롤러와 페이지 표시기에 그림자 효과가 누락되어 있습니다.
  • 단일 페이지 PDF 문서는 항상 중앙에 배치되고 뷰의 너비에 맞게 크기가 조정되지 않을 수 있습니다.

API 변경사항

  • containerStyleResId@StyleRes 주석을 답니다. (I88d85)

버전 1.0.0-alpha08

2025년 3월 12일

androidx.pdf:pdf-document-service:1.0.0-alpha08, androidx.pdf:pdf-viewer:1.0.0-alpha08androidx.pdf:pdf-viewer-fragment:1.0.0-alpha08이 출시되었습니다. 버전 1.0.0-alpha08에는 이 커밋이 포함되어 있습니다.

버그 수정

  • 확장 차이로 인해 Android 기기 간에 선택 메뉴 배치가 일관되지 않는 문제를 해결했습니다. 이제 선택 메뉴 배치가 기기 간에 일관됩니다.
  • 구성 변경 등의 시나리오에서 프래그먼트 재생성 시 빠른 스크롤러와 페이지 표시기 위치를 정렬했습니다.

버전 1.0.0-alpha07

2025년 2월 26일

androidx.pdf:pdf-document-service:1.0.0-alpha07, androidx.pdf:pdf-viewer:1.0.0-alpha07androidx.pdf:pdf-viewer-fragment:1.0.0-alpha07이 출시되었습니다. 버전 1.0.0-alpha07에는 이러한 커밋이 포함되어 있습니다.

새로운 기능

  • 이제 PdfViewerFragmentStylingOptions (스타일 리소스 ID 집합)를 지원하여 newInstance 또는 XML (FragmentContainerView)을 통한 맞춤 스타일 지정이 가능합니다. 하위 클래스는 유사한 기능을 위해 보호된 생성자를 활용할 수 있습니다.
  • StylingOptions은(는) 현재 다음을 제공하는 containerStyle을(를) 사용합니다.
    • 빠른 스크롤 핸들 및 페이지 표시기의 맞춤 드로어블 지원
    • 빠른 스크롤 핸들 및 페이지 표시기의 정확한 위치 지정을 위한 marginEnd 속성

API 변경사항

  • PdfView에서 공개 속성 추가 (I30fc5)
  • PDF 뷰를 위한 새 API StylingOptions를 추가했습니다. (Id2993)

버그 수정

  • 빠른 스크롤 핸들과 페이지 표시기 표시 상태 간의 동기화 불일치가 수정되었습니다.

버전 1.0.0-alpha06

2025년 1월 29일

androidx.pdf:pdf-document-service:1.0.0-alpha06, androidx.pdf:pdf-viewer:1.0.0-alpha06androidx.pdf:pdf-viewer-fragment:1.0.0-alpha06이 출시되었습니다. 버전 1.0.0-alpha06에는 이 커밋이 포함되어 있습니다.

버그 수정

  • 수정: 등록되지 않은 서비스를 바인드 해제할 때 IllegalArgumentException로 인해 발생하는 비정상 종료 (eb4e85)
  • 수정: mMaxPagesnumPages의 차이로 인해 IllegalArgumentException 비정상 종료 (75d763)

버전 1.0.0-alpha05

2024년 12월 11일

androidx.pdf:pdf-document-service:1.0.0-alpha05, androidx.pdf:pdf-viewer:1.0.0-alpha05androidx.pdf:pdf-viewer-fragment:1.0.0-alpha05이 출시되었습니다. 버전 1.0.0-alpha05에는 이 커밋이 포함되어 있습니다.

버그 수정

  • 이제 이 라이브러리는 유형 사용인 JSpecify nullness 주석을 사용합니다. Kotlin 개발자는 다음 컴파일러 인수를 사용하여 올바른 사용을 강제해야 합니다.-Xjspecify-annotations=strict (Kotlin 컴파일러 버전 2.1.0부터 기본값임) (I38301, b/326456246)
  • Android 13에서 회전 후 이전에 열었던 페이지가 표시되는 문제 수정 (Ib03dd)
  • 회전 시 도구 상자가 사라지는 문제 수정 (01148f)

버전 1.0.0-alpha04

2024년 11월 13일

androidx.pdf:pdf-viewer:1.0.0-alpha04androidx.pdf:pdf-viewer-fragment:1.0.0-alpha04이 출시되었습니다. 버전 1.0.0-alpha04에는 이러한 커밋이 포함되어 있습니다.

확장된 호환성

  • 이제 PDFViewer 라이브러리가 Android 버전 S, T, U, V를 지원합니다. 이 호환성 향상은 SDK 확장 프로그램 13 업데이트와 연결되어 있습니다.

API 변경사항

  • PdfViewerFragment에 최소 SdkExtension 제약 조건 추가 (I922af)
  • PDF 뷰어 라이브러리를 위한 새 API 노출 (I0af57)

버그 수정

  • 프로세스 종료 문제의 비정상 종료 수정
  • 비밀번호 대화상자와 관련된 UI 수정
  • findInFileViewFastscrollView의 접근성 수정

지속적인 개발

  • Jetpack Compose를 라이브러리에 통합하기 위해 노력하고 있습니다.

버전 1.0.0-alpha03

2024년 9월 18일

androidx.pdf:pdf-viewer:1.0.0-alpha03androidx.pdf:pdf-viewer-fragment:1.0.0-alpha03이 출시되었습니다. 버전 1.0.0-alpha03에는 이 커밋이 포함되어 있습니다.

버그 수정

  • 검색을 처음 열 때 키보드가 표시되지 않는 문제 해결
  • FindInFile 뷰의 글꼴과 관련된 UI 수정사항
  • 텍스트 선택 및 드래그 핸들 UI 수정

알려진 문제

  • PDF 문서의 3D 이미지는 뷰어에 렌더링되지 않습니다.
  • PdfViewerFragment는 매우 큰 PDF 문서 (> 250MB)에서 성능 문제가 있습니다.

버전 1.0.0-alpha02

2024년 9월 4일

androidx.pdf:pdf-viewer:1.0.0-alpha02androidx.pdf:pdf-viewer-fragment:1.0.0-alpha02이 출시되었습니다. 버전 1.0.0-alpha02에는 이 커밋이 포함되어 있습니다.

버그 수정

  • 세로 모드에서 가로 모드로 회전할 때 PDF 이미지가 흐려지는 문제와 앱이 절전 모드로 전환되는 문제가 해결되었습니다.
  • 이제 파일에서 찾기 메뉴는 구성이 변경되더라도 결과 수를 유지합니다.
  • 이제 단일 페이지 PDF에 FloatingActionButton 아이콘을 사용할 수 있습니다.
  • 파일에서 찾기 표시줄과 FloatingActionButton 간의 중복 문제가 수정되었습니다.
  • 이제 텍스트 및 강조 표시 주석이 뷰어에 렌더링될 수 있습니다.
  • 파일에서 찾기 표시줄의 접근성이 개선되었습니다.
  • 찾기 개수 유지, 텍스트 선택 메뉴가 사라지는 문제 해결, FAB 중복 문제 해결 등 회전을 위한 UI 수정이 구현되었습니다.
  • 가로 모드에서 키보드 뒤에 숨겨진 파일에서 찾기 메뉴가 수정되었습니다.

알려진 문제

  • PDF 문서의 3D 이미지는 뷰어에 렌더링되지 않습니다.
  • PdfViewerFragment는 매우 큰 PDF 문서 (> 250MB)에서 성능 문제가 있습니다.

버전 1.0.0-alpha01

2024년 8월 7일

androidx.pdf:pdf-viewer:1.0.0-alpha01androidx.pdf:pdf-viewer-fragment:1.0.0-alpha01이 출시되었습니다. 버전 1.0.0-alpha01에는 이 커밋이 포함되어 있습니다.

새로운 기능

PDFViewer의 초기 알파 버전에는 핵심 PDF 읽기 시나리오를 지원하는 초기 미리보기 구현이 포함되어 있습니다. PdfViewerFragment는 현재 Android V (SDK 35) 버전에서만 지원됩니다. 이전 Android 버전 지원은 향후 출시에서 추가될 예정입니다.

  • 앱에서 PDF 문서를 렌더링하는 데 사용할 수 있는 PdfViewerFragment를 도입했습니다. PdfViewerFragment를 사용하면 활동에 PDF 뷰어를 쉽게 통합할 수 있으며 사용자는 다음과 같은 방식으로 상호작용할 수 있습니다.
    • 확대/축소: 손가락을 모으거나 펼쳐 확대/축소 수준을 조정하여 편안하게 읽을 수 있으며, 두 번 탭하여 기본 상태로 빠르게 확대/축소할 수 있습니다.
    • 탐색: 기본/확대 상태에서 스크롤합니다. PdfViewerFragment는 페이지 간에 빠르게 스크롤할 수 있는 빠른 스크러버를 제공합니다.
    • 텍스트 작업: 텍스트를 길게 탭하면 텍스트가 선택되어 사용자가 현재 페이지에서 복사 및 모두 선택과 같은 옵션을 사용할 수 있습니다.
    • 비밀번호로 보호된 문서: PdfViewerFragment는 사용자가 비밀번호를 입력하고 문서를 열 수 있는 대화상자를 제공합니다.
    • 탐색 가능한 하이퍼링크: 사용자는 PDF 내에서 하이퍼링크를 탭하여 웹 URL 또는 북마크로 이동할 수 있습니다.
    • 주석 모드 바로가기: 수정 모드는 아직 PdfViewerFragment에서 지원되지 않습니다. 대신 PdfViewerFragment는 문서 URI를 사용하여 암시적 android.intent.action.ANNOTATE 인텐트를 실행하는 FloatingActionButton를 표시합니다.

API 변경사항

  • 문서의 파일 또는 콘텐츠 URI를 설정하고 문서 로딩을 시작하는 PdfViewerFragment.documentUri 속성이 추가되었습니다. URI가 설정되면 PdfViewerFragment에 로드 스피너가 표시되어 문서의 백그라운드 처리를 나타냅니다.
  • 파일에서 찾기 메뉴의 표시 상태를 전환하는 PdfViewerFragment.isTextSearchActive가 추가되었습니다. PdfViewerFragment는 전체 흐름을 처리하여 입력을 허용하고, 일치하는 항목의 총 개수를 표시하고, 결과 간 탐색을 사용 설정하고, 종료합니다.
  • 문서가 성공적으로 렌더링된 후 또는 렌더링 전에 오류가 발생한 후 호출되는 onDocumentLoadSuccessonDocumentLoadError 콜백이 추가되었습니다.

알려진 문제

  • 경우에 따라 파일에서 찾기 표시줄이 FloatingActionButton와 겹칩니다.
  • 단일 페이지 PDF에는 FloatingActionButton 아이콘이 표시되지 않습니다.
  • 파일에서 찾기 메뉴의 구성 변경 시 결과 수가 유지되지 않습니다.
  • 파일에서 찾기 메뉴를 닫는 동안 깜박임이 관찰됨
  • PDF 문서의 3D 이미지는 뷰어에 렌더링되지 않습니다.
  • 접근성 기능은 다음 버전에서 사용 설정됩니다.
  • 세로 모드에서 가로 모드로 회전하면 PDF 이미지가 흐려집니다.
  • 텍스트/하이라이트 주석은 지원되지 않습니다.
  • PdfViewerFragment는 매우 큰 PDF 문서 (> 250MB)에서 성능 문제가 있습니다.

참고

  • compileSdk을 35 5dc41be로 업데이트