Sign inSign up

skyezhang/p2w

By skyezhang

•Updated over 2 years ago

Page to what? Convert web pages to PDF or images

Image
Web servers
0

126

skyezhang/p2w repository overview

⁠P2W - Page To What

P2W is a web page converted to PDF or image tool, provides command and http api

CodeQL

Security Rating Maintainability Rating Reliability Rating Vulnerabilities Bugs

⁠Install

If you're not using Docker, you'll need to have Chrome installed before you can use it.

⁠Executable File

First you need to download the P2W executable file according to your operating system.

If you are using Linux, place the executable in the /usr/local/bin directory.

If you are using Windows, place the executable in any directory in the PATH environment variable.

⁠Docker
docker run -d -p 12800:12800 --name p2w skyezhang/p2w

⁠Use

⁠Use from the command line

P2W provides pdf and image commands.

  • Public Flags
    • --url/-u: URL to be converted.
    • --path/-p: output path after conversion (default . /)
    • --code/-c: the code that identifies the conversion task
    • ---send/-s: the address to send the converted file to.
  • image Dedicated Flags
    • --element/-e: intercept element
    • --quality/-q: image quality (default 90)

Note that path and send can only be used interchangeably, with the send tag taking precedence.

# Export PDF to current path
p2w pdf -u="https://github.com" -p="./"
# Send PDF to specified address
p2w pdf -u="https://github.com" -c="github" -s="http://localhost:8080/test"

# Output full page image to current path
p2w image -u="https://github.com" -p="./" -q="90"
# Send the full page image to the specified address
p2w image -u="https://github.com" -q="90" -c="github" -s="http://localhost:8080/test"

# Outputs an image of the specified element to the current path
p2w image -u="https://github.com" -p="./" -q="90" -e=".application-main"
# Sends an image of a specified element to a specified address
p2w image -u="https://github.com" -q="90" -e=".application-main" -c="github" -s="http://localhost:8080/test"
⁠Used through the HTTP interface

P2W provides two GET interfaces, /api/pdf and /api/img.

  • public parameters
    • url: the url to be converted
    • code: the code of the conversion task
    • send: the address to send the converted file to
  • image special parameters
    • element: the element to be captured
    • quality: quality of the image (default 90)

Please note that you need to start the HTTP server with the command line command server to access it.

p2w server -p="12800"

⁠Packaging and compilation

⁠Compile the executable
go mod download
go mod tidy
# Packaging for the current platform
go build -o p2w -ldflags '-s -w'

# MacOS
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o p2w -ldflags '-s -w'
# Linux
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o p2w -ldflags '-s -w'
# Windows
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o p2w -ldflags '-s -w'
⁠Packaging Docker images
# Compile the Linux version first
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o p2w -ldflags '-s -w'
# Then build the image in the directory
docker build -t skyezhang/p2w:1.0.0 .

Tag summary

Content type

Image

Digest

sha256:7fce6fca8…

Size

196.9 MB

Last updated

over 2 years ago

docker pull skyezhang/p2w:1.0.1