웹 페이지를 이미지 또는 PDF로 변환하는 무료 PHP 라이브러리
소프트웨어 개발자가 몇 줄의 PHP 코드만으로 웹 페이지를 이미지 또는 PDF로 변환할 수 있게 해 주는 오픈소스 PHP 라이브러리
오늘날 디지털 시대에 웹 개발과 디자인은 그 어느 때보다 중요해졌습니다. 이 과정에서 중요한 측면 중 하나는 웹 페이지가 다양한 브라우저와 디바이스에서 의도한 대로 보이고 작동하도록 보장하는 것입니다. 웹 페이지의 스크린샷을 찍고 다른 파일 형식으로 내보내는 작업은 매우 유용하지만 복잡한 과정입니다. 이런 작업을 쉽게 해 주는 도구 중 하나가 Browsershot입니다. 직관적인 API를 제공하여 개발자가 손쉽게 스크린샷을 만들 수 있게 해 줍니다. 헤드리스 브라우저 설정의 복잡성을 추상화하고 깔끔하고 직관적인 인터페이스를 제공합니다.
Browsershot은 인기 있는 PHP 라이브러리로, 몇 줄의 PHP 코드만으로 웹 페이지의 고품질 스크린샷을 만들고 이를 웹 페이지, 이미지 또는 PDF로 변환할 수 있습니다. Google이 개발한 Node.js 라이브러리인 Puppeteer의 힘을 활용해 헤드리스 Chrome 또는 Chromium 브라우저 인스턴스를 제어하여 웹 페이지와 상호 작용하고 스크린샷을 캡처합니다. 개발자는 웹사이트 스크린샷 캡처 과정을 쉽게 자동화하여 시간과 노력을 크게 절감할 수 있습니다. 특히 여러 웹 페이지의 스크린샷을 캡처하거나 정기적인 시각적 회귀 테스트를 수행할 때 유용합니다.
Browsershot 라이브러리는 스크린샷 생성 과정을 사용자 정의할 수 있는 다양한 설정 옵션을 제공합니다. 개발자는 뷰포트 크기를 설정하고, 스크린샷 캡처 전 딜레이를 조정하며, 출력 형식(PNG 또는 JPEG 등)을 정의하고, 전체 페이지 스크린샷 또는 웹 페이지 내 특정 요소의 스크린샷을 캡처하고, 심지어 스크린샷을 찍기 전 웹 페이지에 사용자 정의 CSS 스타일을 적용할 수 있습니다. 이는 PHP 라이브러리이며 기존 PHP 프로젝트에 쉽게 통합될 수 있습니다. 효율적인 스크린샷 자동화를 찾고 있는 PHP 개발자라면 Browsershot을 꼭 살펴볼 가치가 있습니다.
Browsershot 시작하기
Browsershot을 설치하는 가장 권장되고 쉬운 방법은 PHP용 의존성 관리 도구인 Composer를 사용하는 것입니다. 원활한 설치를 위해 아래 명령어를 사용하세요.
Composer로 Browsershot 설치
composer require spatie/browsershot 수동으로 설치하려면 GitHub 저장소에서 최신 릴리스 파일을 직접 다운로드하면 됩니다.
PHP API를 통한 이미지 생성
오픈소스 Browsershot 라이브러리를 사용하면 소프트웨어 개발자가 PHP API를 사용해 HTML 파일을 로드하고 다양한 이미지 파일 형식으로 변환할 수 있습니다. 기본적으로 스크린샷 크기는 사용자의 데스크탑 해상도와 일치하지만 필요에 따라 맞춤 설정이 가능합니다. 이 라이브러리는 전체 페이지 스크린샷 촬영, 그레이스케일 이미지 생성, 디바이스 스케일 설정, 모바일 뷰 에뮬레이션, 페이지 캡처 시 JavaScript 비활성화, URL 차단, 스크린샷 전 CSS 스타일 추가, 이미지를 바로 브라우저에 출력 등 여러 중요한 기능을 포함하고 있습니다. 아래 예시는 PHP API를 사용해 그레이스케일 이미지를 만드는 방법을 보여줍니다.
PHP API로 그레이스케일 이미지 만들기
Browsershot::url('https://example.com')
->windowSize(640, 480)
->greyscale()
->save($pathToImage);
PHP 라이브러리를 통한 PDF 생성
오픈소스 Browsershot 라이브러리를 사용하면 소프트웨어 개발자가 PHP 애플리케이션 내에서 웹 페이지를 PDF 파일로 손쉽게 저장할 수 있습니다. 저장 메서드에 전달된 경로에 PDF 확장자가 있으면 PDF가 저장됩니다. 라이브러리에는 PDF 생성과 관련된 여러 중요한 기능이 포함되어 있으며, PDF 페이지의 너비와 높이 지정, 여백 설정, 헤더와 푸터 추가, 헤더 또는 푸터 숨기기, HTML 페이지 배경 추가, 가로 모드 지원, 특정 페이지 내보내기, 초기 페이지 번호 설정 등이 있습니다. 아래 예시는 HTML 페이지에서 PDF를 생성하면서 헤더와 푸터를 추가하는 방법을 보여줍니다.
PHP 코드를 사용해 PDF 생성 시 헤더와 푸터를 추가하는 방법은?
Browsershot::html($someHtml)
->showBrowserHeaderAndFooter()
->headerHtml($someHtml)
->footerHtml($someHtml)
->save('example.pdf');
헤드리스 Chrome 및 Puppeteer 통합
Browsershot utilizes the power of headless Chrome or Puppeteer to render web pages accurately. This ensures that the screenshots generated by Browsershot match the actual appearance of the web page in a browser. Additionally, Browsershot supports both local and remote browsers, giving you the freedom to choose the most suitable setup for your needs. Browsershot leverages headless Chrome or Puppeteer to ensure that the rendered web pages closely match their appearance in a real browser. This guarantees consistent and accurate screenshots, providing reliable visual representation for documentation and testing purposes.