Use Node to generate PDF instead
This commit is contained in:
parent
381097c839
commit
ec95ee8f12
68
.gitignore
vendored
68
.gitignore
vendored
@ -1,6 +1,4 @@
|
|||||||
book.pdf
|
# Created by https://www.gitignore.io/api/node,ruby,linux,jekyll
|
||||||
|
|
||||||
# Created by https://www.gitignore.io/api/ruby,linux,jekyll
|
|
||||||
|
|
||||||
### Jekyll ###
|
### Jekyll ###
|
||||||
_site/
|
_site/
|
||||||
@ -22,6 +20,67 @@ _site/
|
|||||||
# .nfs files are created when an open file is removed but is still being accessed
|
# .nfs files are created when an open file is removed but is still being accessed
|
||||||
.nfs*
|
.nfs*
|
||||||
|
|
||||||
|
### Node ###
|
||||||
|
# Logs
|
||||||
|
logs
|
||||||
|
*.log
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
|
||||||
|
# Runtime data
|
||||||
|
pids
|
||||||
|
*.pid
|
||||||
|
*.seed
|
||||||
|
*.pid.lock
|
||||||
|
|
||||||
|
# Directory for instrumented libs generated by jscoverage/JSCover
|
||||||
|
lib-cov
|
||||||
|
|
||||||
|
# Coverage directory used by tools like istanbul
|
||||||
|
coverage
|
||||||
|
|
||||||
|
# nyc test coverage
|
||||||
|
.nyc_output
|
||||||
|
|
||||||
|
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
|
||||||
|
.grunt
|
||||||
|
|
||||||
|
# Bower dependency directory (https://bower.io/)
|
||||||
|
bower_components
|
||||||
|
|
||||||
|
# node-waf configuration
|
||||||
|
.lock-wscript
|
||||||
|
|
||||||
|
# Compiled binary addons (http://nodejs.org/api/addons.html)
|
||||||
|
build/Release
|
||||||
|
|
||||||
|
# Dependency directories
|
||||||
|
node_modules/
|
||||||
|
jspm_packages/
|
||||||
|
|
||||||
|
# Typescript v1 declaration files
|
||||||
|
typings/
|
||||||
|
|
||||||
|
# Optional npm cache directory
|
||||||
|
.npm
|
||||||
|
|
||||||
|
# Optional eslint cache
|
||||||
|
.eslintcache
|
||||||
|
|
||||||
|
# Optional REPL history
|
||||||
|
.node_repl_history
|
||||||
|
|
||||||
|
# Output of 'npm pack'
|
||||||
|
*.tgz
|
||||||
|
|
||||||
|
# Yarn Integrity file
|
||||||
|
.yarn-integrity
|
||||||
|
|
||||||
|
# dotenv environment variables file
|
||||||
|
.env
|
||||||
|
|
||||||
|
|
||||||
### Ruby ###
|
### Ruby ###
|
||||||
*.gem
|
*.gem
|
||||||
*.rbc
|
*.rbc
|
||||||
@ -34,6 +93,7 @@ _site/
|
|||||||
/test/tmp/
|
/test/tmp/
|
||||||
/test/version_tmp/
|
/test/version_tmp/
|
||||||
/tmp/
|
/tmp/
|
||||||
|
package-lock.json
|
||||||
|
|
||||||
# Used by dotenv library to load environment variables.
|
# Used by dotenv library to load environment variables.
|
||||||
# .env
|
# .env
|
||||||
@ -74,4 +134,4 @@ build-iPhoneSimulator/
|
|||||||
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
|
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
|
||||||
.rvmrc
|
.rvmrc
|
||||||
|
|
||||||
# End of https://www.gitignore.io/api/ruby,linux,jekyll
|
# End of https://www.gitignore.io/api/node,ruby,linux,jekyll
|
||||||
|
41
utils/convert_to_pdf.js
Normal file
41
utils/convert_to_pdf.js
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
---
|
||||||
|
---
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
const puppeteer = require("puppeteer")
|
||||||
|
const fs = require("fs")
|
||||||
|
const os = require("os")
|
||||||
|
|
||||||
|
var links = {{ site.data.links_en | jsonify }};
|
||||||
|
|
||||||
|
(async() => {
|
||||||
|
const browser = await puppeteer.launch()
|
||||||
|
const page = await browser.newPage()
|
||||||
|
|
||||||
|
var root = "file:///" + __dirname + "/../en/"
|
||||||
|
console.log("Root is: " + root)
|
||||||
|
|
||||||
|
for (var i = 0; i < links.length; i++) {
|
||||||
|
var link = links[i]
|
||||||
|
if (link.link) {
|
||||||
|
console.log("Rendering " + link.title)
|
||||||
|
await page.goto(root + link.link, {waitUntil: "networkidle"})
|
||||||
|
|
||||||
|
// page.pdf() is currently supported only in headless mode.
|
||||||
|
// @see https://bugs.chromium.org/p/chromium/issues/detail?id=753118
|
||||||
|
const margin = "0.2in"
|
||||||
|
await page.pdf({
|
||||||
|
path: "tmp/page_" + (link.num || ("0_" + link.title.replace(".", "_"))) + ".pdf",
|
||||||
|
format: "A5",
|
||||||
|
margin: {
|
||||||
|
top: margin,
|
||||||
|
right: margin,
|
||||||
|
bottom: margin,
|
||||||
|
left: margin,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
browser.close()
|
||||||
|
|
||||||
|
})()
|
@ -1,25 +1,6 @@
|
|||||||
---
|
|
||||||
---
|
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
oldCWD="$PWD"
|
jekyll build
|
||||||
cd $(dirname $0)
|
mkdir -p tmp
|
||||||
cd ../en/
|
n use latest _site/utils/convert_to_pdf.js
|
||||||
|
pdfunite tmp/page*.pdf tmp/book.pdf
|
||||||
#wkhtmltopdf --print-media-type {% for link in site.data.links_en %}{% if link.link %}{{ link.link }} {% endif %}{% endfor %} out.pdf
|
|
||||||
#mv out.pdf $oldCWD/book.pdf
|
|
||||||
|
|
||||||
{% for link in site.data.links_en %}
|
|
||||||
{% if link.link %}
|
|
||||||
/opt/google/chrome/google-chrome --headless --disable-gpu --print-to-pdf file:///${PWD}/{{ link.link }}
|
|
||||||
|
|
||||||
{% if link.num %}
|
|
||||||
mv output.pdf page_{{ link.num }}.pdf
|
|
||||||
{% else %}
|
|
||||||
mv output.pdf page_0_{{ link.link | replace:".","_" }}.pdf
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% endif %}
|
|
||||||
{% endfor %}
|
|
||||||
|
|
||||||
pdfunite page*.pdf ${oldCWD}/book.pdf
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user