pip3 install pymupdf
chmod +x pdf2dark.py
./pdf2dark.py inputfile.pdf -o output.pdf
pip3 install pymupdf
chmod +x pdf2dark.py
./pdf2dark.py inputfile.pdf -o output.pdf
| #!/bin/bash | |
| if [ $# -eq 0 ]; then | |
| echo "Usage: $0 folder_path" | |
| exit 1 | |
| fi | |
| # get the input folder path | |
| folder="$1" |
| use colorsys::{Hsl, Rgb}; | |
| use core::ops::Add; | |
| use core::ops::Div; | |
| use core::ops::Mul; | |
| use core::ops::Sub; | |
| use image; | |
| use noise::{NoiseFn, Perlin}; | |
| use num::Complex; | |
| use std::cmp; | |
| use std::str::FromStr; |
| /* Creates a data loader. | |
| Accepts a batch function that should return a promise | |
| that resolves with the list of values fetched for | |
| each of the keys */ | |
| function createLoader(batch) { | |
| const keys = [] | |
| const resolvers = [] | |
| //Here's the magic, accumulate calls and run them on the next tick |
| { | |
| "outDir": "/Users/runner/work/diagram-codes-solution/diagram-codes-solution/desktop/dist", | |
| "artifactPaths": [ | |
| "/Users/runner/work/diagram-codes-solution/diagram-codes-solution/desktop/dist/Diagram.codes Studio-1.0.29-mac.zip", | |
| "/Users/runner/work/diagram-codes-solution/diagram-codes-solution/desktop/dist/Diagram.codes Studio-1.0.29.dmg.blockmap", | |
| "/Users/runner/work/diagram-codes-solution/diagram-codes-solution/desktop/dist/Diagram.codes Studio-1.0.29.dmg", | |
| "/Users/runner/work/diagram-codes-solution/diagram-codes-solution/desktop/dist/Diagram.codes Studio Setup 1.0.29.exe.blockmap", | |
| "/Users/runner/work/diagram-codes-solution/diagram-codes-solution/desktop/dist/Diagram.codes Studio Setup 1.0.29.exe" | |
| ], | |
| "platformToTargets": {}, |
| { | |
| "id": "sub_HAwfLuEoLetEJ3", | |
| "object": "subscription", | |
| "application_fee_percent": null, | |
| "billing_cycle_anchor": 1588008574, | |
| "billing_thresholds": null, | |
| "cancel_at": null, | |
| "cancel_at_period_end": false, | |
| "canceled_at": null, | |
| "collection_method": "charge_automatically", |
| import * as states from './enumMatchStates' | |
| /** | |
| * Simple State machine in charge of updating the | |
| * current match state. | |
| * This state machine is used to drive the UI | |
| */ | |
| const transitions = { | |
| START:'start', | |
| NEXT_MOVE:'nextMove', |
| .mm-service-rating-header-container { | |
| border-bottom: solid 1px #DFE3E8; | |
| background: #fff url(https://i.imgur.com/VtBQufY.png) no-repeat 0 0; | |
| height: 80px; | |
| background-size: 400px; | |
| background-position-y: 50%; | |
| } | |
| .mm-service-rating-footer-container { | |
| border-top: solid 1px #DFE3E8; |