Resource Base
Table of contents

IDocument

This interface that defines a document object.

Members

API Name Description
name Return the name of current document.
author Return the author of current document.
creationDate Return the creation date of current document.
uid Return the docUid of current document.
pages Return the array of pageUids of current document.
loadSource() Load file(s) to current document.
getPageData() Get the data of specified page.
updatePage() Update a page specified by the pageUid with the new data.
setPageCustomData() Set the custom data to the specified page.
getPageCustomData() Get the custom data of the specified page.
deletePages() Delete the specified pages from current document.
deleteAllPages() Delete all pages in current document.
movePages() Move specified page(s) to the target position in current document.
switchPage() Swap the position of two pages in current document.
insertBlankPage() Insert a blank page to current document.
rename() Rename current document.
saveToPng() Save specified page or current page in current document to a PNG file.
saveToJpeg() Save specified page or current page in current document to a JPEG file.
saveToTiff() Save specified page(s) or all pages in current document to a TIFF file.
saveToPdf() Save specified page(s) or all pages in current document to a PDF file.
print() Use the browser’s built-in print feature to print the specified image(s).

name

Return the name of current document.

Syntax

readonly name: string;

Remark

  • It can be set while creating the document by using createDocument(). If it is not set, return the name which is auto generated.

author

Return the author of current document.

Syntax

readonly author: string;

Remark

  • It can be set while creating the document by using createDocument(). If it is not set, return ''.

creationDate

Return the creation date of current document.

Syntax

readonly creationDate: string;

Remark

  • It can be set while creating the document by using createDocument(). If it is not set, return the actual creation date of the document.

uid

Return the docUid of current document.

Syntax

readonly uid: string;

pages

Return the array of pageUids of current document.

Syntax

readonly pages: string[];

Remark

  • Returns an array of pageUids.

Code Snippet

const firstDoc = Dynamsoft.DDV.documentManager.createDocument({
    name: "first_document",
    author: "DDV",
    creationDate: "D:20230101085959-08'00'",
    });

const docName = firstDoc.name;
const docAuthor = firstDoc.author;
const docCreationDate = firstDoc.creationDate;
const docUid = firstDoc.uid;
const docPages = firstDoc.pages;

loadSource()

Load file(s) to current document.

Syntax

loadSource(fileData: Blob | Blob[], index?: number): Promise<string[]>;
loadSource(sources: Source | PdfSource | (Source | PdfSource)[], index?: number): Promise<string[]>;

Parameters

fileData: The blob of the file to be loaded.

sources: The target files, it could be a file or a file array. Please refer to Source. Source can be extended to PdfSource.

index: The position in the document where the file(s) will be loaded to. If not set or out of the maximum range, the loaded file(s) will be added from the end of the document.

Return Value

A Promise object which will be resolved with the page uids of the loaded pages when the file(s) are successfully loaded.

Code Snippet

const firstDoc = Dynamsoft.DDV.documentManager.createDocument({
    name: "first_document",
    author: "DDV",
    creationDate: "D:20230101085959-08'00'",
    });
const source = {
    fileData: /*sampleBlob*/;
};
await firstDoc.loadSource([source]);

Promise Exception

Error Code Error Message
-80001 License string is invalid.
-80002 XXX(LicenseModuleName) module license has expired.
-80003 XXX(LicenseModuleName) module license is missing.
-80004 XXX(LicenseModuleName) module license version does not match.
-80005 Domain does not match the domain bound to the XXX(LicenseModuleName) module license.
-80050 DDV.Core.init() has not been set up yet.
-80051 DDV.Core.init() has not been completed.
-80100 XXX(API): XXX(ParameterName) is invalid.
-80102 XXX(API): XXX(ParameterName) is missing.
-80200 File type is not supported.
-80202 Failed to read the PDF file becouse it’s encrypted and the correct password is not provided.
-80203 Failed to read some annotations because they are not supported by Dynamsoft Document Viewer so far.

getPageData()

Get the data of specified page.

Syntax

getPageData(pageUid: string): Promise<PageData>;

Parameters

pageUid: The uid of the page.

Return Value

A Promise PageData object.

Code Snippet

const pageData = await firstDoc.getPageData(firstDoc.pages[0]);

