pdf

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

종속 항목 선언

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

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

Groovy

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

Kotlin

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

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

의견

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

새로운 문제 제출하기

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

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

버전 1.0

버전 1.0.0-alpha11

2025년 10월 22일

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

새로운 기능

  • PDF 콘텐츠 선택 시 스마트 메뉴 항목 사용 설정
  • PDF에서 하이퍼링크 선택 및 GoTo 링크 선택 사용 설정
  • 개발자가 선택 메뉴 항목을 추가할 수 있는 선택 메뉴 API fromPdfViewPdfViewer 컴포저블 노출
  • 콘텐츠 높이가 뷰포트 높이보다 작은 경우 개발자가 페이지 정렬을 선택할 수 있도록 PdfView 및 PdfViewer 컴포저블에 페이지 정렬 API 추가

API 변경사항

  • contentDesc을 null 허용으로 설정하고 기본값을 삭제했습니다. (I86f8c, b/441973880)
  • 링크 선택 메뉴 항목에 PdfSelectionMenuKeys 노출 (Ic9b05, b/447079082)
  • androidx-main에 PdfViewPdfViewerPageAlignment API 추가
  • 각도 관련 API가 도를 사용하고 이름에 단위를 포함하도록 변경하고, 각도 변환 유틸리티에서 단위를 명확히 하고, 도와 라디안을 모두 지원하고, StockBrushes API가 스톡 브러시 버전을 팩토리 함수 매개변수로 사용하도록 변경하고, 형광펜 브러시의 자체 오버랩 동작 제어를 노출하고, MutableAffineTransform.populateFromTranslatepopulateFromTranslation로 이름을 바꾸고, InProgressStrokesView.setRenderFactory/getRenderFactory를 삭제합니다. (Id9eab, b/436656418)
  • PdfViewPdfViewerPageAlignment API 추가 (I9c9a5, b/438065228)
  • PdfViewer 컴포저블에서 선택 메뉴 API 노출 (Id9b0f, b/407663999)
  • PdfViewViewGroup로 만듭니다. 임의의 하위 요소는 지원되지 않습니다. (Ib51d8, b/410008792)
  • PdfView에서 HyperLinkSelectionGoToLinkSelection 노출 (I378c4, b/441280002)
  • 일반 선택을 지원하도록 PdfPageContent 리팩터링 (I28f16, b/437845185)
  • PdfView에서 선택 메뉴 API 노출 (Idd547, b/407663737)
  • 선택 관련 클래스를 전용 패키지로 이동 (I953cb, b/436157691)
  • PdfViewerFragment에서 PdfView 액세스를 위한 실험용 onPdfViewCreated 도입 (I86715, b/422620454)
  • PdfLoaderFileDescriptor API 추가 (I60b8d)

버그 수정

  • 입력 모델링을 개선하여 획이 입력을 더 정확하게 반영하도록 함 (I93097)

외부 기여

  • 링크 선택 메뉴 항목에 PdfSelectionMenuKeys 노출
  • PdfViewer 컴포저블에서 선택 메뉴 API 노출
  • PdfView에서 선택 메뉴 API 노출

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

알려진 문제

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

참고

  • compileSdk을 35 5dc41be로 업데이트