https://github.com/skye-z/p2w
Page to what? Convert web pages to PDF or images
https://github.com/skye-z/p2w
convert go image integrated lightweight page-to-image page-to-pdf pdf
Last synced: 7 months ago
JSON representation
Page to what? Convert web pages to PDF or images
- Host: GitHub
- URL: https://github.com/skye-z/p2w
- Owner: skye-z
- License: gpl-3.0
- Created: 2023-07-12T11:42:16.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-02-28T04:33:17.000Z (over 2 years ago)
- Last Synced: 2024-12-28T13:18:44.847Z (over 1 year ago)
- Topics: convert, go, image, integrated, lightweight, page-to-image, page-to-pdf, pdf
- Language: Go
- Homepage:
- Size: 95.7 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# P2W - Page To What
[中文](README_zh.md)
P2W is a web page converted to PDF or image tool, provides command and http api
[](go.work)
[](control)
[](https://github.com/skye-z/p2w/security/code-scanning)
[](https://sonarcloud.io/summary/new_code?id=skye-z_p2w)
[](https://sonarcloud.io/summary/new_code?id=skye-z_p2w)
[](https://sonarcloud.io/summary/new_code?id=skye-z_p2w)
[](https://sonarcloud.io/summary/new_code?id=skye-z_p2w)
[](https://sonarcloud.io/summary/new_code?id=skye-z_p2w)
## TODO
* [x] Command
* [x] PDF
* [x] Image
* [x] Server
* [x] API
* [x] PDF
* [x] 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
```shell
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.
```shell
# 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.
``` shell
p2w server -p="12800"
```
## Packaging and compilation
### Compile the executable
```shell
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
```shell
# 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 .
```