Promise Exception

Error Code Error Message
-80100 XXX(API): XXX(ParameterName) is invalid.
-80102 XXX(API): XXX(ParameterName) is missing.
-80105 XXX(API): The specified page(s) do not exist.

updatePage()

Update a page specified by the pageUid with the new data.

Syntax

updatePage(pageUid: string, data: Blob, updatePageOptions?: UpdatePageOptions): Promise<boolean>;

Parameters

pageUid: The uid of the page to be updated.

data: The new blob.

updatePageOptions: The options of the new updated page. Please refer to UpdatePageOptions.

Return Value

A Promise object which will be resolved with a boolean value.

true: Successfully.

false: Failed.

Code Snippet

const updatePageOptions = {
    fileIndex: 1, // Using the second page of the new multi-page file, such as PDF or TIFF.
};

const fileData = /*sample blob*/,

await firstDoc.updatePage(firstDoc.pages[0], fileData, updatePageOptions);

Promise Exception

Error Code Error Message
-80100 XXX(API): XXX(ParameterName) is invalid.
-80101 IDocument.updatePage: updatePageOptions.fileIndex is out of range.
-80102 XXX(API): XXX(ParameterName) is missing.
-80105 XXX(API): The specified page(s) do not exist.

setPageCustomData()

Set the custom data to the specified page.

Syntax

setPageCustomData(pageUid: string, data: any): Promise<boolean>;

Parameters

pageUid: The uid of the page.

data: The custom data to set.

Return Value

A Promise object which will be resolved with a boolean value.

true: Successfully.

false: Failed.

Code Snippet

const customData ={
    hasBarcode: true; // sample custom data
};
await firstDoc.setPageCustomData(firstDoc.pages[0], customData);

Promise Exception

Error Code Error Message
-80100 XXX(API): XXX(ParameterName) is invalid.
-80102 XXX(API): XXX(ParameterName) is missing.
-80105 XXX(API): The specified page(s) do not exist.

getPageCustomData()

Get the custom data of the specified page.

Syntax

getPageCustomData(pageUid: string): Promise<any>;

Parameters

pageUid: The uid of the page.

Return Value

A Promise object which will be resolved with the custom data.

Code Snippet

const customdata = await firstDoc.getPageCutomData(firstDoc.pages[0]);

Promise Exception

Error Code Error Message
-80100 XXX(API): XXX(ParameterName) is invalid.
-80102 XXX(API): XXX(ParameterName) is missing.
-80105 XXX(API): The specified page(s) do not exist.

deletePages()

Delete the specified pages from current document.

Syntax

deletePages(indices: number[]): boolean;

Parameters

indices: The array of page indices which will be removed.

Return Value

true: Successfully.

false: Failed.

Code Snippet

// Delete the first and second page.
firstDoc.deletePages([0,1]);

Warning

Error Code Error Message API return value
-80100 XXX(API): XXX(ParameterName) is invalid. false
-80102 XXX(API): XXX(ParameterName) is missing. false

deleteAllPages()

Delete all pages in current document.

Syntax

deleteAllPages(): boolean;

Parameters

None.

Return Value

true: Successfully.

false: Failed.

Code Snippet

// Delete all pages from the doc.
firstDoc.deleteAllPages();

movePages()

Move specified page(s) to the target position in current document.

Syntax

movePages(indices: number[], insertBeforeIndex?: number): void;

Parameters

indices: The array of page(s) indices to be moved.

insertBeforeIndex: Moved pages will be placed before this index. If not set or out of the maximum range, the specified page(s) will be moved after the last page.

Code Snippet

// Move the second, fourth, sixth pages to the begining of the doc
// The moved pages are in (original sixth, fourth, second) order.
firstDoc.movePages([5,3,1], 0);

Exception

Error Code Error Message
-80100 XXX(API): XXX(ParameterName) is invalid.
-80102 XXX(API): XXX(ParameterName) is missing.

switchPage()

Swap the position of two pages in current document.

Syntax

switchPage(oneIndex: number, anotherIndex: number): void;

Parameters

oneIndex: The index of one page.

anotherIndex: The index of another page.

Return Value

true: Successfully.

false: Failed.

Code Snippet

