Scaffolding for PDF salad
This commit is contained in:
11
projects/pdf-salad/src/Externs.hx
Normal file
11
projects/pdf-salad/src/Externs.hx
Normal file
@@ -0,0 +1,11 @@
|
||||
package;
|
||||
|
||||
import js.node.Buffer;
|
||||
import js.lib.Promise;
|
||||
|
||||
@:jsRequire("pdf-lib", "PDFDocument")
|
||||
extern class PDFDocument {
|
||||
public static function create():Promise<PDFDocument>;
|
||||
public static function load(bytes:Buffer):Promise<PDFDocument>;
|
||||
public function save():Promise<Buffer>;
|
||||
}
|
10
projects/pdf-salad/src/Main.hx
Normal file
10
projects/pdf-salad/src/Main.hx
Normal file
@@ -0,0 +1,10 @@
|
||||
package;
|
||||
|
||||
import js.lib.Uint8Array;
|
||||
import js.node.Fs;
|
||||
import kiss.Kiss;
|
||||
import kiss.Prelude;
|
||||
import Externs;
|
||||
|
||||
@:build(kiss.Kiss.build("src/Main.kiss"))
|
||||
class Main {}
|
5
projects/pdf-salad/src/Main.kiss
Normal file
5
projects/pdf-salad/src/Main.kiss
Normal file
@@ -0,0 +1,5 @@
|
||||
(defun main []
|
||||
(let [bytesIn (Fs.readFileSync "example-input/antique-phone-shop.pdf")]
|
||||
(.then (PDFDocument.load bytesIn) (lambda [pdfToModify]
|
||||
(.then (pdfToModify.save) (lambda [bytesOut]
|
||||
(Fs.writeFileSync "out.pdf" bytesOut)))))))
|
Reference in New Issue
Block a user