Go에서 문서 로드하는 방법

Go에서 문서 로드하는 방법

Aspose.PDF FOSS for Go는 파일 경로, io.Reader, 혹은 비밀번호로 보호된 두 소스 중 하나에서 PDF를 로드하며, 항상 작업할 수 있는 *Document 값을 반환합니다. 이 라이브러리는 go get로 설치되는 Go 모듈입니다.

단계별 가이드

1단계: 패키지 설치

프로젝트에 모듈을 추가하세요:

go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-go

모듈이 해결되는지 확인하세요:

import asposepdf "github.com/aspose-pdf-foss/aspose-pdf-foss-for-go"

Step 2: 필수 클래스 가져오기

import (
	pdf "github.com/aspose-pdf-foss/aspose-pdf-foss-for-go"
)

Step 3: 파일 경로에서 PDF 로드

pdf.Open은(는) PDF 파일을 로드하고 *Document와 오류를 반환합니다:

doc, err := pdf.Open("testdata/4pages.pdf")
if err != nil {
	panic(err)
}
fmt.Println(doc.PageCount(), "pages")

Step 4: 암호로 보호된 PDF 로드

pdf.OpenWithPassword은(는) 사용자 비밀번호로 암호화된 파일을 엽니다:

doc, err := pdf.OpenWithPassword("locked.pdf", "secret")
if err != nil {
	panic(err)
}
fmt.Println("opened:", doc.PageCount(), "pages")

Step 5: 스트림에서 PDF 로드

pdf.OpenStream은(는) io.Reader에서 PDF를 읽습니다 — 네트워크 응답, 메모리 버퍼, 또는 별도로 연 파일 중 하나입니다. pdf.OpenStreamWithPassword는 스트림용 암호 보호 버전입니다:

f, err := os.Open("input.pdf")
if err != nil {
	panic(err)
}
defer f.Close()

doc, err := pdf.OpenStream(f)
if err != nil {
	panic(err)
}
fmt.Println(doc.PageCount(), "pages")

// For an encrypted stream, open a separate reader and pass a password:
f2, _ := os.Open("locked.pdf")
defer f2.Close()
doc2, err := pdf.OpenStreamWithPassword(f2, "secret")
if err != nil {
	panic(err)
}
fmt.Println(doc2.PageCount(), "pages (encrypted)")

Step 6: 로드된 문서 검사

로드되면, Document.PageCount는 전체 페이지 수를 보고하고, Document.Page(n)은 1부터 시작하는 인덱스로 단일 페이지를 가져옵니다:

doc, err := pdf.Open("testdata/4pages.pdf")
if err != nil {
	panic(err)
}
fmt.Printf("Page count: %d\n", doc.PageCount())

page, err := doc.Page(1)
if err != nil {
	panic(err)
}
size, err := page.Size()
if err != nil {
	panic(err)
}
fmt.Printf("Page 1 size: %.0f x %.0f pt\n", size.Width, size.Height)

일반적인 문제 및 해결 방법

OpenWithPassword 올바른 비밀번호라고 생각되는 것을 입력한 후에도 여전히 실패합니다

OpenWithPassword에 잘못된 비밀번호를 제공하면 nil이 아닌 오류가 발생합니다. 비밀번호는 대소문자를 구분하므로, 원본 PDF에 설정된 정확한 사용자 비밀번호를 확인하십시오.

OpenStream 암호화된 PDF에서 오류를 반환합니다

OpenStream는 암호화된 PDF를 열 수 없습니다. 대신 비밀번호로 보호된 스트림에는 OpenStreamWithPassword을 사용하십시오.

필요한가요 OpenWithPassword 암호화되지 않은 PDF에 대해?

아니요 — OpenWithPassword를 통해 암호화되지 않은 파일을 여는 것이 허용되며 일반 Open 호출과 동일하게 동작하므로 파일이 암호화되었는지 확실하지 않을 때 OpenWithPassword를 사용하는 것이 안전합니다.

Document.Page(n) 성공 후 오류를 반환합니다 Open

페이지 번호가 범위를 벗어났습니다. Page은(는) 1과 Document.PageCount() 사이의 1 기반 인덱스를 사용합니다; 범위를 확인하려면 먼저 PageCount()를 호출하십시오.


자주 묻는 질문

어떤 파일 형식을 Open로 로드할 수 있나요?

Open, OpenWithPassword, OpenStream, 및 OpenStreamWithPassword은 모두 PDF 입력만을 독점적으로 허용합니다.

디스크가 아닌 메모리에 이미 있는 PDF를 어떻게 로드하나요?

바이트 슬라이스를 bytes.Reader ( io.Reader을 만족하는 )에 넣고 pdf.OpenStream에 전달하거나, 바이트가 암호화된 PDF를 나타내는 경우 pdf.OpenStreamWithPassword을 사용하십시오.

비밀번호로 보호된 PDF를 어떻게 로드하나요?

파일 경로의 경우 pdf.OpenWithPassword(path, password)을(를) 호출하고, 스트림의 경우 pdf.OpenStreamWithPassword(r, password)을(를) 호출하십시오.

로드된 페이지 수를 어떻게 확인하나요?

반환된 *Document에 Document.PageCount()을(를) 호출하십시오.

참조

 한국어