// Switch the third and sixth pages.
firstDoc.switchPage(2, 5);

Exception

Error Code Error Message
-80100 XXX(API): XXX(ParameterName) is invalid.
-80101 XXX(API): XXX(ParameterName) is out of range.
-80102 XXX(API): XXX(ParameterName) is missing.

insertBlankPage()

Insert a blank page to current document.

Syntax

insertBlankPage(
  pageWidth: number;
  pageHeight: number;
  insertBeforeIndex?: number;
):string;

Parameters

pageWidth: The page width of the blank page to insert. The unit is point.

pageHeight: The page height of the blank page to insert. The unit is point.

insertBeforeIndex: The blank page will be inserted before this index. If not set or out of the maximum range, the blank page will be added after the last page.

Common page sizes:

Page size pageWidth (pt) pageHeight (pt)
Letter 612 792
Legal 612 1008
A4 597.6 842.4
A3 842.4 1188

Return value

The page uid of the inserted blank page.

Exception

Error Code Error Message
-80050 DDV.Core.init() has not been set up yet.
-80051 DDV.Core.init() has not been completed.
-80100 XXX(API): XXX(ParameterName) is invalid.
-80101 XXX(API): XXX(ParameterName) is out of range.
-80102 XXX(API): XXX(ParameterName) is missing.

rename()

Rename current document.

Syntax

rename(name: string): boolean;

Parameters

name: The new name of current document.

Return Value

true: Successfully.

false: Failed.

Code Snippet

const firstDoc = Dynamsoft.DDV.documentManager.createDocument({
    name: "first_document",
    author: "DDV",
    creationDate: "D:20230101085959-08'00'",
    });
firstDoc.rename("my_doc");

Warning

Error Code Error Message API return value
-80100 XXX(API): XXX(ParameterName) is invalid. false
-80102 XXX(API): XXX(ParameterName) is missing. false

saveToPng()

Save specified page or current page in current document to a PNG file.

Syntax

saveToPng(index: number, savePngSettings?: SavePngSettings): Promise<Blob>;

Parameters

index: Specify index of the page to be saved.

savePngSettings: Specify the save settings. Please refer to SavePngSettings.

Return Values

A Promise object which will be resolved with Blob of the saved image.

Code Snippet

// Save the first page to a PNG file.
const result = await firstDoc.saveToPng(0);

Promise Exception

Error Code Error Message
-80001 License string is invalid.
-80002 XXX(LicenseModuleName) module license has expired.
-80003 XXX(LicenseModuleName) module license is missing.
-80004 XXX(LicenseModuleName) module license version does not match.
-80005 Domain does not match the domain bound to the XXX(LicenseModuleName) module license.
-80100 XXX(API): XXX(ParameterName) is invalid.
-80101 XXX(API): XXX(ParameterName) is out of range.
-80102 XXX(API): XXX(ParameterName) is missing.

saveToJpeg()

Save specified page or current page in current document to a JPEG file.

Syntax

saveToJpeg(index: number, saveJpegSettings?: SaveJpegSettings): Promise<Blob>;

Parameters

index: Specify index of the page to be saved.

saveJpegSettings: Specify the save settings. Please refer to SaveJpegSettings.

Return Values

A Promise object which will be resolved with Blob of the saved image.

Code Snippet

// Save the first page as a JPEG file with a JPEG compression quality of 100, and the annotations are saved as part of the JPEG.
const settings = {
    quality: 100,
    saveAnnotation: false,
};
const result = await firstDoc.saveToJpeg(0, settings);

Promise Exception

Error Code Error Message
-80001 License string is invalid.
-80002 XXX(LicenseModuleName) module license has expired.
-80003 XXX(LicenseModuleName) module license is missing.
-80004 XXX(LicenseModuleName) module license version does not match.
-80005 Domain does not match the domain bound to the XXX(LicenseModuleName) module license.
-80100 XXX(API): XXX(ParameterName) is invalid.
-80101 XXX(API): XXX(ParameterName) is out of range.
-80102 XXX(API): XXX(ParameterName) is missing.

saveToTiff()

Save specified page(s) or all pages in current document to a TIFF file.

Syntax

saveToTiff(indices: number[], saveTiffSettings?: SaveTiffSettings): Promise<Blob>;
saveToTiff(saveTiffSettings?: SaveTiffSettings): Promise<Blob>;

