Python에서 PDF 페이지 속성 가져오기 및 설정하기
.NET을 통한 파이썬용 Aspose.PDF 파일을 사용하면 파이썬 응용 프로그램에서 PDF 파일의 페이지 속성을 읽고 설정할 수 있습니다.이 단원에서는 PDF 파일의 페이지 수를 가져오는 방법, 색상과 같은 PDF 페이지 속성에 대한 정보를 가져오는 방법, 페이지 속성을 설정하는 방법을 보여줍니다.예제에서는 다음을 사용합니다. Document 과 PageCollection API는 파이썬으로 작성되었습니다.
문서 분석 또는 정규화 작업의 일환으로 페이지 메타데이터를 검사하거나, 페이지 수를 확인하거나, 페이지 수준 특성을 업데이트해야 할 때 이 가이드를 사용하십시오.
PDF 파일의 페이지 수 가져오기
문서 작업을 할 때 문서에 포함된 페이지 수를 알고 싶어하는 경우가 많습니다.Aspose.PDF 를 사용하면 코드를 두 줄만 사용해도 됩니다.
PDF 파일의 페이지 수를 구하려면:
- 를 사용하여 PDF 파일을 엽니다. 문서 수업.
- 그런 다음 사용 페이지 컬렉션 컬렉션의 Count 속성 (Document 객체에서) 을 사용하여 문서의 총 페이지 수를 가져옵니다.
다음 코드 스니펫은 PDF 파일의 페이지 수를 가져오는 방법을 보여줍니다.
import sys
import aspose.pdf as ap
from os import path
def get_page_count(input_file_name):
# Open document
document = ap.Document(input_file_name)
# Get page count
print("Page Count:", str(len(document.pages)))
문서를 저장하지 않고 페이지 수 가져오기
때로는 PDF 파일을 즉시 생성하고 PDF 파일 작성 중에 파일을 시스템이나 스트림에 저장하지 않고 PDF 파일의 페이지 수를 가져와야 하는 요구 사항 (목차 작성 등) 이 발생할 수 있습니다.따라서 이러한 요구 사항을 충족하기 위한 한 가지 방법이 있습니다. 프로세스_단락 () 문서 클래스에 도입되었습니다.문서를 저장하지 않고 페이지 수를 가져오는 단계를 보여주는 다음 코드 스니펫을 살펴보세요.
import sys
import aspose.pdf as ap
from os import path
def get_page_count_without_saving(input_file_name):
# Instantiate Document instance
document = ap.Document()
# Add page to pages collection of PDF file
page = document.pages.add()
# Create loop instance
for _ in range(0, 300):
# Add TextFragment to paragraphs collection of page object
page.paragraphs.add(ap.text.TextFragment("Pages count test"))
# Process the paragraphs in PDF file to get accurate page count
document.process_paragraphs()
# Print number of pages in document
print("Number of pages in document =", str(len(document.pages)))
페이지 속성 가져오기
PDF 파일의 각 페이지에는 너비, 높이, 블리드, 크롭 및 트림박스와 같은 다양한 속성이 있습니다.Aspose.PDF 를 사용하면 이러한 속성에 액세스할 수 있습니다.
페이지 속성에 대한 이해: 아트박스, 블리드박스, 크롭박스, 미디어박스, 트림박스, 렉트 프로퍼티의 차이점
- 미디어 상자: 미디어 상자는 가장 큰 페이지 상자입니다.문서를 PostScript 또는 PDF로 인쇄할 때 선택한 페이지 크기 (예: A4, A5, US Letter 등) 에 해당합니다.즉, 미디어 상자는 PDF 문서를 표시하거나 인쇄하는 데 사용되는 미디어의 실제 크기를 결정합니다.
- 블리드 박스: 문서에 블리드가 있는 경우 PDF에도 블리드 박스가 표시됩니다.블리드는 페이지 가장자리를 벗어나는 색상 (또는 아트워크) 의 양입니다.문서를 인쇄하고 크기에 맞게 잘라낼 때 (“트리밍”) 잉크가 페이지 가장자리까지 들어가도록 하는 데 사용됩니다.페이지의 트리밍이 잘못되어도 (트림 표시가 약간 잘려서) 페이지에 흰색 가장자리가 나타나지 않습니다.
- 트림 상자: 트림 상자는 인쇄 및 트리밍 후 문서의 최종 크기를 나타냅니다.
- 아트 박스: 아트 박스는 문서에 있는 페이지의 실제 내용 주위에 그려진 상자입니다.이 페이지 상자는 다른 응용 프로그램에서 PDF 문서를 가져올 때 사용됩니다.
- 자르기 상자: 자르기 상자는 Adobe Acrobat에서 PDF 문서가 표시되는 “페이지” 크기입니다.일반 보기에서는 오려내기 상자의 내용만 Adobe Acrobat에 표시됩니다.
이러한 속성에 대한 자세한 설명은 Adobe.Pdf 사양, 특히 10.10.1 페이지 경계를 참조하십시오.
– Page.Rect: 미디어박스와 드롭박스의 교차점 (흔히 보이는 직사각형) (
Page.rect).를 참조하십시오.Rectangle직사각형 속성에 대한 유형아래 그림은 이러한 속성을 보여줍니다.
자세한 내용은 다음 사이트를 참조하십시오. 이 페이지.
페이지 속성 액세스
더 페이지 클래스는 특정 PDF 페이지와 관련된 모든 속성을 제공합니다.PDF 파일의 모든 페이지는 에 포함되어 있습니다. 문서 사물의 페이지 컬렉션 컬렉션.
거기에서 각 개인에 액세스할 수 있습니다. Page 인덱스를 사용하는 객체 또는 컬렉션을 반복하여 모든 페이지를 가져옵니다.개별 페이지에 액세스하면 해당 속성을 가져올 수 있습니다.다음 코드 스니펫은 페이지 속성을 가져오는 방법을 보여줍니다 ( Page API).
import sys
import aspose.pdf as ap
from os import path
def get_page_properties(input_file_name):
# Open document
document = ap.Document(input_file_name)
# Get particular page
page = document.pages[1]
# Get page properties
boxes = {
"ArtBox": page.art_box,
"BleedBox": page.bleed_box,
"CropBox": page.crop_box,
"MediaBox": page.media_box,
"TrimBox": page.trim_box,
"Rect": page.rect,
}
# Print box properties
for box_name, box in boxes.items():
print(
f"{box_name} : Height={box.height},Width={box.width},LLX={box.llx},LLY={box.lly},URX={box.urx},URY={box.ury}"
)
# Print other page properties
print(f"Page Number : {page.number}")
print(f"Rotate : {page.rotate}")
페이지 색상 결정
더 페이지 클래스는 페이지에서 사용하는 색상 유형 (RGB, 흑백, 회색조 또는 정의되지 않음) 을 포함하여 PDF 문서의 특정 페이지와 관련된 속성을 제공합니다.
PDF 파일의 모든 페이지는 다음에 포함되어 있습니다. 페이지 컬렉션 컬렉션.더 색상_유형 속성은 페이지의 요소 색상을 지정합니다.특정 PDF 페이지의 색상 정보를 가져오거나 결정하려면 다음을 사용하십시오. 페이지 사물의 색상_유형 재산.
다음 코드 스니펫은 PDF 파일의 개별 페이지를 반복하여 색상 정보를 가져오는 방법을 보여줍니다.
import sys
import aspose.pdf as ap
from os import path
def get_page_color_type(input_file_name):
# Open source PDF file
document = ap.Document(input_file_name)
# Iterate through all the page of PDF file
for page_number in range(1, len(document.pages) + 1):
# Get the color type information for particular PDF page
page_color_type = document.pages[page_number].color_type
color_type_map = {
ap.ColorType.BLACK_AND_WHITE: "Black and white",
ap.ColorType.GRAYSCALE: "Gray Scale",
ap.ColorType.RGB: "RGB",
ap.ColorType.UNDEFINED: "undefined",
}
color_description = color_type_map.get(page_color_type, "unknown")
print(f"Page # {page_number} is {color_description}.")