mirror of
https://github.com/JuanCanham/HackMyResume.git
synced 2024-11-22 00:10:15 +00:00
Add weasyprint pdf generator support.
Note: This is based off <https://github.com/hacksalot/HackMyResume/pull/185> because I changed the generator expected arguments in that branch.
This commit is contained in:
parent
7e2a3c3e7e
commit
419c935d82
12
README.md
12
README.md
@ -62,9 +62,9 @@ Alternately, install the latest bleeding-edge version (updated daily):
|
|||||||
HackMyResume tries not to impose a specific PDF engine requirement on
|
HackMyResume tries not to impose a specific PDF engine requirement on
|
||||||
the user, but will instead work with whatever PDF engines you have installed.
|
the user, but will instead work with whatever PDF engines you have installed.
|
||||||
|
|
||||||
Currently, HackMyResume's PDF generation requires either [Phantom.js][2] or
|
Currently, HackMyResume's PDF generation requires either [Phantom.js][2],
|
||||||
[wkhtmltopdf][3] to be installed on your system and the `phantomjs` and/or
|
[wkhtmltopdf][3], or [WeasyPrint][11] to be installed on your system and the
|
||||||
`wkhtmltopdf` binaries to be accessible on your PATH. This is an optional
|
corresponding binary to be accessible on your PATH. This is an optional
|
||||||
requirement for users who care about PDF formats. If you don't care about PDF
|
requirement for users who care about PDF formats. If you don't care about PDF
|
||||||
formats, skip this step.
|
formats, skip this step.
|
||||||
|
|
||||||
@ -320,7 +320,8 @@ PDF engine you have installed through the engine's command-line interface (CLI).
|
|||||||
Currently that means one or both of...
|
Currently that means one or both of...
|
||||||
|
|
||||||
- [wkhtmltopdf][3]
|
- [wkhtmltopdf][3]
|
||||||
- [Phantom.js][3]
|
- [Phantom.js][2]
|
||||||
|
- [WeasyPrint][11]
|
||||||
|
|
||||||
..with support for other engines planned in the future. But for now, **one or
|
..with support for other engines planned in the future. But for now, **one or
|
||||||
both of these engines must be installed and accessible on your PATH in order to
|
both of these engines must be installed and accessible on your PATH in order to
|
||||||
@ -330,6 +331,7 @@ invoke either of these tools directly from your shell or terminal without error:
|
|||||||
```bash
|
```bash
|
||||||
wkhtmltopdf input.html output.pdf
|
wkhtmltopdf input.html output.pdf
|
||||||
phantomjs script.js input.html output.pdf
|
phantomjs script.js input.html output.pdf
|
||||||
|
weasyprint input.html output.pdf
|
||||||
```
|
```
|
||||||
|
|
||||||
Assuming you've installed one or both of these engines on your system, you can
|
Assuming you've installed one or both of these engines on your system, you can
|
||||||
@ -339,6 +341,7 @@ tell HackMyResume which flavor of PDF generation to use via the `--pdf` option
|
|||||||
```bash
|
```bash
|
||||||
hackmyresume BUILD resume.json TO out.all --pdf phantom
|
hackmyresume BUILD resume.json TO out.all --pdf phantom
|
||||||
hackmyresume BUILD resume.json TO out.all --pdf wkhtmltopdf
|
hackmyresume BUILD resume.json TO out.all --pdf wkhtmltopdf
|
||||||
|
hackmyresume BUILD resume.json TO out.all --pdf weasyprint
|
||||||
hackmyresume BUILD resume.json TO out.all --pdf none
|
hackmyresume BUILD resume.json TO out.all --pdf none
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -558,6 +561,7 @@ MIT. Go crazy. See [LICENSE.md][1] for details.
|
|||||||
[8]: https://youtu.be/N9wsjroVlu8
|
[8]: https://youtu.be/N9wsjroVlu8
|
||||||
[9]: https://api.jquery.com/jquery.extend/
|
[9]: https://api.jquery.com/jquery.extend/
|
||||||
[10]: https://github.com/beautify-web/js-beautify
|
[10]: https://github.com/beautify-web/js-beautify
|
||||||
|
[11]: http://weasyprint.org/
|
||||||
[fresh]: https://github.com/fluentdesk/FRESH
|
[fresh]: https://github.com/fluentdesk/FRESH
|
||||||
[fresca]: https://github.com/fluentdesk/FRESCA
|
[fresca]: https://github.com/fluentdesk/FRESCA
|
||||||
[dry]: https://en.wikipedia.org/wiki/Don%27t_repeat_yourself
|
[dry]: https://en.wikipedia.org/wiki/Don%27t_repeat_yourself
|
||||||
|
13
dist/generators/html-pdf-cli-generator.js
vendored
13
dist/generators/html-pdf-cli-generator.js
vendored
@ -117,6 +117,19 @@ Definition of the HtmlPdfCLIGenerator class.
|
|||||||
sourcePath = SLASH(PATH.relative(process.cwd(), tempFile));
|
sourcePath = SLASH(PATH.relative(process.cwd(), tempFile));
|
||||||
destPath = SLASH(PATH.relative(process.cwd(), fOut));
|
destPath = SLASH(PATH.relative(process.cwd(), fOut));
|
||||||
SPAWN('phantomjs', [scriptPath, sourcePath, destPath], false, on_error, this);
|
SPAWN('phantomjs', [scriptPath, sourcePath, destPath], false, on_error, this);
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
Generate a PDF from HTML using WeasyPrint's CLI interface.
|
||||||
|
Spawns a child process with `weasyprint <source> <target>`. Weasy Print
|
||||||
|
must be installed and path-accessible.
|
||||||
|
TODO: If HTML generation has run, reuse that output
|
||||||
|
*/
|
||||||
|
weasyprint: function(markup, fOut, opts, on_error) {
|
||||||
|
var tempFile;
|
||||||
|
tempFile = fOut.replace(/\.pdf$/i, '.pdf.html');
|
||||||
|
FS.writeFileSync(tempFile, markup, 'utf8');
|
||||||
|
SPAWN('weasyprint', [tempFile, fOut], false, on_error, this);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -99,3 +99,17 @@ engines =
|
|||||||
destPath = SLASH PATH.relative( process.cwd(), fOut)
|
destPath = SLASH PATH.relative( process.cwd(), fOut)
|
||||||
SPAWN 'phantomjs', [ scriptPath, sourcePath, destPath ], false, on_error, @
|
SPAWN 'phantomjs', [ scriptPath, sourcePath, destPath ], false, on_error, @
|
||||||
return
|
return
|
||||||
|
|
||||||
|
###*
|
||||||
|
Generate a PDF from HTML using WeasyPrint's CLI interface.
|
||||||
|
Spawns a child process with `weasyprint <source> <target>`. Weasy Print
|
||||||
|
must be installed and path-accessible.
|
||||||
|
TODO: If HTML generation has run, reuse that output
|
||||||
|
###
|
||||||
|
weasyprint: ( markup, fOut, opts, on_error ) ->
|
||||||
|
# Save the markup to a temporary file
|
||||||
|
tempFile = fOut.replace /\.pdf$/i, '.pdf.html'
|
||||||
|
FS.writeFileSync tempFile, markup, 'utf8'
|
||||||
|
|
||||||
|
SPAWN 'weasyprint', [tempFile, fOut], false, on_error, @
|
||||||
|
return
|
||||||
|
Loading…
Reference in New Issue
Block a user