Parameters

indices: The array of page indices which will be saved. If not set, will save all pages to a TIFF file by default.

saveTiffSettings: Specify the save settings. Please refer to SaveTiffSettings.

Return Values

A Promise object which will be resolved with Blob of the saved TIFF file.

Code Snippet

// Set custom tag
const customTag1 = {
    id: 700,
    content: "Created By Dynamsoft",
    contentIsBase64: false,
}

// Set SaveTiffSettings
const tiffSettings = {
    customTag: [customTag1],
    compression: "tiff/auto",
}

// Save the fifth, sixth, seventh pages to a multi-page TIFF file with the specified tiff settings.
const result1 = await firstDoc.saveToTiff([4,5,6], tiffSettings);

// Save the whole document to a multi-page TIFF file with the specified tiff settings.
const result2 = await firstDoc.saveToTiff(tiffSettings);

Promise Exception

Error Code Error Message
-80001 License string is invalid.
-80002 XXX(LicenseModuleName) module license has expired.
-80003 XXX(LicenseModuleName) module license is missing.
-80004 XXX(LicenseModuleName) module license version does not match.
-80005 Domain does not match the domain bound to the XXX(LicenseModuleName) module license.
-80100 XXX(API): XXX(ParameterName) is invalid.
-80305 There is no image in the current document.

saveToPdf()

Save specified page(s) or all pages in current document to a PDF file.

Syntax

saveToPdf(indices: number[], savePdfSettings?: SavePdfSettings): Promise<Blob>;
saveToPdf(savePdfSettings?: SavePdfSettings): Promise<Blob>;

Parameters

indices: The array of page indices which will be saved.

savePdfSettings: Specify the save settings. Please refer to SavePdfSettings. If not set, will save all pages to a PDF file by default.

Return Values

A Promise object which will be resolved with Blob of the saved PDF file.

Code Snippet

const pdfSettings = {
    author: "Dynamsoft",
    compression: "pdf/jpeg",
    pageType: "page/a4",
    creator: "DDV",
    creationDate: "D:20230101085959-08'00'",
    keyWords: "samplepdf",
    modifiedDate: "D:20230101090101-08'00'",
    producer: "Dynamsoft Document Viewer",
    subject: "SamplePdf",
    title: "SamplePdf",
    version: "1.5",
    quality: 90,
    password: "dynamsoft",
    saveAnnotation: "annotation",
    imageScaleFactor: 1,
};

// Save the fifth, sixth, seventh pages to a multi-page PDF file with the specified pdf settings.
const result1 = await firstDoc.saveToPdf([4,5,6], pdfSettings);

// Save the whole document to a multi-page PDF file with the specified pdf settings.
const result2 = await firstDoc.saveToPdf(pdfSettings);

Promise Exception

Error Code Error Message
-80001 License string is invalid.
-80002 XXX(LicenseModuleName) module license has expired.
-80003 XXX(LicenseModuleName) module license is missing.
-80004 XXX(LicenseModuleName) module license version does not match.
-80005 Domain does not match the domain bound to the XXX(LicenseModuleName) module license.
-80100 XXX(API): XXX(ParameterName) is invalid.
-80305 There is no image in the current document.
-80318 The document contains unsupported fonts, which may result in font loss after saving.

print()

Use the browser’s built-in print feature to print the specified image(s) and whether printable annotations can be printed

Syntax

print(printSettings?: PrintSettings);
print(indices: number[], printSettings?: PrintSettings);

Parameters

indices: The array of page indices which will be printed. If not set, will export all pages to the browser’s built-in print window.

printSettings: Specify the print settings. Please refer to PrintSettings.

Return Values

true: Successfully.

false: Failed.


Code Snippet

// To print the whole doc pages
firstDoc.print();

// To print the second and third pages
firstDoc.print([1,2]);

// To print the whole doc pages, including printable annotations.
firstDoc.print({
    printAnnotation: true;
});

Exception

Error Code Error Message
-80100 XXX(API): XXX(ParameterName) is invalid.
-80305 There is no image in the current document.

This page is compatible for:

Is this page helpful?

YesYes NoNo

In this article: