All Projects → Courtsite → shuttlepdf

Courtsite / shuttlepdf

Licence: MIT license
📃 Smashingly simple, and scalable ("serverless") HTML to PDF conversions using Google Cloud Functions, and Puppeteer.

Programming Languages

javascript
184084 projects - #8 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to shuttlepdf

go-bqloader
bqloader is a simple ETL framework to load data from Cloud Storage into BigQuery.
Stars: ✭ 16 (+6.67%)
Mutual labels:  google-cloud, google-cloud-functions
stackdriver-to-discord
[Unmaintained] ⚙️ A simple Google Cloud Function in Go to transform / proxy Stackdriver Static Webhook notifications to Discord.
Stars: ✭ 18 (+20%)
Mutual labels:  google-cloud, google-cloud-functions
puppeteer-report
Convert HTML to PDF by Puppeteer with support of adding a custom header, footer, and page number
Stars: ✭ 90 (+500%)
Mutual labels:  html-to-pdf, puppeteer
Cezanne
🎣 Serverless Image Generation Function
Stars: ✭ 29 (+93.33%)
Mutual labels:  google-cloud, puppeteer
puppeteer-proxy
Proxies Puppeteer Page requests.
Stars: ✭ 172 (+1046.67%)
Mutual labels:  puppeteer
pdf
Micro-service for generating PDF files using Puppeteer with an Express API
Stars: ✭ 16 (+6.67%)
Mutual labels:  puppeteer
Docotic.Pdf.Samples
C# and VB.NET samples for Docotic.Pdf library
Stars: ✭ 52 (+246.67%)
Mutual labels:  html-to-pdf
http-server-pwa
👾 http-server alike but for serving and rendering PWA: pwa-server
Stars: ✭ 14 (-6.67%)
Mutual labels:  puppeteer
gocloud
☁️ Go API for open cloud
Stars: ✭ 113 (+653.33%)
Mutual labels:  google-cloud
spanner-bench
Google Cloud Spanner Query Planner Benchmarking
Stars: ✭ 24 (+60%)
Mutual labels:  google-cloud
dynamic-cloud-dns
Dynamic DNS with Google Cloud Functions
Stars: ✭ 30 (+100%)
Mutual labels:  google-cloud-functions
ob bulkstash
Bulk Stash is a docker rclone service to sync, or copy, files between different storage services. For example, you can copy files either to or from a remote storage services like Amazon S3 to Google Cloud Storage, or locally from your laptop to a remote storage.
Stars: ✭ 113 (+653.33%)
Mutual labels:  google-cloud
purr
PURR (PUppeteer RunneR) is a devops-friendly tool for browser testing and monitoring.
Stars: ✭ 37 (+146.67%)
Mutual labels:  puppeteer
readme-ascii
Turns text into images of ASCII art for GitHub README files.
Stars: ✭ 48 (+220%)
Mutual labels:  puppeteer
clojure-app-engine
A skeleton to get started with Clojure on Google App Engine
Stars: ✭ 13 (-13.33%)
Mutual labels:  google-cloud
Puppetry
基于Puppeteer的页面E2E测试GUI工具
Stars: ✭ 35 (+133.33%)
Mutual labels:  puppeteer
awesome-bigquery-views
Useful SQL queries for Blockchain ETL datasets in BigQuery.
Stars: ✭ 325 (+2066.67%)
Mutual labels:  google-cloud
count
Comparing serverless platforms
Stars: ✭ 27 (+80%)
Mutual labels:  google-cloud
hardcider
🍺 CLI for quickly generating citations for websites and books
Stars: ✭ 17 (+13.33%)
Mutual labels:  puppeteer
simplechrome
Webrecorders DevTools Protocol Automation Library
Stars: ✭ 16 (+6.67%)
Mutual labels:  puppeteer

shuttlepdf

📃 Smashingly simple, and scalable ("serverless") HTML to PDF conversions using Google Cloud Functions, and Puppeteer.

Getting Started

Prerequisites

  • Ensure you have gcloud installed:
  • Ensure you have authenticated with Google Cloud: gcloud init
  • (Optional) Set your current working project: gcloud config set project <project>

Deployment

  1. Clone / download a copy of this repository
  2. Run ./deploy.sh
  3. Enter yes for "Allow unauthenticated invocations of new function" (unless you want to expose your function privately, and in other ways)
  4. Test it out! e.g. https://<region>-<project>.cloudfunctions.net/pdfByURL?url=https://www.bbc.co.uk

Update deploy.sh to suit your needs (e.g. higher timeouts, different region, more memory, etc).

Performance

It is worth mentioning that the average processing time for a standard web page (using the default 1024MB set in deploy.sh) is between 5-15s.

This can potentially be improved by increasing the memory (as doing so will increase the CPU alongside it).

If you are dealing with lots of requests or if you require lower latencies, you may want to consider running a serverful converter, e.g. https://github.com/gotenberg/gotenberg

We also suggest pairing the serverful converter with a workflow engine like Temporal if you have relatively complex processing pipelines or if you require strong guarantees (SLAs) around conversions.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].