Scaffolding for PDF salad

This commit is contained in:
2020-12-04 18:19:57 -07:00
parent 3ea6ec7d47
commit e6869bbc8f
9 changed files with 3488 additions and 0 deletions

View 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>;
}

View 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 {}

View 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)))))))