Created
August 20, 2021 04:53
-
-
Save groupdocs-cloud-gists/aa94971420feacf538cc11cc0288aa1f to your computer and use it in GitHub Desktop.
Annotate PDF Documents using a REST API in Node.js
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
As a Node.js developer, you can easily annotate any of your PDF documents programmatically on the cloud. You can add images, comments, notes, or other types of external remarks to the document as annotations. Here, you will learn how to annotate PDF documents using a REST API in Node.js. | |
You can add annotations to your PDF Documents by following the simple steps given below: | |
1. Upload the PDF file to the Cloud | |
2. Annotate PDF Documents using Node.js | |
3. Download the annotated file |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// initialize api | |
let annotateApi = groupdocs_annotation_cloud.AnnotateApi.fromKeys(clientId, clientSecret); | |
// image annotation | |
let a1 = new groupdocs_annotation_cloud.AnnotationInfo(); | |
a1.annotationPosition = new groupdocs_annotation_cloud.Point(); | |
a1.annotationPosition.x = 1; | |
a1.annotationPosition.y = 1; | |
a1.box = new groupdocs_annotation_cloud.Rectangle(); | |
a1.box.x = 300; | |
a1.box.y = 160; | |
a1.box.width = 200; | |
a1.box.height = 40; | |
a1.pageNumber = 0; | |
a1.penColor = 1201033; | |
a1.penStyle = groupdocs_annotation_cloud.AnnotationInfo.PenStyleEnum.Solid; | |
a1.penWidth = 1; | |
a1.type = groupdocs_annotation_cloud.AnnotationInfo.TypeEnum.Image; | |
a1.text = "This is image annotation"; | |
a1.creatorName = "Anonym A."; | |
a1.imagePath = "JohnSmith.png"; | |
// input file path | |
let fileInfo = new groupdocs_annotation_cloud.FileInfo(); | |
fileInfo.filePath = "sample.pdf"; | |
// define annotation options | |
let options = new groupdocs_annotation_cloud.AnnotateOptions(); | |
options.fileInfo = fileInfo; | |
options.annotations = [a1]; | |
options.outputPath = "Output/output.pdf"; | |
// create annotate request | |
let request = new groupdocs_annotation_cloud.AnnotateRequest(options); | |
// annotate | |
let result = await annotateApi.annotate(request); | |
console.log("Image Annotation added: " + result.href); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// initialize api | |
let annotateApi = groupdocs_annotation_cloud.AnnotateApi.fromKeys(clientId, clientSecret); | |
// distance annotation | |
let a1 = new groupdocs_annotation_cloud.AnnotationInfo(); | |
a1.annotationPosition = new groupdocs_annotation_cloud.Point(); | |
a1.annotationPosition.x = 1; | |
a1.annotationPosition.y = 1; | |
a1.box = new groupdocs_annotation_cloud.Rectangle(); | |
a1.box.x = 100 | |
a1.box.y = 100 | |
a1.box.width = 200 | |
a1.box.height = 100 | |
a1.pageNumber = 0 | |
a1.penColor = 1201033 | |
a1.penStyle = groupdocs_annotation_cloud.AnnotationInfo.PenStyleEnum.Solid; | |
a1.penWidth = 3 | |
a1.opacity = 1 | |
a1.type = groupdocs_annotation_cloud.AnnotationInfo.TypeEnum.Distance; | |
a1.text = "This is distance annotation"; | |
a1.creatorName = "Anonym A."; | |
// area annotation | |
let a2 = new groupdocs_annotation_cloud.AnnotationInfo(); | |
a2.annotationPosition = new groupdocs_annotation_cloud.Point(); | |
a2.annotationPosition.x = 1; | |
a2.annotationPosition.y = 1; | |
a2.box = new groupdocs_annotation_cloud.Rectangle(); | |
a2.box.x = 80 | |
a2.box.y = 400 | |
a2.box.width = 200 | |
a2.box.height = 100 | |
a2.penColor = 1201033; | |
a2.penStyle = groupdocs_annotation_cloud.AnnotationInfo.PenStyleEnum.Solid; | |
a2.pageNumber = 0; | |
a2.penWidth = 3; | |
a2.type = groupdocs_annotation_cloud.AnnotationInfo.TypeEnum.Area; | |
a2.text = "This is area annotation"; | |
a2.creatorName = "Anonym A."; | |
// text field annotation | |
let a3 = new groupdocs_annotation_cloud.AnnotationInfo(); | |
a3.annotationPosition = new groupdocs_annotation_cloud.Point(); | |
a3.annotationPosition.x = 100; | |
a3.annotationPosition.y = 100; | |
a3.box = new groupdocs_annotation_cloud.Rectangle(); | |
a3.box.x = 450 | |
a3.box.y = 150 | |
a3.box.width = 100 | |
a3.box.height = 30 | |
a3.pageNumber = 0; | |
a3.fontColor = 65535; | |
a3.fontSize = 16; | |
a3.type = groupdocs_annotation_cloud.AnnotationInfo.TypeEnum.TextField; | |
a3.text = "Text field text"; | |
a3.creatorName = "Anonym A."; | |
// ellipse annotation | |
let a4 = new groupdocs_annotation_cloud.AnnotationInfo(); | |
a4.annotationPosition = new groupdocs_annotation_cloud.Point(); | |
a4.annotationPosition.x = 1; | |
a4.annotationPosition.y = 1; | |
a4.box = new groupdocs_annotation_cloud.Rectangle(); | |
a4.box.x = 350; | |
a4.box.y = 350; | |
a4.box.width = 200; | |
a4.box.height = 100; | |
a4.pageNumber = 0; | |
a4.penColor = 1201033; | |
a4.penStyle = groupdocs_annotation_cloud.AnnotationInfo.PenStyleEnum.Solid; | |
a4.penWidth = 4; | |
a4.type = groupdocs_annotation_cloud.AnnotationInfo.TypeEnum.Ellipse; | |
a4.text = "This is ellipse annotation"; | |
a4.creatorName = "Anonym A."; | |
let fileInfo = new groupdocs_annotation_cloud.FileInfo(); | |
fileInfo.filePath = "sample.pdf"; | |
let options = new groupdocs_annotation_cloud.AnnotateOptions(); | |
options.fileInfo = fileInfo; | |
options.annotations = [a1, a2, a3, a4]; | |
options.outputPath = "Output/output.pdf"; | |
// create annotation request | |
let request = new groupdocs_annotation_cloud.AnnotateRequest(options); | |
// annotate | |
let result = await annotateApi.annotate(request); | |
console.log("Multiple Annotations added: " + result.href); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
global.clientId = "659fe7da-715b-4744-a0f7-cf469a392b73"; // Get ClientId and ClientSecret from https://dashboard.groupdocs.cloud | |
global.clientSecret = "b377c36cfa28fa69960ebac6b6e36421"; // Get ClientId and ClientSecret from https://dashboard.groupdocs.cloud | |
global.myStorage = ""; | |
const configuration = new groupdocs_annotation_cloud.Configuration(clientId, clientSecret); | |
configuration.apiBaseUrl = "https://api.groupdocs.cloud"; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// construct FileApi | |
var fileApi = new groupdocs_annotation_cloud.FileApi(configuration); | |
// create download file request | |
let request = new groupdocs_annotation_cloud.DownloadFileRequest("Output/output.pdf", myStorage); | |
// download file | |
let response = await fileApi.downloadFile(request); | |
// save file in working directory | |
fs.writeFile("C:\\Files\\output.pdf", response, "binary", function (err) { }); | |
console.log(response); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// initialize api | |
var fileApi = new groupdocs_annotation_cloud.FileApi(configuration); | |
// Open file in IOStream from local/disc. | |
var resourcesFolder = 'C:\\Files\\sample.pdf'; | |
// read file | |
fs.readFile(resourcesFolder, (err, fileStream) => { | |
// create upload file request | |
var request = new groupdocs_annotation_cloud.UploadFileRequest("sample.pdf", fileStream, myStorage); | |
// upload file | |
fileApi.uploadFile(request) | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment