Skip to content
/ p2w Public

Page to what? Convert web pages to PDF or images

License

Notifications You must be signed in to change notification settings

skye-z/p2w

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

TODO

  • Command
    • PDF
    • Image
    • Server
  • API
    • PDF
    • Image

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 ghcr.io/skye-z/p2w:latest

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 skye-z/p2w:1.0.0 .