mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-10-05 23:37:04 +00:00
feat: added node-pdftk definitions (#43602)
This commit is contained in:
Vendored
+259
@@ -0,0 +1,259 @@
|
||||
// Type definitions for node-pdftk 2.1
|
||||
// Project: https://github.com/jjwilly16/node-pdftk#readme
|
||||
// Definitions by: Andrea Ascari <https://github.com/ascariandrea>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped/types/node-pdftk
|
||||
// Minimum TypeScript Version: 3.0
|
||||
|
||||
/// <reference types="node" />
|
||||
|
||||
export type Permission =
|
||||
| 'Printing' // – Top Quality Printing
|
||||
| 'DegradedPrintin' // – Lower Quality Printing
|
||||
| 'ModifyContents' // – Also allows Assembly
|
||||
| 'Assembly'
|
||||
| 'CopyContents' // – Also allows ScreenReaders
|
||||
| 'ScreenReaders'
|
||||
| 'ModifyAnnotations' // – Also allows FillIn
|
||||
| 'FillIn'
|
||||
| 'AllFeatures'; // – Allows the user to perform all of the above, and top quality printing.
|
||||
|
||||
export class PDFTK {
|
||||
/**
|
||||
* PdfTk constructor.
|
||||
*/
|
||||
constructor(src: string[]);
|
||||
/**
|
||||
* Simple object check. Arrays not included.
|
||||
*/
|
||||
static isObject(item: unknown): boolean;
|
||||
/**
|
||||
* Simple string check.
|
||||
*/
|
||||
static isString(item: unknown): boolean;
|
||||
/**
|
||||
* Returns a buffer from a file.
|
||||
*/
|
||||
static fileToBuffer(file: string | Buffer): Buffer;
|
||||
/**
|
||||
* Returns a buffer from a string.
|
||||
*/
|
||||
static stringToBuffer(file: string | Buffer, encoding?: string): Buffer;
|
||||
/**
|
||||
* Sanitizes fdf input
|
||||
*/
|
||||
static sanitizeForFdf(str: string): string;
|
||||
/**
|
||||
* Creates fdf file from JSON input.
|
||||
*/
|
||||
static generateFdfFromJSON(data: object): Buffer;
|
||||
/**
|
||||
* Creates pdf info text file from JSON input.
|
||||
*/
|
||||
static generateInfoFromJSON(data: object): Buffer;
|
||||
/**
|
||||
* Run the command.
|
||||
*/
|
||||
output(writeFile: string, outputDest: string, needsOutput?: boolean): Promise<string>;
|
||||
output(writeFile: string): Promise<Buffer>;
|
||||
/**
|
||||
* Assembles ("concatenate") pages from input PDFs to create a new PDF.
|
||||
* @see {@link https://www.pdflabs.com/docs/pdftk-man-page/#dest-op-cat}
|
||||
*/
|
||||
cat(command: string | string[]): this;
|
||||
/**
|
||||
* Collates pages from input PDF to create new PDF.
|
||||
* @see {@link https://www.pdflabs.com/docs/pdftk-man-page/#dest-op-shuffle}
|
||||
*/
|
||||
shuffle(command: string | string[]): this;
|
||||
/**
|
||||
* Splits a single PDF into individual pages.
|
||||
* @see {@link https://www.pdflabs.com/docs/pdftk-man-page/#dest-op-burst}
|
||||
*/
|
||||
burst(outputOptions: string): Promise<string>;
|
||||
burst(): Promise<Buffer>;
|
||||
/**
|
||||
* Takes a single input PDF and rotates just the specified pages.
|
||||
* @see {@link https://www.pdflabs.com/docs/pdftk-man-page/#dest-op-rotate}
|
||||
*/
|
||||
rotate(command: string | string[]): this;
|
||||
/**
|
||||
* Generate fdf file from input PDF.
|
||||
* @see {@link https://www.pdflabs.com/docs/pdftk-man-page/#dest-op-generate-fdf}
|
||||
*/
|
||||
generateFdf(): this;
|
||||
/**
|
||||
* Fill a PDF form from JSON data.
|
||||
* @see {@link https://www.pdflabs.com/docs/pdftk-man-page/#dest-op-fill-form}
|
||||
*/
|
||||
fillForm(payload: object): this;
|
||||
/**
|
||||
* Applies a PDF watermark to the background of a single PDF.
|
||||
* @see {@link https://www.pdflabs.com/docs/pdftk-man-page/#dest-op-background}
|
||||
*/
|
||||
background(file: string | Buffer): this;
|
||||
/**
|
||||
* Same as the background operation, but applies each page of the background PDF to the corresponding page of the input PDF.
|
||||
* @see {@link https://www.pdflabs.com/docs/pdftk-man-page/#dest-op-multibackground}
|
||||
*/
|
||||
multiBackground(file: string | Buffer): this;
|
||||
/**
|
||||
* This behaves just like the background operation except it overlays the stamp PDF page on top of the input PDF document’s pages.
|
||||
* @see {@link https://www.pdflabs.com/docs/pdftk-man-page/#dest-op-stamp}
|
||||
*/
|
||||
stamp(file: string | Buffer): this;
|
||||
/**
|
||||
* Same as the stamp operation, but applies each page of the stamp PDF to the corresponding page of the input PDF.
|
||||
* @see {@link https://www.pdflabs.com/docs/pdftk-man-page/#dest-op-multistamp}
|
||||
*/
|
||||
multiStamp(file: string | Buffer): this;
|
||||
/**
|
||||
* Merge PDF form fields and their data.
|
||||
* @see {@link https://www.pdflabs.com/docs/pdftk-man-page/#dest-output-flatten}
|
||||
*/
|
||||
|
||||
/**
|
||||
* Outputs PDF bookmarks and metadata.
|
||||
* @see {@link https://www.pdflabs.com/docs/pdftk-man-page/#dest-op-dump-data}
|
||||
*/
|
||||
dumpData(): this;
|
||||
/**
|
||||
* Outputs PDF bookmarks and metadata with utf-8 encoding.
|
||||
* @see {@link https://www.pdflabs.com/docs/pdftk-man-page/#dest-op-dump-data-utf8}
|
||||
*/
|
||||
dumpDataUtf8(): this;
|
||||
/**
|
||||
* Outputs form field statistics.
|
||||
* @see {@link https://www.pdflabs.com/docs/pdftk-man-page/#dest-op-dump-data-fields}
|
||||
*/
|
||||
dumpDataFields(): this;
|
||||
/**
|
||||
* Outputs form field statistics with utf-8 encoding.
|
||||
* @see {@link https://www.pdflabs.com/docs/pdftk-man-page/#dest-op-dump-data-fields-utf8}
|
||||
*/
|
||||
dumpDataFieldsUtf8(): this;
|
||||
/**
|
||||
* Outputs PDF annotation information.
|
||||
* @see {@link https://www.pdflabs.com/docs/pdftk-man-page/#dest-op-dump-data-annots}
|
||||
*/
|
||||
dumpDataAnnots(): this;
|
||||
/**
|
||||
* Update the bookmarks and metadata of a PDF with utf-8 encoding.
|
||||
* @see {@link https://www.pdflabs.com/docs/pdftk-man-page/#dest-op-update-info}
|
||||
*/
|
||||
updateInfo(data: object): this;
|
||||
/**
|
||||
* Update the bookmarks and metadata of a PDF.
|
||||
* @see {@link https://www.pdflabs.com/docs/pdftk-man-page/#dest-op-update-info-utf8}
|
||||
*/
|
||||
updateInfoUtf8(data: object): this;
|
||||
/**
|
||||
* Attach files to PDF.
|
||||
* @see {@link https://www.pdflabs.com/docs/pdftk-man-page/#dest-op-attach} for more information.
|
||||
*/
|
||||
attachFiles(files: string | string[]): this;
|
||||
/**
|
||||
* Unpack files into an output directory. This method is not chainable, and hereby does not require
|
||||
* the output method afterwards.
|
||||
* @see {@link https://www.pdflabs.com/docs/pdftk-man-page/#dest-op-unpack} for more information.
|
||||
*/
|
||||
unpackFiles(outputDir: string): Promise<string>;
|
||||
/**
|
||||
* Used with the {@link attachFiles} method to attach to a specific page.
|
||||
* @see {@link https://www.pdflabs.com/docs/pdftk-man-page/#dest-op-attach}
|
||||
*/
|
||||
toPage(pageNo: number): this;
|
||||
/**
|
||||
* Set Adobe Reader to generate new field appearances.
|
||||
* @see {@link https://www.pdflabs.com/docs/pdftk-man-page/#dest-output-need-appearances}
|
||||
*/
|
||||
/**
|
||||
* Merge PDF form fields and their data.
|
||||
* @see {@link https://www.pdflabs.com/docs/pdftk-man-page/#dest-output-flatten}
|
||||
*/
|
||||
flatten(): this;
|
||||
needAppearances(): this;
|
||||
/**
|
||||
* Restore page sream compression.
|
||||
* @see {@link https://www.pdflabs.com/docs/pdftk-man-page/#dest-compress}
|
||||
*/
|
||||
compress(): this;
|
||||
/**
|
||||
* Remove page stream compression.
|
||||
* @see {@link https://www.pdflabs.com/docs/pdftk-man-page/#dest-compress}
|
||||
*/
|
||||
uncompress(): this;
|
||||
/**
|
||||
* Keep first ID when combining files.
|
||||
* @see {@link https://www.pdflabs.com/docs/pdftk-man-page/#dest-keep-id}
|
||||
*/
|
||||
keepFirstId(): this;
|
||||
/**
|
||||
* Keep final ID when combining pages.
|
||||
* @see {@link https://www.pdflabs.com/docs/pdftk-man-page/#dest-keep-id}
|
||||
*/
|
||||
keepFinalId(): this;
|
||||
/**
|
||||
* Drop all XFA data.
|
||||
* @see {@link https://www.pdflabs.com/docs/pdftk-man-page/#dest-drop-xfa}
|
||||
*/
|
||||
dropXfa(): this;
|
||||
/**
|
||||
* Set the verbose option.
|
||||
* @see {@link https://www.pdflabs.com/docs/pdftk-man-page/#dest-verbose}
|
||||
*/
|
||||
verbose(): this;
|
||||
/**
|
||||
* Never prompt when errors occur.
|
||||
* @see {@link https://www.pdflabs.com/docs/pdftk-man-page/#dest-ask}
|
||||
*/
|
||||
dontAsk(): this;
|
||||
/**
|
||||
* Always prompt when errors occur.
|
||||
* @see {@link https://www.pdflabs.com/docs/pdftk-man-page/#dest-ask}
|
||||
*/
|
||||
doAsk(): this;
|
||||
/**
|
||||
* Set the input password.
|
||||
* @see {@link https://www.pdflabs.com/docs/pdftk-man-page/#dest-input-pw}
|
||||
*/
|
||||
inputPw(password: string): this;
|
||||
/**
|
||||
* Set the user password.
|
||||
* @see {@link https://www.pdflabs.com/docs/pdftk-man-page/#dest-output-enc-user-pw}
|
||||
*/
|
||||
userPw(password: string): this;
|
||||
/**
|
||||
* Set the owner password.
|
||||
* @see {@link https://www.pdflabs.com/docs/pdftk-man-page/#dest-output-enc-owner-pw}
|
||||
*/
|
||||
ownerPw(password: string): this;
|
||||
/**
|
||||
* Set permissions for a PDF. By not passing in the "perms" parameter, you are disabling all features.
|
||||
* @see {@link https://www.pdflabs.com/docs/pdftk-man-page/#dest-output-enc-perms}
|
||||
*/
|
||||
allow(perms: Permission | Permission[]): this;
|
||||
/**
|
||||
* Set 40 bit encryption.
|
||||
* @see {@link https://www.pdflabs.com/docs/pdftk-man-page/#dest-output-enc-strength}
|
||||
*/
|
||||
encrypt40Bit(): this;
|
||||
/**
|
||||
* Set 128 bit encryption.
|
||||
* @see {@link https://www.pdflabs.com/docs/pdftk-man-page/#dest-output-enc-strength}
|
||||
*/
|
||||
encrypt128Bit(): this;
|
||||
/**
|
||||
* Allows the plugin to ignore the PDFTK warnings. Useful with huge PDF files.
|
||||
*/
|
||||
ignoreWarnings(): this;
|
||||
}
|
||||
|
||||
export interface ConfigureOptions {
|
||||
bin: string;
|
||||
Promise: PromiseConstructor;
|
||||
ignoreWarnings: true;
|
||||
tempDir: string;
|
||||
}
|
||||
|
||||
export function input(file: string): PDFTK;
|
||||
export function configure(opts: ConfigureOptions): void;
|
||||
@@ -0,0 +1,17 @@
|
||||
import * as PDFTK from 'node-pdftk';
|
||||
|
||||
PDFTK.configure({
|
||||
bin: '/usr/local/bin/pdftk',
|
||||
Promise,
|
||||
ignoreWarnings: true,
|
||||
tempDir: './pdftk',
|
||||
});
|
||||
|
||||
const pdftk = PDFTK.input('file'); // $ExpectType PDFTK
|
||||
|
||||
pdftk.allow(['FillIn']).attachFiles(['./file1.pdf', './file2.pdf']); // $ExpectType PDFTK
|
||||
|
||||
pdftk.allow(['FillIn']).compress().output('./fileoutput.pdf'); // $ExpectType Promise<Buffer>
|
||||
pdftk.allow(['FillIn']).compress().output('./fileoutput.pdf', './destination/folder'); // $ExpectType Promise<string>
|
||||
PDFTK.input('file').flatten().ignoreWarnings().inputPw('password').burst('page_%02d.pdf'); // $ExpectType Promise<string>
|
||||
PDFTK.input('file').flatten().ignoreWarnings().inputPw('password').burst(); // $ExpectType Promise<Buffer>
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"lib": ["es6"],
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictFunctionTypes": true,
|
||||
"strictNullChecks": true,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": ["../"],
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
},
|
||||
"files": ["index.d.ts", "node-pdftk-tests.ts"]
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{ "extends": "dtslint/dt.json" }
|
||||
Reference in New Issue
Block a user