From 2d4287b54b4919735a66951c21800ae21c2b6874 Mon Sep 17 00:00:00 2001 From: "kirill.novinskiy@aspose.com" Date: Tue, 19 Nov 2024 18:01:16 +0300 Subject: [PATCH 1/4] update examples --- Examples/deleteImage.js | 27 +++++ Examples/getImage.js | 28 +++++ Examples/getImageExtractAsGif.js | 36 ++++++ Examples/getImageExtractAsJpeg.js | 42 +++++-- Examples/getImageExtractAsPng.js | 36 ++++++ Examples/getImageExtractAsTiff.js | 36 ++++++ Examples/getImages.js | 27 +++-- Examples/getPageConvertToPng.js | 42 +++++-- Examples/getPageText.js | 57 ++++++--- Examples/getPdfInStorageToDoc.js | 61 ++++++++-- Examples/getPdfInStorageToPptx.js | 40 +++++++ Examples/getPdfInStorageToXls.js | 46 ++++++++ Examples/getPdfInStorageToXlsx.js | 46 ++++++++ Examples/getText.js | 55 ++++++--- Examples/getXmpMetadataJson.js | 30 +++++ Examples/getXmpMetadataXml.js | 30 +++++ Examples/postDocumentTextReplace.js | 116 ++++++++++++++++--- Examples/postInsertImage.js | 59 +++++++--- Examples/postPageTextReplace.js | 110 ++++++++++++++++++ Examples/postPdfToXlsx.js | 38 ++++++ Examples/postSplitRangePdfDocument.js | 24 ++++ Examples/postXmpMetadata.js | 101 ++++++++++++++++ Examples/putAddText.js | 160 +++++++++++++++++++------- Examples/putImageExtractAsGif.js | 38 ++++++ Examples/putImageExtractAsJpeg.js | 42 +++++-- Examples/putImageExtractAsPng.js | 38 ++++++ Examples/putImageExtractAsTiff.js | 38 ++++++ Examples/putImageInStorageToPdf.js | 56 +++++++++ Examples/putImagesExtractAsGif.js | 39 +++++-- Examples/putImagesExtractAsJpeg.js | 40 +++++-- Examples/putImagesExtractAsPng.js | 39 +++++-- Examples/putImagesExtractAsTiff.js | 39 +++++-- Examples/putMergeDocuments.js | 38 +++--- Examples/putPageConvertToPng.js | 33 ++++-- Examples/putPdfInRequestToDoc.js | 55 +++++++++ Examples/putPdfInRequestToPptx.js | 37 ++++++ Examples/putPdfInRequestToXls.js | 43 +++++++ Examples/putPdfInRequestToXlsx.js | 43 +++++++ Examples/putPdfInStorageToDoc.js | 57 +++++++++ Examples/putPdfInStorageToPptx.js | 38 ++++++ Examples/putPdfInStorageToXls.js | 44 +++++++ Examples/putPdfInStorageToXlsx.js | 44 +++++++ Examples/putReplaceImage.js | 35 ++++++ Examples/putReplaceMultipleImage.js | 34 ++++++ Examples/uploadFile.js | 15 +++ 45 files changed, 1933 insertions(+), 199 deletions(-) create mode 100644 Examples/deleteImage.js create mode 100644 Examples/getImage.js create mode 100644 Examples/getImageExtractAsGif.js create mode 100644 Examples/getImageExtractAsPng.js create mode 100644 Examples/getImageExtractAsTiff.js create mode 100644 Examples/getPdfInStorageToPptx.js create mode 100644 Examples/getPdfInStorageToXls.js create mode 100644 Examples/getPdfInStorageToXlsx.js create mode 100644 Examples/getXmpMetadataJson.js create mode 100644 Examples/getXmpMetadataXml.js create mode 100644 Examples/postPageTextReplace.js create mode 100644 Examples/postPdfToXlsx.js create mode 100644 Examples/postSplitRangePdfDocument.js create mode 100644 Examples/postXmpMetadata.js create mode 100644 Examples/putImageExtractAsGif.js create mode 100644 Examples/putImageExtractAsPng.js create mode 100644 Examples/putImageExtractAsTiff.js create mode 100644 Examples/putImageInStorageToPdf.js create mode 100644 Examples/putPdfInRequestToDoc.js create mode 100644 Examples/putPdfInRequestToPptx.js create mode 100644 Examples/putPdfInRequestToXls.js create mode 100644 Examples/putPdfInRequestToXlsx.js create mode 100644 Examples/putPdfInStorageToDoc.js create mode 100644 Examples/putPdfInStorageToPptx.js create mode 100644 Examples/putPdfInStorageToXls.js create mode 100644 Examples/putPdfInStorageToXlsx.js create mode 100644 Examples/putReplaceImage.js create mode 100644 Examples/putReplaceMultipleImage.js create mode 100644 Examples/uploadFile.js diff --git a/Examples/deleteImage.js b/Examples/deleteImage.js new file mode 100644 index 00000000..affdfeb7 --- /dev/null +++ b/Examples/deleteImage.js @@ -0,0 +1,27 @@ +const { PdfApi } = require("asposepdfcloud"); +const fs = require("fs"); + +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); + +// The document name. +const fileName = "PdfWithImages2.pdf"; +// Use default storage. +const storage = null; +// Set document folder. +const folder = "Documents"; +// Set extracted image folder. +const destFolder = "testOutput"; + +async function main() +{ + // Read document images. + const result = await api.getImages(fileName, 1, null, null); + const imageId = result.body.images.list[0].id; + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Images/DeleteImage + // Delete image from document page. + const response = await api.deleteImage(fileName, imageId, storage, folder); + console.log(response.body.status); +} + +main(); diff --git a/Examples/getImage.js b/Examples/getImage.js new file mode 100644 index 00000000..5bb48f35 --- /dev/null +++ b/Examples/getImage.js @@ -0,0 +1,28 @@ +const { PdfApi } = require("asposepdfcloud"); +const fs = require("fs"); + +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); + +// The document name. +const fileName = "PdfWithImages2.pdf"; +// Use default storage. +const storage = null; +// Set document folder. +const folder = "Documents"; +// Set extracted image folder. +const destFolder = "testOutput"; + +async function main() +{ + // Read document images. + const imagesResult = await api.getImages(fileName, 1, null, null); + const imageId = imagesResult.body.images.list[0].id; + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Images/DeleteImage + // Delete image from document page. + const result = await api.getImage(fileName, imageId, storage, folder); + // todo: parse response + console.log(result.body.status); +} + +main(); diff --git a/Examples/getImageExtractAsGif.js b/Examples/getImageExtractAsGif.js new file mode 100644 index 00000000..3ddfc6ab --- /dev/null +++ b/Examples/getImageExtractAsGif.js @@ -0,0 +1,36 @@ +const { PdfApi } = require("asposepdfcloud"); +const fs = require("fs"); + +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); + +// The document name. +const fileName = "PdfWithImages2.pdf"; +// Use default storage. +const storage = null; +// Width of coverted image. +const width = 100; +// Heigth of coverted image. +const heigth = 100; +// Set document folder. +const folder = "Documents"; +// Set extracted image folder. +const destFolder = "testOutput"; + +async function main() +{ + // Read document images. + const result = await api.getImages(fileName, 1, null, null); + const imageId = result.body.images.list[0].id; + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Images/GetImageExtractAsJpeg + // Extract document image in PNG format. + const response = await api.getImageExtractAsGif(fileName, imageId, width, heigth, storage, folder); + if (response.response.statusCode == 200) + { + console.log("OK"); + // Write extracted image on disk. + fs.writeFileSync(destFolder + "/" + fileName + ".gif", response.body); + } +} + +main(); diff --git a/Examples/getImageExtractAsJpeg.js b/Examples/getImageExtractAsJpeg.js index 169a17b8..9217bd85 100644 --- a/Examples/getImageExtractAsJpeg.js +++ b/Examples/getImageExtractAsJpeg.js @@ -1,16 +1,36 @@ const { PdfApi } = require("asposepdfcloud"); -const { PdfAType } = require("asposepdfcloud/src/models/fieldType"); +const fs = require("fs"); +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); +// The document name. +const fileName = "PdfWithImages2.pdf"; +// Use default storage. +const storage = null; +// Width of coverted image. +const width = 100; +// Heigth of coverted image. +const heigth = 100; +// Set document folder. +const folder = "Documents"; +// Set extracted image folder. +const destFolder = "testOutput"; -pdfApi = new PdfApi("XXXX", "XXXXXXX") +async function main() +{ + // Read document images. + const result = await api.getImages(fileName, 1, null, null); + const imageId = result.body.images.list[0].id; + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Images/GetImageExtractAsJpeg + // Extract document image in PNG format. + const response = await api.getImageExtractAsJpeg(fileName, imageId, width, heigth, storage, folder); + if (response.response.statusCode == 200) + { + console.log("OK"); + // Write extracted image on disk. + fs.writeFileSync(destFolder + "/" + fileName + ".jpeg", response.body); + } +} -console.log('running example'); - -const result = await pdfApi.getImages("PdfWithImages2.pdf", 1, null, null); -imageId = result.body.images.list[0].id; - -pdfApi.putImageExtractAsJpeg("PdfWithImages2.pdf", imageId, null, null, null, null, null) - .then((result) => { - console.log(result.response); - }); \ No newline at end of file +main(); diff --git a/Examples/getImageExtractAsPng.js b/Examples/getImageExtractAsPng.js new file mode 100644 index 00000000..ef991f82 --- /dev/null +++ b/Examples/getImageExtractAsPng.js @@ -0,0 +1,36 @@ +const { PdfApi } = require("asposepdfcloud"); +const fs = require("fs"); + +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); + +// The document name. +const fileName = "PdfWithImages2.pdf"; +// Use default storage. +const storage = null; +// Width of coverted image. +const width = 100; +// Heigth of coverted image. +const heigth = 100; +// Set document folder. +const folder = "Documents"; +// Set extracted image folder. +const destFolder = "testOutput"; + +async function main() +{ + // Read document images. + const result = await api.getImages(fileName, 1, null, null); + const imageId = result.body.images.list[0].id; + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Images/GetImageExtractAsPng + // Extract document image in PNG format. + const response = await api.getImageExtractAsPng(fileName, imageId, width, heigth, storage, folder); + if (response.response.statusCode == 200) + { + console.log("OK"); + // Write extracted image on disk. + fs.writeFileSync(destFolder + "/" + fileName + ".png", response.body); + } +} + +main(); \ No newline at end of file diff --git a/Examples/getImageExtractAsTiff.js b/Examples/getImageExtractAsTiff.js new file mode 100644 index 00000000..5c4a94db --- /dev/null +++ b/Examples/getImageExtractAsTiff.js @@ -0,0 +1,36 @@ +const { PdfApi } = require("asposepdfcloud"); +const fs = require("fs"); + +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); + +// The document name. +const fileName = "PdfWithImages2.pdf"; +// Use default storage. +const storage = null; +// Width of coverted image. +const width = 100; +// Heigth of coverted image. +const heigth = 100; +// Set document folder. +const folder = "Documents"; +// Set extracted image folder. +const destFolder = "testOutput"; + +async function main() +{ + // Read document images. + const result = await api.getImages(fileName, 1, null, null); + const imageId = result.body.images.list[0].id; + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Images/GetImageExtractAsJpeg + // Extract document image in PNG format. + const response = await api.getImageExtractAsTiff(fileName, imageId, width, heigth, storage, folder); + if (response.response.statusCode == 200) + { + console.log("OK"); + // Write extracted image on disk. + fs.writeFileSync(destFolder + "/" + fileName + ".tiff", response.body); + } +} + +main(); diff --git a/Examples/getImages.js b/Examples/getImages.js index b6cb843b..90f12147 100644 --- a/Examples/getImages.js +++ b/Examples/getImages.js @@ -1,16 +1,21 @@ const { PdfApi } = require("asposepdfcloud"); -const { PdfAType } = require("asposepdfcloud/src/models/freeTextAnnotation"); +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); +// The document name. +const fileName = "PdfWithImages2.pdf"; +// Use default storage. +const storage = null; +// Set document folder. +const folder = "Documents"; -pdfApi = new PdfApi("XXXX", "XXXXXXX") +async function main() +{ + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Images/GetImages + // Read document images. + const result = await api.getImages(fileName, 1, storage, folder); + console.log(result.body.status); +} -console.log('running example'); - -pdfApi.getImages("PdfWithImages2.pdf", 1, null, null); -const imageId = result.body.images.list[0].id; - -pdfApi.getImage("PdfWithImages2.pdf", imageId, null, null) - .then((result) => { - console.log(result.response); - }); \ No newline at end of file +main(); diff --git a/Examples/getPageConvertToPng.js b/Examples/getPageConvertToPng.js index 00e0a2e3..5cdae37a 100644 --- a/Examples/getPageConvertToPng.js +++ b/Examples/getPageConvertToPng.js @@ -1,15 +1,37 @@ const { PdfApi } = require("asposepdfcloud"); -const { PdfAType } = require("asposepdfcloud/src/models/movieAnnotation"); +const fs = require("fs"); +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); +// Set the document name. +const fileName = "4pages.pdf"; +// Set the page number. +const pageNumber = 1; +// Set the width of coverted image. +const width = (595 / 2) | 0; +// Set the heigth of coverted image. +const heigth = (842 / 2) | 0; +// Use default storage. +const storage = null; +// Set document folder. +const folder = "Documents"; +// Set no password. +const password = null; +// Set an extracted image folder. +const destFolder = "testOutput"; -pdfApi = new PdfApi("XXXX", "XXXXXXX") +async function main() +{ + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Pages/GetPageConvertToPng + // Convert document page to Png image and return resulting file in response.. + const response = await api.getPageConvertToPng(fileName, pageNumber, width, heigth, folder, storage, password); + if (response.response.statusCode == 200) + { + console.log("OK"); + // Write extracted image on disk. + fs.writeFileSync(destFolder + "/" + fileName + ".png", response.body); + } +} -console.log('running example'); - - - -pdfApi.getPageConvertToPng("4pages.pdf", 1, null, null, null) - .then((result) => { - console.log(result.response); - }); \ No newline at end of file +main(); diff --git a/Examples/getPageText.js b/Examples/getPageText.js index 592ff66d..a8e9596a 100644 --- a/Examples/getPageText.js +++ b/Examples/getPageText.js @@ -1,19 +1,50 @@ const { PdfApi } = require("asposepdfcloud"); -const { PdfAType } = require("asposepdfcloud/src/models/stamp"); +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); -pdfApi = new PdfApi("XXXX", "XXXXXXX") - -console.log('running example'); -const name = "4pages.pdf"; -const x = 0; -const y = 0; -const width = 0; -const height = 0; +// Set the document name. +const fileName = "4pages.pdf"; +// Set the page number. const pageNumber = 1; +// Set the X-coordinate of lower-left corner. +const llx = 0; +// Set an Y-coordinate of lower-left corner. +const lly = 0; +// Set the X-coordinate of upper-right corner. +const urx = 0; +// Set an Y-coordinate of upper-right corner. +const ury = 0; +// Set list of formats for search. const format = ["First Page", "Second Page"]; +// Set formats are specified as a regular expression. +const regex = null; +// Set split result fragments (default is true). +const splitRects = true; +// Use default storage. +const storage = null; +// Set document folder. +const folder = "Documents"; + +async function main() +{ + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Text/GetPageText + // Read page text items. + const result = await api.getPageText( + fileName, + pageNumber, + llx, + lly, + urx, + ury, + format, + regex, + splitRects, + folder, + storage); + + // todo: parse response + console.log(result.body.status); +} -pdfApi.getPageText(name, pageNumber, x, y, width, height, format, null, null, null) - .then((result) => { - console.log(result.response); - }); \ No newline at end of file +main(); diff --git a/Examples/getPdfInStorageToDoc.js b/Examples/getPdfInStorageToDoc.js index c1f9410e..532a582c 100644 --- a/Examples/getPdfInStorageToDoc.js +++ b/Examples/getPdfInStorageToDoc.js @@ -1,12 +1,59 @@ const { PdfApi } = require("asposepdfcloud"); +const fs = require("fs"); -pdfApi = new PdfApi( - "78946fb4-3bd4-4d3e-b309-f9e2ff9ac6f9", "b125f13bf6b76ed81ee990142d841195") +const fileName = "28968-1.pdf"; +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); -console.log('running example'); +// Detailed description of available parameters at +// https://reference.aspose.com/pdf/net/aspose.pdf/docsaveoptions/ +// Use paragraph instead of line breaks. +const addReturnToLineEndings = true; +// Convert to doc format (default value). +const format = "doc"; +// Converted images X resolution default value is 300. +const imageResolutionX = 300; +// Converted images Y resolution default value is 300. +const imageResolutionY = 300; +// Specified in hundreds of percent of the text lines height. +const maxDistanceBetweenLines = 10; +// This mode is fast and good for maximally preserving original look of the PDF file. +const mode = "Textbox"; +// Recognition of bullets. +const recognizeBullets = true; +// It's normed to font size - 1.0 means 100% of supposed word's font size +const relativeHorizontalProximity = 1.0; +// Set root folder. +const folder = null; +// Set default storage. +const storage = null; +// Set pdf document password. +const password = null; -pdfApi.getPdfInStorageToDoc(simplePdf, null, null, null, null, null, null, null, null, null) - .then((result) => { - console.log(result.response); - }); \ No newline at end of file +async function main() +{ + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Convert/GetPdfInStorageToDoc + // Converts PDF document (located on storage) to DOC format and returns resulting file in response content. + const result = await api.getPdfInStorageToDoc(fileName, + addReturnToLineEndings, + format, + imageResolutionX, + imageResolutionY, + maxDistanceBetweenLines, + mode, + recognizeBullets, + relativeHorizontalProximity, + folder, + storage, + password); + + if (result.response.statusCode == 200) + { + console.log("OK"); + // Write extracted image on disk. + fs.writeFileSync("testOutput/" + fileName + "." + format, result.body); + } +} + +main(); \ No newline at end of file diff --git a/Examples/getPdfInStorageToPptx.js b/Examples/getPdfInStorageToPptx.js new file mode 100644 index 00000000..3e36038e --- /dev/null +++ b/Examples/getPdfInStorageToPptx.js @@ -0,0 +1,40 @@ +const { PdfApi } = require("asposepdfcloud"); +const fs = require("fs"); + +const fileName = "4pages.pdf"; +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); + +// Detailed description of available parameters at +// https://reference.aspose.com/pdf/net/aspose.pdf/pptxsaveoptions/ + +// If set to true then images are separated from all other graphics +const separateImages = true; +// If set to true then all the content is recognized as images (one per page). +const slidesAsImages = false; +// Set root folder. +const folder = null; +// Set default storage. +const storage = null; +// Set pdf document password. +const password = null; + +async function main() +{ + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Convert/GetPdfInStorageToPptx + // Converts PDF document (located on storage) to PPTX format and returns resulting file in response content + const result = await api.getPdfInStorageToPptx(fileName, + separateImages, + slidesAsImages, + folder, + storage, + password); + + if (result.response.statusCode == 200) + { + fs.writeFileSync("testOutput/" + fileName + ".pptx", result.body) + console.log("OK"); + } +} + +main(); \ No newline at end of file diff --git a/Examples/getPdfInStorageToXls.js b/Examples/getPdfInStorageToXls.js new file mode 100644 index 00000000..1c433b01 --- /dev/null +++ b/Examples/getPdfInStorageToXls.js @@ -0,0 +1,46 @@ +const { PdfApi } = require("asposepdfcloud"); +const fs = require("fs"); + +const fileName = "4pages.pdf"; +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); + +// Detailed description of available parameters at +// https://reference.aspose.com/pdf/net/aspose.pdf/excelsaveoptions/ + +// Insert blank column at first. +const insertBlankColumnAtFirst = true; +// Save of each PDF page as separated worksheet. +const minimizeTheNumberOfWorksheets = false; +// Obsolete. +const scaleFactor = null; +// Columns division will independent for each page. +const uniformWorksheets = true; +// Set root folder. +const folder = null; +// Set default storage. +const storage = null; +// Set pdf document password. +const password = null; + +async function main() +{ + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Convert/GetPdfInStorageToXls + // Converts PDF document (located on storage) to XLS format and returns resulting file in response content + const result = await api.getPdfInStorageToXls(fileName, + insertBlankColumnAtFirst, + minimizeTheNumberOfWorksheets, + scaleFactor, + uniformWorksheets, + folder, + storage, + password); + + if (result.response.statusCode == 200) + { + fs.writeFileSync("testOutput/" + fileName + ".xls", result.body) + console.log("OK"); + } +} + +main(); \ No newline at end of file diff --git a/Examples/getPdfInStorageToXlsx.js b/Examples/getPdfInStorageToXlsx.js new file mode 100644 index 00000000..8333c80d --- /dev/null +++ b/Examples/getPdfInStorageToXlsx.js @@ -0,0 +1,46 @@ +const { PdfApi } = require("asposepdfcloud"); +const fs = require("fs"); + +const fileName = "PdfWithImages2.pdf"; +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); + +// Detailed description of available parameters at +// https://reference.aspose.com/pdf/net/aspose.pdf/excelsaveoptions/ + +// Insert blank column at first. +const insertBlankColumnAtFirst = true; +// Save of each PDF page as separated worksheet. +const minimizeTheNumberOfWorksheets = false; +// Obsolete. +const scaleFactor = null; +// Columns division will independent for each page. +const uniformWorksheets = true; +// Set root folder. +const folder = null; +// Set default storage. +const storage = null; +// Set pdf document password. +const password = null; + +async function main() +{ + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Convert/GetPdfInStorageToXlsx + // Converts PDF document (located on storage) to XLSX format and returns resulting file in response content + const result = await api.getPdfInStorageToXlsx(fileName, + insertBlankColumnAtFirst, + minimizeTheNumberOfWorksheets, + scaleFactor, + uniformWorksheets, + folder, + storage, + password); + + if (result.response.statusCode == 200) + { + fs.writeFileSync("testOutput/" + fileName + ".xlsx", result.body) + console.log("OK"); + } +} + +main(); \ No newline at end of file diff --git a/Examples/getText.js b/Examples/getText.js index 773e237d..fdeecd70 100644 --- a/Examples/getText.js +++ b/Examples/getText.js @@ -1,20 +1,47 @@ const { PdfApi } = require("asposepdfcloud"); -const { PdfAType } = require("asposepdfcloud/src/models/stamp"); +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); +// The document name. +const fileName = "4pages.pdf"; +// X-coordinate of lower-left corner. +const llx = 0; +// Y-coordinate of lower-left corner. +const lly = 0; +// X-coordinate of upper-right corner. +const urx = 0; +// Y-coordinate of upper-right corner. +const ury = 0; +// List of formats for search. +const format = []; +// Formats are specified as a regular expression. +const regex = null; +// Split result fragments (default is true). +const splitRects = true; +// Use default storage. +const storage = null; +// Set document folder. +const folder = "Documents"; +async function main() +{ + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Text/GetText + // Read document text. + const result = await api.getText( + fileName, + llx, + lly, + urx, + ury, + format, + regex, + splitRects, + folder, + storage); -pdfApi = new PdfApi("XXXX", "XXXXXXX") + // todo: parse response + console.log(result.body.status); +} -console.log('running example'); - -const name = "4pages.pdf"; -const x = 0; -const y = 0; -const width = 0; -const height = 0; - -pdfApi.getText(name, x, y, width, height, null, null, null, null) - .then((result) => { - console.log(result.response); - }); \ No newline at end of file +main(); diff --git a/Examples/getXmpMetadataJson.js b/Examples/getXmpMetadataJson.js new file mode 100644 index 00000000..5eb7be51 --- /dev/null +++ b/Examples/getXmpMetadataJson.js @@ -0,0 +1,30 @@ +// Import the necessary class from the Aspose PDF Cloud SDK +const { PdfApi } = require("asposepdfcloud"); + +// Create an instance of the PdfApi with the base URL +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); + +// Set the document name (the PDF file you want to retrieve metadata from) +const fileName = "example.pdf"; // Replace with your PDF file name +// Set the folder where the document is stored (if applicable) +const folder = "Documents"; // Replace with your folder name if applicable +// Optional parameters +const storage = null; // Specify storage name if using a specific storage +const password = null; // Specify the password if the document is password-protected + +// Main function to execute the API call +async function main() { + try { + // Call the getXmpMetadataJson method to retrieve the XMP metadata + const result = await api.getXmpMetadataJson(fileName, folder, storage, password); + + // Log the retrieved XMP metadata + console.log("XMP Metadata:", result.body); + } catch (error) { + // Handle any errors that occur during the API call + console.error("Error retrieving XMP metadata:", error); + } +} + +// Execute the main function +main(); diff --git a/Examples/getXmpMetadataXml.js b/Examples/getXmpMetadataXml.js new file mode 100644 index 00000000..34a51fd3 --- /dev/null +++ b/Examples/getXmpMetadataXml.js @@ -0,0 +1,30 @@ +// Import the necessary class from the Aspose PDF Cloud SDK +const { PdfApi } = require("asposepdfcloud"); + +// Create an instance of the PdfApi with the base URL +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); + +// Set the document name (the PDF file you want to retrieve metadata from) +const fileName = "example.pdf"; // Replace with your PDF file name +// Set the folder where the document is stored (if applicable) +const folder = "Documents"; // Replace with your folder name if applicable +// Optional parameters +const storage = null; // Specify storage name if using a specific storage +const password = null; // Specify the password if the document is password-protected + +// Main function to execute the API call +async function main() { + try { + // Call the getXmpMetadataJson method to retrieve the XMP metadata + const result = await api.getXmpMetadataXml(fileName, folder, storage, password); + + // Log the retrieved XMP metadata + console.log("XMP Metadata:", result.body); + } catch (error) { + // Handle any errors that occur during the API call + console.error("Error retrieving XMP metadata:", error); + } +} + +// Execute the main function +main(); diff --git a/Examples/postDocumentTextReplace.js b/Examples/postDocumentTextReplace.js index 9f11cbf5..c2070c7a 100644 --- a/Examples/postDocumentTextReplace.js +++ b/Examples/postDocumentTextReplace.js @@ -1,20 +1,110 @@ const { PdfApi } = require("asposepdfcloud"); -const { TextReplaceListRequest } = require("asposepdfcloud/src/models/textReplace"); +const { TextState } = require("asposepdfcloud/src/models/textState"); +const { FontStyles } = require("asposepdfcloud/src/models/fontStyles"); +const { Color } = require("asposepdfcloud/src/models/color"); +const { TextReplace } = require("asposepdfcloud/src/models/textReplace"); +const { Rectangle } = require("asposepdfcloud/src/models/rectangle"); +const { TextReplaceListRequest } = require("asposepdfcloud/src/models/textReplaceListRequest"); +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); -pdfApi = new PdfApi("XXXX", "XXXXXXX") +// Set the document name. +const fileName = "4pages.pdf"; +// Represents color DTO. +const color = new Color +{ + // Set an alpha component. + a = 0, + // Set the red component. + r = 255, + // Set the green component. + g = 255, + // Set the blue component. + b = 255 +}; +// Represents a text state of a text +const textState = new TextState +{ + // Set font size of the text. + fontSize = 14; + // Set font name of the text. + font = "Arial"; + // Set foreground color of the text. + foregroundColor = color; + // Set background color of the text. + backgroundColor = color; + // Set font style of the text. + fontStyle = FontStyles.Regular; + // Set path of font file in storage. + fontFile = ""; + // Set underline of the text. + underline = true; + // Set strikeout of the text. + strikeOut = false; + // Set superscript mode of the text. + superscript = false; + // Set subscript mode of the text. + subscript = false; +}; +// Represents rectangle DTO. +const rect = new Rectangle +{ + // Set the X-coordinate of lower-left corner. + lLX = 0; + // Set the Y-coordinate of lower-left corner. + lLY = 0; + // Set the X-coordinate of upper-right corner. + uRX = 400; + // Set the Y-coordinate of upper-right corner. + uRY = 400; +}; +// Single text replacement setting. +const textReplace = new TextReplace +{ + // Set an original text. + oldValue = "Page", + // Set the new text. + newValue = "Replacement", + // Set a value indicating whether search text is regular expression. + regex = false, + // Set the text properties of a new text. + textState = textState, + // Set the rectangle area where searched original text. + rect = rect, + // Set the text after replacement is centered horizontally relative to the text being replaced. + centerTextHorizontally = true +}; +// Multiple text replacements request. +const textReplaceList = new TextReplaceListRequest +{ + // Set the list of text replacement settings. + textReplaces = [ textReplace ], + // Set the name of font to use if requested font is not embedded into document. + defaultFont = "Arial"; + // Set the index of first match to be replaced. + startIndex = 0; + // Set the number of matches to be replaced. + countReplace = 5; -console.log('running example'); +}; +// Use default storage. +const storage = null; +// Set document folder. +const folder = "Documents"; +async function main() +{ + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/TextReplace/PostDocumentTextReplace + // Document's replace text method. + const result = await api.postDocumentTextReplace( + fileName, + textReplaceList, + storage, + folder); -const name = "4pages.pdf"; -const trr = new TextReplaceListRequest(); -trr.textReplaces = [textReplace]; -trr.startIndex = 0; -trr.countReplace = 0; + // todo: parse response + console.log(result.body.status); +} - -pdfApi.postDocumentTextReplace(name, trr, null, null) - .then((result) => { - console.log(result.response); - }); \ No newline at end of file +main(); diff --git a/Examples/postInsertImage.js b/Examples/postInsertImage.js index 2e52fb42..0213c794 100644 --- a/Examples/postInsertImage.js +++ b/Examples/postInsertImage.js @@ -1,17 +1,46 @@ const { PdfApi } = require("asposepdfcloud"); -const { PdfAType } = require("asposepdfcloud/src/models/freeTextAnnotation"); - - -pdfApi = new PdfApi("XXXX", "XXXXXXX") - -console.log('running example'); - - -const imageName = "Koala.jpg"; - - -pdfApi.postInsertImage("4pages.pdf", 2, 10, 10, 100, 100, imageName, null, null) - .then((result) => { - console.log(result.response); -}); \ No newline at end of file +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); + +// The document name. +const fileName = "4pages.pdf"; +// Path to image file in storage. Image content is used otherwise. +const imageFilePath = "Koala.jpg"; +// Set page number to insert an image to. +const pageNumber = 1; +// Set left bottom x coordinate of an image. +const llx = 10; +// Set left bottom y coordinate of an image. +const lly = 10; +// Set right upper x coordinate of an image. +const urx = 100; +// Set right upper y coordinate of an image. +const ury = 100; +// Use default storage. +const storage = null; +// Set document folder. +const folder = "Documents"; +// Set image buffer. +const imageContent = null + +async function main() +{ + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Images/PostInsertImage + // Insert image to document page. + const result = await api.postInsertImage( + fileName, + pageNumber, + llx, + lly, + urx, + ury, + imageFilePath, + storage, + folder, + null); + // todo: parse response + console.log(result.body.status); +} + +main(); diff --git a/Examples/postPageTextReplace.js b/Examples/postPageTextReplace.js new file mode 100644 index 00000000..45fe68fa --- /dev/null +++ b/Examples/postPageTextReplace.js @@ -0,0 +1,110 @@ +const { PdfApi } = require("asposepdfcloud"); +const { TextState } = require("asposepdfcloud/src/models/textState"); +const { FontStyles } = require("asposepdfcloud/src/models/fontStyles"); +const { Color } = require("asposepdfcloud/src/models/color"); +const { TextReplace } = require("asposepdfcloud/src/models/textReplace"); +const { Rectangle } = require("asposepdfcloud/src/models/rectangle"); +const { TextReplaceListRequest } = require("asposepdfcloud/src/models/textReplaceListRequest"); + +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); + +// Set the document name. +const fileName = "4pages.pdf"; +// Represents color DTO. +const color = new Color +{ + // Set an alpha component. + A = 0, + // Set the red component. + R = 255, + // Set the green component. + G = 255, + // Set the blue component. + B = 255 +}; +// Represents a text state of a text +const textState = new TextState +{ + // Set font size of the text. + fontSize = 14; + // Set font name of the text. + font = "Arial"; + // Set foreground color of the text. + foregroundColor = color; + // Set background color of the text. + backgroundColor = color; + // Set font style of the text. + fontStyle = FontStyles.Regular; + // Set path of font file in storage. + fontFile = null; + // Set underline of the text. + underline = true; + // Set strikeout of the text. + strikeOut = false; + // Set superscript mode of the text. + superscript = false; + // Set subscript mode of the text. + subscript = false; +}; +// Represents rectangle DTO. +const rect = new Rectangle +{ + // Set the X-coordinate of lower-left corner. + lLX = 0; + // Set the Y-coordinate of lower-left corner. + lLY = 0; + // Set the X-coordinate of upper-right corner. + uRX = 400; + // Set the Y-coordinate of upper-right corner. + uRY = 400; +}; +// Single text replacement setting. +const textReplace = new TextReplace +{ + // Set an original text. + oldValue = "Page", + // Set the new text. + newValue = "Replacement", + // Set a value indicating whether search text is regular expression. + regex = false, + // Set the text properties of a new text. + textState = textState, + // Set the rectangle area where searched original text. + rect = rect, + // Set the text after replacement is centered horizontally relative to the text being replaced. + centerTextHorizontally = true +}; +// Multiple text replacements request. +const textReplaceList = new TextReplaceListRequest +{ + // Set the list of text replacement settings. + textReplaces = [ textReplace ], + // Set the name of font to use if requested font is not embedded into document. + defaultFont = "Arial"; + // Set the index of first match to be replaced. + startIndex = 0; + // Set the number of matches to be replaced. + countReplace = 5; + +}; +// Use default storage. +const storage = null; +// Set document folder. +const folder = "Documents"; + +async function main() +{ + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/TextReplace/PostPageTextReplace + // Page's replace text method. + const result = await api.postPageTextReplace( + fileName, + textReplaceList, + storage, + folder); + + // todo: parse response + console.log(result.body.status); +} + +main(); diff --git a/Examples/postPdfToXlsx.js b/Examples/postPdfToXlsx.js new file mode 100644 index 00000000..acd845ad --- /dev/null +++ b/Examples/postPdfToXlsx.js @@ -0,0 +1,38 @@ +const { PdfApi } = require("asposepdfcloud"); +const fs = require("fs"); + +const fileName = "PdfWithImages2.pdf"; +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); + +// Detailed description of available parameters at +// https://reference.aspose.com/pdf/net/aspose.pdf/excelsaveoptions/ + +// Insert blank column at first. +const insertBlankColumnAtFirst = true; +// Save of each PDF page as separated worksheet. +const minimizeTheNumberOfWorksheets = false; +// Columns division will independent for each page. +const uniformWorksheets = true; +// Set pdf document password. +const password = null; + +async function main() +{ + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Convert/PostPdfToXlsx + // Converts PDF document (in request content) to XLSX format and uploads and returns resulting file in response content. + const result = await api.postPdfToXlsx( + insertBlankColumnAtFirst, + minimizeTheNumberOfWorksheets, + uniformWorksheets, + password, + fs.readFileSync("testData/" + fileName)); + + if (result.response.statusCode == 200) + { + fs.writeFileSync("testOutput/" + fileName + ".xlsx", result.body) + console.log("OK"); + } +} + +main(); \ No newline at end of file diff --git a/Examples/postSplitRangePdfDocument.js b/Examples/postSplitRangePdfDocument.js new file mode 100644 index 00000000..c70dc0b9 --- /dev/null +++ b/Examples/postSplitRangePdfDocument.js @@ -0,0 +1,24 @@ +const { PdfApi } = require("asposepdfcloud"); +const { SplitRangePdfOptions } = require("asposepdfcloud/src/models/splitRangePdfOptions"); + +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); + +// Set the document name. +const fileName = "4pages.pdf"; +// +const options = new SplitRangePdfOptions(); +options. +// Use default storage. +const storage = null; +// Set document folder. +const folder = "Documents"; +// Set no password. +const password = null; + +async function main() +{ + const result = await api.postSplitRangePdfDocument(fileName, null, storage, folder, password); + console.log(result.body.status); +} + +main(); \ No newline at end of file diff --git a/Examples/postXmpMetadata.js b/Examples/postXmpMetadata.js new file mode 100644 index 00000000..ca1a6bc2 --- /dev/null +++ b/Examples/postXmpMetadata.js @@ -0,0 +1,101 @@ +// Import the necessary class from the Aspose PDF Cloud SDK +const { PdfApi } = require("asposepdfcloud"); +const { XmpMetadata } = require("asposepdfcloud/src/models/xmpMetadata"); +const { XmpMetadataProperty } = require("asposepdfcloud/src/models/xmpMetadataProperty"); + +// Create an instance of the PdfApi with the base URL +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); + +// Set the document name (the PDF file you want to retrieve metadata from) +const fileName = "example.pdf"; // Replace with your PDF file name +// Set the folder where the document is stored (if applicable) +const folder = "Documents"; // Replace with your folder name if applicable +// Optional parameters +const storage = null; // Specify storage name if using a specific storage +const password = null; // Specify the password if the document is password-protected + +// Initialize properties using empty constructors + +// Property for ModifyDate +const modifyDateProperty = new XmpMetadataProperty(); +// Set the key +modifyDateProperty.Key = "ModifyDate"; +// Set the value to the predefined date +modifyDateProperty.Value = date; + +// Property for xmp:CreateDate +const createDateProperty = new XmpMetadataProperty(); +// Set the key +createDateProperty.Key = "xmp:CreateDate"; +// Set the value to the predefined date +createDateProperty.Value = date; + +// Property for CreatorTool (to be removed) +const creatorToolProperty = new XmpMetadataProperty(); +// Set the key +creatorToolProperty.Key = "CreatorTool"; +// Value is null (indicating removal) +creatorToolProperty.Value = null; + +// Property for BaseURL +const baseUrlProperty = new XmpMetadataProperty(); +// Set the key +baseUrlProperty.Key = "BaseURL"; +// Set the value to a URL +baseUrlProperty.Value = "http://www.somename.com/path"; + +// Property for dc:title (to be removed) +const dcTitleProperty = new XmpMetadataProperty(); +// Set the key +dcTitleProperty.Key = "dc:title"; +// Value is null (indicating removal) +dcTitleProperty.Value = null; + +// Property for pdf:Producer +const pdfProducerProperty = new XmpMetadataProperty(); +// Set the key +pdfProducerProperty.Key = "pdf:Producer"; +// Set the value +pdfProducerProperty.Value = "Aspose.PDF Cloud"; +// Set the namespace URI +pdfProducerProperty.NamespaceUri = "http://ns.adobe.com/pdf/1.3/"; + +// Property for pdf:Prop +const pdfPropProperty = new XmpMetadataProperty(); +// Set the key +pdfPropProperty.Key = "pdf:Prop"; +// Set the value +pdfPropProperty.Value = "PropValue"; +// Set the namespace URI +pdfPropProperty.NamespaceUri = "http://ns.adobe.com/pdf/1.3/"; + +// Create an instance of XmpMetadata +const xmpMetadata = new XmpMetadata() +{ + properties = [ + modifyDateProperty, + createDateProperty, + creatorToolProperty, + baseUrlProperty, + dcTitleProperty, + pdfProducerProperty, + pdfPropProperty + ] +}; + +// Main function to execute the API call +async function main() { + try { + // Call the getXmpMetadataJson method to retrieve the XMP metadata + const result = await api.postXmpMetadata(fileName, xmpMetadata, folder, storage, password); + + // Log the retrieved XMP metadata + console.log(result.body.status); + } catch (error) { + // Handle any errors that occur during the API call + console.error("Error retrieving XMP metadata:", error); + } +} + +// Execute the main function +main(); diff --git a/Examples/putAddText.js b/Examples/putAddText.js index 9334d221..ff52f2d0 100644 --- a/Examples/putAddText.js +++ b/Examples/putAddText.js @@ -1,48 +1,130 @@ +// Import necessary classes from the Aspose PDF Cloud library const { PdfApi } = require("asposepdfcloud"); +const { Color } = require("asposepdfcloud/src/models/color"); +const { FontStyles } = require("asposepdfcloud/src/models/fontStyles"); +const { LineSpacing } = require("asposepdfcloud/src/models/lineSpacing"); const { Paragraph } = require("asposepdfcloud/src/models/paragraph"); +const { TextHorizontalAlignment } = require("asposepdfcloud/src/models/textHorizontalAlignment"); +const { VerticalAlignment } = require("asposepdfcloud/src/models/verticalAlignment"); +const { WrapMode } = require("asposepdfcloud/src/models/wrapMode"); +// Create an instance of the PdfApi with the base URL +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); -pdfApi = new PdfApi("XXXX", "XXXXXXX") - -console.log('running example'); - - -const paragraph = new Paragraph(); -paragraph.rectangle = { lLX: 100, lLY: 100, uRX: 200, uRY: 200 }; -paragraph.leftMargin = 10; -paragraph.rightMargin = 10; -paragraph.topMargin = 20; -paragraph.bottomMargin = 20; -paragraph.horizontalAlignment = TextHorizontalAlignment.FullJustify; -paragraph.lineSpacing = LineSpacing.FontSize; -paragraph.rotation = 10; -paragraph.subsequentLinesIndent = 20; -paragraph.verticalAlignment = VerticalAlignment.Center; -paragraph.wrapMode = WrapMode.ByWords; - -paragraph.lines = [ +// Set the document name +const fileName = "4pages.pdf"; +// Set the page number where the text will be added +const pageNumber = 3; +// Represents color DTO. +const color = new Color +{ + // Set an alpha component. + a = 0, + // Set the red component. + r = 255, + // Set the green component. + g = 255, + // Set the blue component. + b = 255 +}; +// Create a new paragraph object to represent text paragraphs +const paragraph = new Paragraph() +{ + // Set the line spacing mode to FullSize + lineSpacing = LineSpacing.FullSize, + // Set the word wrap mode to wrap by words + wrapMode = WrapMode.ByWords, + // Set the horizontal alignment for the text inside the paragraph + horizontalAlignment = TextHorizontalAlignment.FullJustify, + // Set the left margin for the paragraph + leftMargin = 10, + // Set the right margin for the paragraph + rightMargin = 10, + // Set the top margin for the paragraph + topMargin = 20, + // Set the bottom margin for the paragraph + bottomMargin = 20, + // Define the rectangle area for the paragraph + rectangle = { - horizontalAlignment: TextHorizontalAlignment.Right, - segments: [ - { - value: "segment 1", - textState: { - font: "Arial", - fontSize: 10, - foregroundColor: { a: 0x00, r: 0x00, g: 0xFF, b: 0x00 }, - backgroundColor: { a: 0x00, r: 0xFF, g: 0x00, b: 0x00 }, - fontStyle: FontStyles.Bold + // Lower left x coordinate + lLX: 100, + // Lower left y coordinate + lLY: 100, + // Upper right x coordinate + uRX: 200, + // Upper right y coordinate + uRY: 200 + }, + // Set the rotation angle of the text in degrees + rotation = 10, + // Set the indent for subsequent lines + subsequentLinesIndent = 20, + // Set the vertical alignment for the text inside the paragraph + verticalAlignment = VerticalAlignment.Center, + // Define an array of text lines for the paragraph + lines = + [ + { + // Set the line's horizontal alignment to Right + horizontalAlignment: TextHorizontalAlignment.Right, + // Define the segments that form the line + segments: + [ + { + // Text value for the segment + value: "segment 1", + // Define the text state for formatting + textState: + { + // Set font size of the text + fontSize: 14, + // Set font name of the text + font: "Arial", + // Set foreground color of the text + foregroundColor: color, + // Set background color of the text + backgroundColor: color, + // Set font style of the text + fontStyle: FontStyles.Regular, + // Font file path in storage (null means default font) + fontFile: null, + // Set underline for the text + underline: true, + // Set strikeout for the text + strikeOut: false, + // Set superscript mode for the text + superscript: false, + // Set subscript mode for the text + subscript: false + } } - } - ] - } -]; + ] + } + ] +} -const pageNumber = 3; -const name = "4pages.pdf"; +// Use default storage (null indicates default storage) +const storage = null; +// Set the folder where the document is stored +const folder = "Documents"; + +// Main function to execute the API call +async function main() +{ + // Reference to the Swagger method for adding text + // Available at: https://reference.aspose.cloud/pdf/#/Text/PutAddText + // Call the API to add text to the specified PDF document page + const result = await api.putAddText( + fileName, + pageNumber, + paragraph, + folder, + storage); -pdfApi.putAddText(name, pageNumber, paragraph, null) - .then((result) => { - console.log(result.response); + // TODO: Parse the response to handle the result + console.log(result.body.status); // Log the status of the operation +} - }); \ No newline at end of file +// Execute the main function +main(); diff --git a/Examples/putImageExtractAsGif.js b/Examples/putImageExtractAsGif.js new file mode 100644 index 00000000..4a88b0c1 --- /dev/null +++ b/Examples/putImageExtractAsGif.js @@ -0,0 +1,38 @@ +const { PdfApi } = require("asposepdfcloud"); + +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); + +// The document name. +const fileName = "PdfWithImages2.pdf"; +// Use default storage. +const storage = null; +// Width of coverted image. +const width = 100; +// Heigth of coverted image. +const heigth = 100; +// Set document folder. +const folder = "Documents"; +// Set extracted image folder. +const destFolder = "Images"; + +async function main() +{ + // Read document images. + const imagesResult = await api.getImages(fileName, 1, storage, folder); + const imageId = imagesResult.body.images.list[0].id; + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Images/PutImageExtractAsGif + // Extract document image in GIF format to folder. + const result = await api.putImageExtractAsGif( + fileName, + imageId, + width, + heigth, + storage, + folder, + destFolder); + + console.log(result.body.status) +} + +main(); diff --git a/Examples/putImageExtractAsJpeg.js b/Examples/putImageExtractAsJpeg.js index 46b734a8..ebf9cc56 100644 --- a/Examples/putImageExtractAsJpeg.js +++ b/Examples/putImageExtractAsJpeg.js @@ -1,16 +1,38 @@ const { PdfApi } = require("asposepdfcloud"); -const { PdfAType } = require("asposepdfcloud/src/models/fieldType"); +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); -pdfApi = new PdfApi("XXXX", "XXXXXXX") +// The document name. +const fileName = "PdfWithImages2.pdf"; +// Use default storage. +const storage = null; +// Width of coverted image. +const width = 100; +// Heigth of coverted image. +const heigth = 100; +// Set document folder. +const folder = "Documents"; +// Set extracted image folder. +const destFolder = "Images"; -console.log('running example'); +async function main() +{ + // Read document images. + const imagesResult = await api.getImages(fileName, 1, storage, folder); + const imageId = imagesResult.body.images.list[0].id; + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Images/PutImageExtractAsJpeg + // Extract document image in JPEG format to folder. + const result = await api.putImageExtractAsJpeg( + fileName, + imageId, + width, + heigth, + storage, + folder, + destFolder); + console.log(result.body.status) +} -const result = await BaseTest.getPdfApi().getImages("PdfWithImages2.pdf", 1, null, null); -imageId = result.body.images.list[0].id; - -pdfApi.putImageExtractAsJpeg("PdfWithImages2.pdf", imageId, null, null, null, null, null) - .then((result) => { - console.log(result.response); - }); \ No newline at end of file +main(); diff --git a/Examples/putImageExtractAsPng.js b/Examples/putImageExtractAsPng.js new file mode 100644 index 00000000..3b921e95 --- /dev/null +++ b/Examples/putImageExtractAsPng.js @@ -0,0 +1,38 @@ +const { PdfApi } = require("asposepdfcloud"); + +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); + +// The document name. +const fileName = "PdfWithImages2.pdf"; +// Use default storage. +const storage = null; +// Width of coverted image. +const width = 100; +// Heigth of coverted image. +const heigth = 100; +// Set document folder. +const folder = "Documents"; +// Set extracted image folder. +const destFolder = "Images"; + +async function main() +{ + // Read document images. + const imagesResult = await api.getImages(fileName, 1, storage, folder); + const imageId = imagesResult.body.images.list[0].id; + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Images/PutImageExtractAsPng + // Extract document image in PNG format to folder. + const result = await api.putImageExtractAsPng( + fileName, + imageId, + width, + heigth, + storage, + folder, + destFolder); + + console.log(result.body.status) +} + +main(); diff --git a/Examples/putImageExtractAsTiff.js b/Examples/putImageExtractAsTiff.js new file mode 100644 index 00000000..dd196958 --- /dev/null +++ b/Examples/putImageExtractAsTiff.js @@ -0,0 +1,38 @@ +const { PdfApi } = require("asposepdfcloud"); + +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); + +// The document name. +const fileName = "PdfWithImages2.pdf"; +// Use default storage. +const storage = null; +// Width of coverted image. +const width = 100; +// Heigth of coverted image. +const heigth = 100; +// Set document folder. +const folder = "Documents"; +// Set extracted image folder. +const destFolder = "Images"; + +async function main() +{ + // Read document images. + const imagesResult = await api.getImages(fileName, 1, storage, folder); + const imageId = imagesResult.body.images.list[0].id; + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Images/PutImageExtractAsTiff + // Extract document image in TIFF format to folder. + const result = await api.putImageExtractAsTiff( + fileName, + imageId, + width, + heigth, + storage, + folder, + destFolder); + + console.log(result.body.status) +} + +main(); diff --git a/Examples/putImageInStorageToPdf.js b/Examples/putImageInStorageToPdf.js new file mode 100644 index 00000000..5dd1bbce --- /dev/null +++ b/Examples/putImageInStorageToPdf.js @@ -0,0 +1,56 @@ +const { PdfApi } = require("asposepdfcloud"); +const { ImageSrcType } = require("asposepdfcloud/src/models/imageSrcType"); +const { ImageTemplate } = require("asposepdfcloud/src/models/imageTemplate"); +const { ImageTemplatesRequest } = require("asposepdfcloud/src/models/imageTemplatesRequest"); + +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); + +// The document name. +const fileName = "PdfWithImages2.pdf"; +// Use default storage. +const storage = null; +// Set extracted image folder. +const destFolder = "Images"; +// Initialize image template. +const imageTemplate1 = new ImageTemplate +{ + // Set path to image. + imagePath = "testData/33539.jpg", + // Set image src type. + imageSrcType = ImageSrcType.Common +}; +const imageTemplate2 = new ImageTemplate +{ + // Set path to image. + imagePath = "testData/44781.jpg", + // Set image src type. + imageSrcType = ImageSrcType.Common +}; +// Initialize image template request. +const imageTemplatesRequest = new ImageTemplatesRequest +{ + // Use ocr. + isOCR = true, + // Set language for ocr procedure. + oCRLangs = "eng", + // Image templates. + imagesList = [ imageTemplate1, imageTemplate2 ] +}; + +async function main() +{ + // Read document images. + const imagesResult = await api.getImages(fileName, 1, storage, folder); + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Convert/PutImageInStorageToPdf + // Convert image file (located on storage) to PDF format and upload resulting file to storage. + const result = await api.putImageInStorageToPdf( + fileName, + imageTemplatesRequest, + destFolder, + storage); + + console.log(result.body.status) +} + +main(); diff --git a/Examples/putImagesExtractAsGif.js b/Examples/putImagesExtractAsGif.js index 2d87e105..6dcc009c 100644 --- a/Examples/putImagesExtractAsGif.js +++ b/Examples/putImagesExtractAsGif.js @@ -1,14 +1,37 @@ const { PdfApi } = require("asposepdfcloud"); -const { PdfAType } = require("asposepdfcloud/src/models/fieldType"); +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); -pdfApi = new PdfApi( - "78946fb4-3bd4-4d3e-b309-f9e2ff9ac6f9", "b125f13bf6b76ed81ee990142d841195") +// Set the document name. +const fileName = "PdfWithImages2.pdf"; +// Set the page number. +const pageNumber = 1; +// Use default storage. +const storage = null; +// Set the width of coverted image. +const width = 100; +// Set the heigth of coverted image. +const heigth = 100; +// Set the document folder. +const folder = "Documents"; +// Set an extracted image folder. +const destFolder = "Images"; -console.log('running example'); +async function main() +{ + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Images/PutImagesExtractAsGif + // Extract document images in GIF format to folder. + const response = await api.putImagesExtractAsGif( + fileName, + pageNumber, + width, + heigth, + storage, + folder, + destFolder); + console.log(response.body.status) +} -pdfApi.putImagesExtractAsGif("PdfWithImages2.pdf", 1, null, null, null, null, null) - .then((result) => { - console.log(result.response); - }); \ No newline at end of file +main(); diff --git a/Examples/putImagesExtractAsJpeg.js b/Examples/putImagesExtractAsJpeg.js index 4d8f9a0e..27288d5b 100644 --- a/Examples/putImagesExtractAsJpeg.js +++ b/Examples/putImagesExtractAsJpeg.js @@ -1,13 +1,37 @@ const { PdfApi } = require("asposepdfcloud"); -const { PdfAType } = require("asposepdfcloud/src/models/freeTextAnnotation"); +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); -pdfApi = new PdfApi( - "78946fb4-3bd4-4d3e-b309-f9e2ff9ac6f9", "b125f13bf6b76ed81ee990142d841195") +// Set the document name. +const fileName = "PdfWithImages2.pdf"; +// Set the page number. +const pageNumber = 1; +// Use default storage. +const storage = null; +// Set the width of coverted image. +const width = 100; +// Set the heigth of coverted image. +const heigth = 100; +// Set the document folder. +const folder = "Documents"; +// Set an extracted image folder. +const destFolder = "Images"; -console.log('running example'); +async function main() +{ + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Images/PutImagesExtractAsJpeg + // Extract document images in JPEG format to folder. + const response = await api.putImagesExtractAsJpeg( + fileName, + pageNumber, + width, + heigth, + storage, + folder, + destFolder); -pdfApi.putImagesExtractAsJpeg("PdfWithImages2.pdf", 1, null, null, null, null, null) - .then((result) => { - console.log(result.response); - }); \ No newline at end of file + console.log(response.body.status) +} + +main(); diff --git a/Examples/putImagesExtractAsPng.js b/Examples/putImagesExtractAsPng.js index 893fadbd..47733087 100644 --- a/Examples/putImagesExtractAsPng.js +++ b/Examples/putImagesExtractAsPng.js @@ -1,14 +1,37 @@ const { PdfApi } = require("asposepdfcloud"); -const { PdfAType } = require("asposepdfcloud/src/models/fieldType"); +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); -pdfApi = new PdfApi( - "78946fb4-3bd4-4d3e-b309-f9e2ff9ac6f9", "b125f13bf6b76ed81ee990142d841195") +// Set the document name. +const fileName = "PdfWithImages2.pdf"; +// Set the page number. +const pageNumber = 1; +// Use default storage. +const storage = null; +// Set the width of coverted image. +const width = 100; +// Set the heigth of coverted image. +const heigth = 100; +// Set the document folder. +const folder = "Documents"; +// Set an extracted image folder. +const destFolder = "Images"; -console.log('running example'); +async function main() +{ + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Images/PutImagesExtractAsPng + // Extract document images in PNG format to folder. + const response = await api.putImagesExtractAsPng( + fileName, + pageNumber, + width, + heigth, + storage, + folder, + destFolder); + console.log(response.body.status) +} -pdfApi.putImagesExtractAsPng("PdfWithImages2.pdf", 1, null, null, null, null, null) - .then((result) => { - console.log(result.response); - }); \ No newline at end of file +main(); diff --git a/Examples/putImagesExtractAsTiff.js b/Examples/putImagesExtractAsTiff.js index 5c2e2e5e..fbe3958e 100644 --- a/Examples/putImagesExtractAsTiff.js +++ b/Examples/putImagesExtractAsTiff.js @@ -1,12 +1,37 @@ const { PdfApi } = require("asposepdfcloud"); -const { PdfAType } = require("asposepdfcloud/src/models/fieldType"); +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); -pdfApi = new PdfApi("XXXX", "XXXXXXX") +// Set the document name. +const fileName = "PdfWithImages2.pdf"; +// Set the page number. +const pageNumber = 1; +// Use default storage. +const storage = null; +// Set the width of coverted image. +const width = 100; +// Set the heigth of coverted image. +const heigth = 100; +// Set the document folder. +const folder = "Documents"; +// Set an extracted image folder. +const destFolder = "Images"; -console.log('running example'); +async function main() +{ + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Images/PutImagesExtractAsTiff + // Extract document images in TIFF format to folder. + const response = await api.putImagesExtractAsTiff( + fileName, + pageNumber, + width, + heigth, + storage, + folder, + destFolder); -pdfApi.putImagesExtractAsTiff("PdfWithImages2.pdf", 1, null, null, null, null, null) - .then((result) => { - console.log(result.response); - }); \ No newline at end of file + console.log(response.body.status) +} + +main(); diff --git a/Examples/putMergeDocuments.js b/Examples/putMergeDocuments.js index 4a975256..4935d019 100644 --- a/Examples/putMergeDocuments.js +++ b/Examples/putMergeDocuments.js @@ -1,23 +1,25 @@ const { PdfApi } = require("asposepdfcloud"); -const { PdfAType } = require("asposepdfcloud/src/models/mergeDocuments"); +const { MergeDocuments } = require("asposepdfcloud/src/models/mergeDocuments"); +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); - -pdfApi = new PdfApi("XXXX", "XXXXXXX") - -console.log('running example'); - - -const names = ["4pages.pdf", "PdfWithImages2.pdf", "marketing.pdf"]; +// Use default storage. +const storage = null; +// Set document folder. +const folder = "Documents"; +// Set result file name. const resultName = "MergingResult.pdf"; +// Create merge request. const mergeDocuments = new MergeDocuments(); -mergeDocuments.list = []; -names.forEach((file) => { - mergeDocuments.list.push(file); -}); - - -pdfApi.putMergeDocuments(resultName, mergeDocuments, null, null) - .then((result) => { - console.log(result.response); - }); +mergeDocuments.list = [folder + "/4pages.pdf", folder + "/PdfWithImages2.pdf", folder + "/marketing.pdf"]; + +async function main() +{ + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Merge/PutMergeDocuments + // Merge a list of documents. + const result = await api.putMergeDocuments(resultName, mergeDocuments, storage, folder); + console.log(result.body.status); +} + +main(); diff --git a/Examples/putPageConvertToPng.js b/Examples/putPageConvertToPng.js index e436e1d5..d7502337 100644 --- a/Examples/putPageConvertToPng.js +++ b/Examples/putPageConvertToPng.js @@ -1,12 +1,31 @@ const { PdfApi } = require("asposepdfcloud"); -const { PdfAType } = require("asposepdfcloud/src/models/movieAnnotation"); +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); -pdfApi = new PdfApi("XXXX", "XXXXXXX") -console.log('running example'); +// Set the document name. +const fileName = "4pages.pdf"; +// Set the page number. +const pageNumber = 1; +// Set an extracted image path. +const outPath = "Images/" + fileName + "_" + pageNumber + ".png"; +// Set the width of coverted image. +const width = (595 / 2) | 0; +// Set the heigth of coverted image. +const heigth = (842 / 2) | 0; +// Set document folder. +const folder = "Documents"; +// Use default storage. +const storage = null; +// Set no password. +const password = null; +async function main() +{ + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Pages/PutPageConvertToPng + // Convert document page to png image and upload resulting file to storage. + const response = await api.putPageConvertToPng(fileName, pageNumber, outPath, width, heigth, folder, storage, password); + console.log(response.body.status) +} -pdfApi.putPageConvertToPng("4pages.pdf", 1, "page.png", null, null, null) - .then((result) => { - console.log(result.response); - }); \ No newline at end of file +main(); diff --git a/Examples/putPdfInRequestToDoc.js b/Examples/putPdfInRequestToDoc.js new file mode 100644 index 00000000..37532577 --- /dev/null +++ b/Examples/putPdfInRequestToDoc.js @@ -0,0 +1,55 @@ +const { PdfApi } = require("asposepdfcloud"); +const fs = require("fs"); + +const fileName = "28968-1.pdf"; +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); + +// Detailed description of available parameters at +// https://reference.aspose.com/pdf/net/aspose.pdf/docsaveoptions/ + +// Use paragraph instead of line breaks. +const addReturnToLineEndings = true; +// Convert to doc format (default value). +const format = "doc"; +// Converted images X resolution default value is 300. +const imageResolutionX = 300; +// Converted images Y resolution default value is 300. +const imageResolutionY = 300; +// Specified in hundreds of percent of the text lines height. +const maxDistanceBetweenLines = 10; +// This mode is fast and good for maximally preserving original look of the PDF file. +const mode = "Textbox"; +// Recognition of bullets. +const recognizeBullets = true; +// It's normed to font size - 1.0 means 100% of supposed word's font size +const relativeHorizontalProximity = 1.0; +// Set default storage. +const storage = null; +// Set pdf document password. +const password = null; +// Set an extracted image path. +const outPath = "Doc/" + fileName + "." + format; + +async function main() +{ + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Convert/PutPdfInRequestToDoc + // Converts PDF document (in request content) to DOC format and uploads resulting file to storage. + const result = await api.putPdfInRequestToDoc( + outPath, + addReturnToLineEndings, + format, + imageResolutionX, + imageResolutionY, + maxDistanceBetweenLines, + mode, + recognizeBullets, + relativeHorizontalProximity, + storage, + fs.readFileSync("testData/" + fileName), + password); + + console.log(result.body.status); +} + +main(); diff --git a/Examples/putPdfInRequestToPptx.js b/Examples/putPdfInRequestToPptx.js new file mode 100644 index 00000000..2cf990ed --- /dev/null +++ b/Examples/putPdfInRequestToPptx.js @@ -0,0 +1,37 @@ +const { PdfApi } = require("asposepdfcloud"); +const fs = require("fs"); + +const fileName = "4pages.pdf"; +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); + +// Detailed description of available parameters at +// https://reference.aspose.com/pdf/net/aspose.pdf/pptxsaveoptions/ + +// Set an extracted image path. +const outPath = "Pptx/" + fileName + ".pptx"; +// If set to true then images are separated from all other graphics +const separateImages = true; +// If set to true then all the content is recognized as images (one per page). +const slidesAsImages = false; +// Set default storage. +const storage = null; +// Set pdf document password. +const password = null; + +async function main() +{ + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Convert/PutPdfInRequestToPptx + // Converts PDF document (in request content) to PPTX format and uploads resulting file to storage. + const response = await api.putPdfInRequestToPptx( + outPath, + separateImages, + slidesAsImages, + storage, + password, + fs.readFileSync("testData/" + fileName)); + + console.log(response.body.status); +} + +main(); \ No newline at end of file diff --git a/Examples/putPdfInRequestToXls.js b/Examples/putPdfInRequestToXls.js new file mode 100644 index 00000000..b5277140 --- /dev/null +++ b/Examples/putPdfInRequestToXls.js @@ -0,0 +1,43 @@ +const { PdfApi } = require("asposepdfcloud"); +const fs = require("fs"); + +const fileName = "4pages.pdf"; +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); + +// Detailed description of available parameters at +// https://reference.aspose.com/pdf/net/aspose.pdf/excelsaveoptions/ + +// Set an extracted image path. +const outPath = "Xls/" + fileName + ".xls"; +// Insert blank column at first. +const insertBlankColumnAtFirst = true; +// Save of each PDF page as separated worksheet. +const minimizeTheNumberOfWorksheets = false; +// Obsolete. +const scaleFactor = null; +// Columns division will independent for each page. +const uniformWorksheets = true; +// Set default storage. +const storage = null; +// Set pdf document password. +const password = null; + +async function main() +{ + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Convert/PutPdfInRequestToXls + // Converts PDF document (in request content) to XLS format and uploads resulting file to storage. + const response = await api.putPdfInRequestToXls( + outPath, + insertBlankColumnAtFirst, + minimizeTheNumberOfWorksheets, + scaleFactor, + uniformWorksheets, + storage, + password, + fs.readFileSync("testData/" + fileName)); + + console.log(response.body.status); +} + +main(); \ No newline at end of file diff --git a/Examples/putPdfInRequestToXlsx.js b/Examples/putPdfInRequestToXlsx.js new file mode 100644 index 00000000..6224df13 --- /dev/null +++ b/Examples/putPdfInRequestToXlsx.js @@ -0,0 +1,43 @@ +const { PdfApi } = require("asposepdfcloud"); +const fs = require("fs"); + +const fileName = "4pages.pdf"; +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); + +// Detailed description of available parameters at +// https://reference.aspose.com/pdf/net/aspose.pdf/excelsaveoptions/ + +// Set an extracted image path. +const outPath = "Xls/" + fileName + ".xlsx"; +// Insert blank column at first. +const insertBlankColumnAtFirst = true; +// Save of each PDF page as separated worksheet. +const minimizeTheNumberOfWorksheets = false; +// Obsolete. +const scaleFactor = null; +// Columns division will independent for each page. +const uniformWorksheets = true; +// Set default storage. +const storage = null; +// Set pdf document password. +const password = null; + +async function main() +{ + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Convert/PutPdfInRequestToXlsx + // Converts PDF document (in request content) to XLSX format and uploads resulting file to storage. + const response = await api.putPdfInRequestToXlsx( + outPath, + insertBlankColumnAtFirst, + minimizeTheNumberOfWorksheets, + scaleFactor, + uniformWorksheets, + storage, + password, + fs.readFileSync("testData/" + fileName)); + + console.log(response.body.status); +} + +main(); \ No newline at end of file diff --git a/Examples/putPdfInStorageToDoc.js b/Examples/putPdfInStorageToDoc.js new file mode 100644 index 00000000..4abe8190 --- /dev/null +++ b/Examples/putPdfInStorageToDoc.js @@ -0,0 +1,57 @@ +const { PdfApi } = require("asposepdfcloud"); + +const fileName = "28968-1.pdf"; +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); + +// Detailed description of available parameters at +// https://reference.aspose.com/pdf/net/aspose.pdf/docsaveoptions/ + +// Use paragraph instead of line breaks. +const addReturnToLineEndings = true; +// Convert to doc format (default value). +const format = "doc"; +// Converted images X resolution default value is 300. +const imageResolutionX = 300; +// Converted images Y resolution default value is 300. +const imageResolutionY = 300; +// Specified in hundreds of percent of the text lines height. +const maxDistanceBetweenLines = 10; +// This mode is fast and good for maximally preserving original look of the PDF file. +const mode = "Textbox"; +// Recognition of bullets. +const recognizeBullets = true; +// It's normed to font size - 1.0 means 100% of supposed word's font size +const relativeHorizontalProximity = 1.0; +// Set root folder. +const folder = "Documents"; +// Set default storage. +const storage = null; +// Set pdf document password. +const password = null; +// Set an extracted image path. +const outPath = "Doc/" + fileName + "." + format; + +async function main() +{ + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Convert/PutPdfInStorageToDoc + // Converts PDF document (located on storage) to DOC format and uploads resulting file to storage. + const result = await api.putPdfInStorageToDoc( + fileName, + fileName + "." + format, + addReturnToLineEndings, + format, + imageResolutionX, + imageResolutionY, + maxDistanceBetweenLines, + mode, + recognizeBullets, + relativeHorizontalProximity, + folder, + storage, + password); + + console.log(result.body.status); +} + +main(); diff --git a/Examples/putPdfInStorageToPptx.js b/Examples/putPdfInStorageToPptx.js new file mode 100644 index 00000000..af519421 --- /dev/null +++ b/Examples/putPdfInStorageToPptx.js @@ -0,0 +1,38 @@ +const { PdfApi } = require("asposepdfcloud"); + +const fileName = "4pages.pdf"; +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); + +// Detailed description of available parameters at +// https://reference.aspose.com/pdf/net/aspose.pdf/pptxsaveoptions/ + +// Set an extracted image path. +const outPath = "Pptx/" + fileName + ".pptx"; +// If set to true then images are separated from all other graphics +const separateImages = true; +// If set to true then all the content is recognized as images (one per page). +const slidesAsImages = false; +// Set root folder. +const folder = "Documents"; +// Set default storage. +const storage = null; +// Set pdf document password. +const password = null + +async function main() +{ + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Convert/PutPdfInStorageToPptx + // Converts PDF document (located on storage) to PPTX format and uploads resulting file to storage + const response = await api.putPdfInStorageToPptx(fileName, + outPath, + separateImages, + slidesAsImages, + folder, + storage, + password); + + console.log(response.response.statusCode); +} + +main(); \ No newline at end of file diff --git a/Examples/putPdfInStorageToXls.js b/Examples/putPdfInStorageToXls.js new file mode 100644 index 00000000..a3b949b6 --- /dev/null +++ b/Examples/putPdfInStorageToXls.js @@ -0,0 +1,44 @@ +const { PdfApi } = require("asposepdfcloud"); + +const fileName = "28968-1.pdf"; +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); + +// Detailed description of available parameters at +// https://reference.aspose.com/pdf/net/aspose.pdf/excelsaveoptions/ + +// Set an extracted image path. +const outPath = "Xls/" + fileName + ".xls"; +// Insert blank column at first. +const insertBlankColumnAtFirst = true; +// Save of each PDF page as separated worksheet. +const minimizeTheNumberOfWorksheets = false; +// Obsolete. +const scaleFactor = null; +// Columns division will independent for each page. +const uniformWorksheets = true; +// Set root folder. +const folder = "Documents"; +// Set default storage. +const storage = null; +// Set pdf document password. +const password = null; + +async function main() +{ + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Convert/PutPdfInStorageToXls + // Converts PDF document (located on storage) to XLS format and uploads resulting file to storage + const result = await api.putPdfInStorageToXls(fileName, + outPath, + insertBlankColumnAtFirst, + minimizeTheNumberOfWorksheets, + scaleFactor, + uniformWorksheets, + folder, + storage, + password); + + console.log(result.body.status); +} + +main(); \ No newline at end of file diff --git a/Examples/putPdfInStorageToXlsx.js b/Examples/putPdfInStorageToXlsx.js new file mode 100644 index 00000000..b7c62b2b --- /dev/null +++ b/Examples/putPdfInStorageToXlsx.js @@ -0,0 +1,44 @@ +const { PdfApi } = require("asposepdfcloud"); + +const fileName = "4pages.pdf"; +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); + +// Detailed description of available parameters at +// https://reference.aspose.com/pdf/net/aspose.pdf/excelsaveoptions/ + +// Set an extracted image path. +const outPath = "Xls/" + fileName + ".xlsx"; +// Insert blank column at first. +const insertBlankColumnAtFirst = true; +// Save of each PDF page as separated worksheet. +const minimizeTheNumberOfWorksheets = false; +// Obsolete. +const scaleFactor = null; +// Columns division will independent for each page. +const uniformWorksheets = true; +// Set root folder. +const folder = "Documents"; +// Set default storage. +const storage = null; +// Set pdf document password. +const password = null + +async function main() +{ + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Convert/PutPdfInStorageToXlsx + // Converts PDF document (located on storage) to XLSX format and uploads resulting file to storage + const response = await api.putPdfInStorageToXlsx(fileName, + outPath, + insertBlankColumnAtFirst, + minimizeTheNumberOfWorksheets, + scaleFactor, + uniformWorksheets, + folder, + storage, + password); + + console.log(response.response.statusCode); +} + +main(); \ No newline at end of file diff --git a/Examples/putReplaceImage.js b/Examples/putReplaceImage.js new file mode 100644 index 00000000..fe90f704 --- /dev/null +++ b/Examples/putReplaceImage.js @@ -0,0 +1,35 @@ +const { PdfApi } = require("asposepdfcloud"); + +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); + +// The document name. +const fileName = "PdfWithImages2.pdf"; +// Path to image file in storage. Image content is used otherwise. +const imageFilePath = ""; +// Use default storage. +const storage = null; +// Set document folder. +const folder = "Documents"; +// Set image buffer. +const imageContent = null + +async function main() +{ + // Read document images. + const imagesResult = await api.getImages(fileName, 1, storage, folder); + const imageId = imagesResult.body.images.list[0].id; + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Images/PutReplaceImage + // Replace document image. + const result = await api.putReplaceImage( + fileName, + imageId, + imageFilePath, + storage, + folder, + imageContent); + + console.log(result.body.status); +} + +main(); diff --git a/Examples/putReplaceMultipleImage.js b/Examples/putReplaceMultipleImage.js new file mode 100644 index 00000000..6939fd5f --- /dev/null +++ b/Examples/putReplaceMultipleImage.js @@ -0,0 +1,34 @@ +const { PdfApi } = require("asposepdfcloud"); + +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); + +// The document name. +const fileName = "PdfWithImages2.pdf"; +// Path to image file in storage. Image content is used otherwise. +const imageFilePath = ""; +// Use default storage. +const storage = null; +// Set document folder. +const folder = "Documents"; +// Set image buffer. +const imageContent = null + +async function main() +{ + // Read document images. + const imagesResult = await api.getImages(fileName, 1, storage, folder); + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Images/PutReplaceMultipleImage + // Replace document image. + const result = await api.putReplaceMultipleImage( + fileName, + imagesResult.body.images.list, + imageFilePath, + storage, + folder, + imageContent); + + console.log(result.body.status); +} + +main(); diff --git a/Examples/uploadFile.js b/Examples/uploadFile.js new file mode 100644 index 00000000..c2b1c6e1 --- /dev/null +++ b/Examples/uploadFile.js @@ -0,0 +1,15 @@ +const { PdfApi } = require("asposepdfcloud"); +const fs = require("fs"); + +const fileName = "PdfWithImages2.pdf"; +const folder = "Documents"; +const storage = null; +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); + +async function main() +{ + const response = await api.uploadFile(folder + "/" +fileName, fs.readFileSync("testData/" + fileName), storage) + console.log(response.body.uploaded[0]) +} + +main(); From 37c3afe0ddf7143652b5437bb50b0783f322d9cd Mon Sep 17 00:00:00 2001 From: "kirill.novinskiy@aspose.com" Date: Tue, 19 Nov 2024 18:02:35 +0300 Subject: [PATCH 2/4] add useCases --- useCases/convertToPdf3A.js | 52 ++++++++++++ useCases/textAdd.js | 158 +++++++++++++++++++++++++++++++++++++ useCases/textDeletejs | 67 ++++++++++++++++ useCases/textExtract.js | 72 +++++++++++++++++ useCases/textReplace.js | 131 ++++++++++++++++++++++++++++++ 5 files changed, 480 insertions(+) create mode 100644 useCases/convertToPdf3A.js create mode 100644 useCases/textAdd.js create mode 100644 useCases/textDeletejs create mode 100644 useCases/textExtract.js create mode 100644 useCases/textReplace.js diff --git a/useCases/convertToPdf3A.js b/useCases/convertToPdf3A.js new file mode 100644 index 00000000..fd15fd24 --- /dev/null +++ b/useCases/convertToPdf3A.js @@ -0,0 +1,52 @@ +// Import necessary classes from the Aspose PDF Cloud library +const fs = require("fs"); +const { PdfApi } = require("asposepdfcloud"); +const { PdfAType } = require("asposepdfcloud/src/models/pdfAType"); + +// The initialization assumes that the necessary credentials (Application ID and Application Key) from https://dashboard.aspose.cloud/ +const api = new PdfApi("YOUR_API_SID", "YOUR_API_KEY"); + +// Set the document name +const fileName = "4pages.pdf"; +// Set the document name +const outputPath = "PDF3A/4pages.pdf"; +// Use default storage (null indicates default storage) +const storage = null; +// Set the folder where the document is stored +const folder = "Documents"; +// Set the pdf document has no password. +const password = null; + +/** + * Convert the PDF document to PDF3A using the Aspose.PDF Cloud API. + * + * This function performs the following steps: + * 1. Reads a PDF file from the local file system. + * 2. Uploads the PDF file to the Aspose.PDF Cloud storage. + * 3. Convert PDF document to PDF3A format using the Aspose.PDF Cloud API. + * 5. Logs the result to the console. + * + * @returns {Promise} A Promise that resolves when the adding text is complete. + */ +async function getPdfInStorageToPdfA() +{ + // Read file from file system. + const buffer = fs.readFileSync("testData/" + fileName); + // Upload file to cloud storage. + const uploadResponse = await api.uploadFile(folder + "/" +fileName, buffer, storage) + // Swagger method for adding text: https://reference.aspose.cloud/pdf/#/Convert/PutPdfAInStorageToPdf + // Call the API to convert the specified PDF document to PDF3A format + const result = await api.putPdfInStorageToPdfA( + uploadResponse.body.uploaded[0], + outputPath, + PdfAType.PDFA3A, + folder, + storage, + password); + + // Log the response to console. + console.log(result.body.status); // Log the status of the operation +} + +// Execute the putAddText function +getPdfInStorageToPdfA(); diff --git a/useCases/textAdd.js b/useCases/textAdd.js new file mode 100644 index 00000000..cb69d6f1 --- /dev/null +++ b/useCases/textAdd.js @@ -0,0 +1,158 @@ +// Import necessary classes from the Aspose PDF Cloud library +const fs = require("fs"); +const { PdfApi } = require("../src/api/api"); +const { Color } = require("../src/models/color"); +const { FontStyles } = require("../src/models/fontStyles"); +const { LineSpacing } = require("../src/models/lineSpacing"); +const { Paragraph } = require("../src/models/paragraph"); +const { TextHorizontalAlignment } = require("../src/models/textHorizontalAlignment"); +const { VerticalAlignment } = require("../src/models/verticalAlignment"); +const { WrapMode } = require("../src/models/wrapMode"); +const { TextLine } = require("asposepdfcloud/src/models/textLine"); +const { Segment } = require("asposepdfcloud/src/models/segment"); +const { Rectangle } = require("asposepdfcloud/src/models/rectangle"); +const { TextState } = require("asposepdfcloud/src/models/textState"); + +// The initialization assumes that the necessary credentials (Application ID and Application Key) from https://dashboard.aspose.cloud/ +const api = new PdfApi("YOUR_API_SID", "YOUR_API_KEY"); + +// Set the document name +const fileName = "4pages.pdf"; +// Set the page number where the text will be added +const pageNumber = 3; +// Use default storage (null indicates default storage) +const storage = null; +// Set the folder where the document is stored +const folder = "Documents"; + +/** + * Add text to a PDF document page using the Aspose.PDF Cloud API. + * + * This function performs the following steps: + * 1. Reads a PDF file from the local file system. + * 2. Uploads the PDF file to the Aspose.PDF Cloud storage. + * 3. Creates an `Paragraph` object with the inserted text. + * 4. Put text on the third page of PDF document using the Aspose.PDF Cloud API. + * 5. Logs the result to the console. + * + * @returns {Promise} A Promise that resolves when the adding text is complete. + */ +async function putAddText() +{ + // Read file from file system. + const buffer = fs.readFileSync("testData/" + fileName); + // Upload file to cloud storage. + const uploadResponse = await api.uploadFile(folder + "/" +fileName, buffer, storage) + + // Represents color DTO. + const foregroundColor = new Color(); + // Set an alpha component. + foregroundColor.a = 255; + // Set the red component. + foregroundColor.r = 0; + // Set the green component. + foregroundColor.g = 0; + // Set the blue component. + foregroundColor.b = 255; + + // Represents color DTO. + const backgroundColor = new Color(); + // Set an alpha component. + backgroundColor.a = 100; + // Set the red component. + backgroundColor.r = 255; + // Set the green component. + backgroundColor.g = 255; + // Set the blue component. + backgroundColor.b = 0; + + // Create the new paragraph object to represent text paragraphs + const rectangle = new Rectangle(); + // Lower left x coordinate + rectangle.lLX = 10; + // Lower left y coordinate + rectangle.lLY = 10; + // Upper right x coordinate + rectangle.uRX = 300; + // Upper right y coordinate + rectangle.uRY = 500; + + // Create the new text state. + const textState = new TextState(); + // Set font size of the text + textState.fontSize = 20; + // Set font name of the text + textState.font = "Arial"; + // Set foreground color of the text + textState.foregroundColor = foregroundColor; + // Set background color of the text + textState.backgroundColor = backgroundColor; + // Set font style of the text + textState.fontStyle = FontStyles.Regular; + // Font file path in storage (null means default font) + textState.fontFile = null; + // Set underline for the text + textState.underline = true; + // Set strikeout for the text + textState.strikeOut = false; + // Set superscript mode for the text + textState.superscript = false; + // Set subscript mode for the text + textState.subscript = false; + + // Create the new text segment. + const segment = new Segment(); + // Text value for the segment + segment.value = "segment text 1 with text state"; + // Define the text state for formatting + segment.textState = textState; + + // Create the new text line. + const textLine = new TextLine(); + // Set the line's horizontal alignment to Right + textLine.horizontalAlignment = TextHorizontalAlignment.Right; + // Define the segments that form the line + textLine.segments = [segment]; + + // Create new text paragraph. + const paragraph = new Paragraph(); + // Set the line spacing mode to FullSize + paragraph.lineSpacing = LineSpacing.FullSize; + // Set the word wrap mode to wrap by words + paragraph.wrapMode = WrapMode.ByWords; + // Set the horizontal alignment for the text inside the paragraph + paragraph.horizontalAlignment = TextHorizontalAlignment.FullJustify; + // Set the left margin for the paragraph + paragraph.leftMargin = 100; + // Set the right margin for the paragraph + paragraph.rightMargin = 100; + // Set the top margin for the paragraph + paragraph.topMargin = 200; + // Set the bottom margin for the paragraph + paragraph.bottomMargin = 200; + // Define the rectangle area for the paragraph + paragraph.rectangle = rectangle; + // Set the rotation angle of the text in degrees + paragraph.rotation = 10, + // Set the indent for subsequent lines + paragraph.subsequentLinesIndent = 30, + // Set the vertical alignment for the text inside the paragraph + paragraph.vercolorticalAlignment = VerticalAlignment.Center, + // Define an array of text lines for the paragraph + paragraph.lines = [textLine]; + + // Swagger method for adding text: https://reference.aspose.cloud/pdf/#/Text/PutAddText + // Call the API to add text to the specified PDF document page + const result = await api.putAddText( + uploadResponse.body.uploaded[0], + pageNumber, + paragraph, + folder, + storage); + + // Log the response to console. + console.log(result.body.status); // Log the status of the operation +} + +// Execute the putAddText function +putAddText(); diff --git a/useCases/textDeletejs b/useCases/textDeletejs new file mode 100644 index 00000000..765d9965 --- /dev/null +++ b/useCases/textDeletejs @@ -0,0 +1,67 @@ +// Import necessary classes from the Aspose PDF Cloud library +const fs = require("fs"); +const { PdfApi } = require("../src/api/api"); +const { TextReplace } = require("asposepdfcloud/src/models/textReplace"); +const { TextReplaceListRequest } = require("asposepdfcloud/src/models/textReplaceListRequest"); + +// The initialization assumes that the necessary credentials (Application ID and Application Key) from https://dashboard.aspose.cloud/ +const api = new PdfApi("YOUR_API_SID", "YOUR_API_KEY"); + +// Set the document name +const fileName = "4pages.pdf"; +// Use default storage (null indicates default storage) +const storage = null; +// Set the folder where the document is stored +const folder = "Documents"; + +/** + * Delete text of a PDF document using the Aspose.PDF Cloud API. + * + * This function performs the following steps: + * 1. Reads a PDF file from the local file system. + * 2. Uploads the PDF file to the Aspose.PDF Cloud storage. + * 3. Creates an `TextReplaceListRequest` object with the replacements list. + * 4. Delete text of PDF document using the Aspose.PDF Cloud API. + * 5. Logs the result to the console. + * + * @returns {Promise} A promise that is resolves after text deletion is complete. + */ +async function postDocumentTextDelete() +{ + // Read file from file system. + const buffer = fs.readFileSync("testData/" + fileName); + // Upload file to cloud storage. + const uploadResponse = await api.uploadFile(folder + "/" +fileName, buffer, storage) + + // Create TextReplace request. + const textReplace = new TextReplace(); + // Set the text to replace. + textReplace.oldValue = "Page"; + // Set the replacement text. + textReplace.newValue = ""; + // Set the oldValue is regex. + textReplace.regex = false; + + // Create TextReplaceListRequest instance. + const textReplaceList = new TextReplaceListRequest(); + // Set the text replaces list. + textReplaceList.textReplaces = [textReplace]; + // Set the start index of text items to replace. + textReplaceList.startIndex = 2; + // Set the count replacements. + textReplaceList.countReplace = 2; + + // Swagger method for adding text: https://reference.aspose.cloud/pdf/#/TextReplace/PostDocumentTextReplace + // Call the API to replace text in the specified PDF document. + const result = await api.postDocumentTextReplace( + uploadResponse.body.uploaded[0], + textReplaceList, + storage, + folder); + + // Log the response to console. + console.log(result.body.status); +} + +// Execute the postDocumentTextReplace function +postDocumentTextDelete(); diff --git a/useCases/textExtract.js b/useCases/textExtract.js new file mode 100644 index 00000000..686949a6 --- /dev/null +++ b/useCases/textExtract.js @@ -0,0 +1,72 @@ +// Import necessary classes from the Aspose PDF Cloud library +const fs = require("fs"); +const { PdfApi } = require("asposepdfcloud"); + +// The initialization assumes that the necessary credentials (Application ID and Application Key) from https://dashboard.aspose.cloud/ +// const api = new PdfApi("YOUR_API_SID", "YOUR_API_KEY"); +const api = new PdfApi("http://172.17.0.1:5000/v3.0"); + +// The document name. +const fileName = "4pages.pdf"; +// Use default storage. +const storage = null; +// Set document folder. +const folder = "Documents"; + +/** + * Extract text of a PDF document using the Aspose.PDF Cloud API. + * + * This function performs the following steps: + * 1. Reads a PDF file from the local file system. + * 2. Uploads the PDF file to the Aspose.PDF Cloud storage. + * 3. Initializing parameters for searching text on a PDF document page. + * 4. Read text of PDF document using the Aspose.PDF Cloud API. + * 5. Logs an extracted text. + * + * @returns {Promise} A promise that is resolves after text extraction is complete. + */ +async function extractText() +{ + // Read file from file system. + const buffer = fs.readFileSync("testData/" + fileName); + // Upload file to cloud storage. + const uploadResponse = await api.uploadFile(folder + "/" +fileName, buffer, storage) + + // X-coordinate of lower-left corner. + const llx = 100; + // Y-coordinate of lower-left corner. + const lly = 700; + // X-coordinate of upper-right corner. + const urx = 200; + // Y-coordinate of upper-right corner. + const ury = 800; + // List of formats to search. + const format = [ ".* Page" ]; + // Formats are specified as a regular expression. + const regex = true; + // Split result fragments (default is true). + const splitRects = true; + + // Swagger method definition available at + // https://reference.aspose.cloud/pdf/#/Text/GetText + // Extract document text. + const result = await api.getText( + uploadResponse.body.uploaded[0], + llx, + lly, + urx, + ury, + format, + regex, + splitRects, + folder, + storage); + + // Log extracted text. + for (const text of result.body.textOccurrences.list) + { + console.log(text.text); + } +} + +extractText(); diff --git a/useCases/textReplace.js b/useCases/textReplace.js new file mode 100644 index 00000000..734145a3 --- /dev/null +++ b/useCases/textReplace.js @@ -0,0 +1,131 @@ +// Import necessary classes from the Aspose PDF Cloud library +const fs = require("fs"); +const { PdfApi } = require("../src/api/api"); +const { Color } = require("../src/models/color"); +const { FontStyles } = require("../src/models/fontStyles"); +const { Rectangle } = require("asposepdfcloud/src/models/rectangle"); +const { TextState } = require("asposepdfcloud/src/models/textState"); +const { TextReplace } = require("asposepdfcloud/src/models/textReplace"); +const { TextReplaceListRequest } = require("asposepdfcloud/src/models/textReplaceListRequest"); + +// The initialization assumes that the necessary credentials (Application ID and Application Key) from https://dashboard.aspose.cloud/ +const api = new PdfApi("YOUR_API_SID", "YOUR_API_KEY"); + +// Set the document name +const fileName = "4pages.pdf"; +// Use default storage (null indicates default storage) +const storage = null; +// Set the folder where the document is stored +const folder = "Documents"; + +/** + * Replace text of a PDF document using the Aspose.PDF Cloud API. + * + * This function performs the following steps: + * 1. Reads a PDF file from the local file system. + * 2. Uploads the PDF file to the Aspose.PDF Cloud storage. + * 3. Creates an `TextReplaceListRequest` object with the replacements list. + * 4. Replace text of PDF document using the Aspose.PDF Cloud API. + * 5. Logs the result to the console. + * + * @returns {Promise} A promise that is resolves after text replacement is complete. + */ +async function postDocumentTextReplace() +{ + // Read file from file system. + const buffer = fs.readFileSync("testData/" + fileName); + // Upload file to cloud storage. + const uploadResponse = await api.uploadFile(folder + "/" +fileName, buffer, storage) + + // Represents color DTO. + const foregroundColor = new Color(); + // Set an alpha component. + foregroundColor.a = 255; + // Set the red component. + foregroundColor.r = 0; + // Set the green component. + foregroundColor.g = 0; + // Set the blue component. + foregroundColor.b = 255; + + // Represents color DTO. + const backgroundColor = new Color(); + // Set an alpha component. + backgroundColor.a = 100; + // Set the red component. + backgroundColor.r = 255; + // Set the green component. + backgroundColor.g = 255; + // Set the blue component. + backgroundColor.b = 0; + + // Create the new paragraph object to represent text paragraphs. + const rectangle = new Rectangle(); + // Lower left x coordinate. + rectangle.lLX = 10; + // Lower left y coordinate. + rectangle.lLY = 10; + // Upper right x coordinate. + rectangle.uRX = 300; + // Upper right y coordinate. + rectangle.uRY = 500; + + // Create the new text state. + const textState = new TextState(); + // Set font size of the text. + textState.fontSize = 12; + // Set font name of the text. + textState.font = "Arial"; + // Set foreground color of the text. + textState.foregroundColor = foregroundColor; + // Set background color of the text. + textState.backgroundColor = backgroundColor; + // Set font style of the text. + textState.fontStyle = FontStyles.Regular; + // Font file path in storage (null means default font). + textState.fontFile = null; + // Set underline for the text. + textState.underline = true; + // Set strikeout for the text. + textState.strikeOut = false; + // Set superscript mode for the text. + textState.superscript = false; + // Set subscript mode for the text. + textState.subscript = false; + + // Create TextReplace request. + const textReplace = new TextReplace(); + // Set the text to replace. + textReplace.oldValue = "Page"; + // Set the replacement text. + textReplace.newValue = "Replacement"; + // Set the oldValue is regex. + textReplace.regex = false; + // Set the text state. + textReplace.textState = textState; + // Set the text aligment. + textReplace.centerTextHorizontally = false; + + // Create TextReplaceListRequest instance. + const textReplaceList = new TextReplaceListRequest(); + // Set the text replaces list. + textReplaceList.textReplaces = [textReplace]; + // Set the start index of text items to replace. + textReplaceList.startIndex = 2; + // Set the count replacements. + textReplaceList.countReplace = 2; + + // Swagger method for adding text: https://reference.aspose.cloud/pdf/#/TextReplace/PostDocumentTextReplace + // Call the API to replace text in the specified PDF document. + const result = await api.postDocumentTextReplace( + uploadResponse.body.uploaded[0], + textReplaceList, + storage, + folder); + + // Log the response to console. + console.log(result.body.status); +} + +// Execute the postDocumentTextReplace function +postDocumentTextReplace(); From 0be9e4484a3b73544b13f6db1995cd802cd53a37 Mon Sep 17 00:00:00 2001 From: "kirill.novinskiy@aspose.com" Date: Wed, 20 Nov 2024 08:35:16 +0000 Subject: [PATCH 3/4] fix imports --- useCases/textAdd.js | 16 ++++++++-------- useCases/textDeletejs | 2 +- useCases/textExtract.js | 3 +-- useCases/textReplace.js | 6 +++--- 4 files changed, 13 insertions(+), 14 deletions(-) diff --git a/useCases/textAdd.js b/useCases/textAdd.js index cb69d6f1..31dcb7a0 100644 --- a/useCases/textAdd.js +++ b/useCases/textAdd.js @@ -1,13 +1,13 @@ // Import necessary classes from the Aspose PDF Cloud library const fs = require("fs"); -const { PdfApi } = require("../src/api/api"); -const { Color } = require("../src/models/color"); -const { FontStyles } = require("../src/models/fontStyles"); -const { LineSpacing } = require("../src/models/lineSpacing"); -const { Paragraph } = require("../src/models/paragraph"); -const { TextHorizontalAlignment } = require("../src/models/textHorizontalAlignment"); -const { VerticalAlignment } = require("../src/models/verticalAlignment"); -const { WrapMode } = require("../src/models/wrapMode"); +const { PdfApi } = require("asposepdfcloud"); +const { Color } = require("asposepdfcloud/src/models/color"); +const { FontStyles } = require("asposepdfcloud/src/models/fontStyles"); +const { LineSpacing } = require("asposepdfcloud/src/models/lineSpacing"); +const { Paragraph } = require("asposepdfcloud/src/models/paragraph"); +const { TextHorizontalAlignment } = require("asposepdfcloud/src/models/textHorizontalAlignment"); +const { VerticalAlignment } = require("asposepdfcloud/src/models/verticalAlignment"); +const { WrapMode } = require("asposepdfcloud/src/models/wrapMode"); const { TextLine } = require("asposepdfcloud/src/models/textLine"); const { Segment } = require("asposepdfcloud/src/models/segment"); const { Rectangle } = require("asposepdfcloud/src/models/rectangle"); diff --git a/useCases/textDeletejs b/useCases/textDeletejs index 765d9965..508248b9 100644 --- a/useCases/textDeletejs +++ b/useCases/textDeletejs @@ -1,6 +1,6 @@ // Import necessary classes from the Aspose PDF Cloud library const fs = require("fs"); -const { PdfApi } = require("../src/api/api"); +const { PdfApi } = require("asposepdfcloud"); const { TextReplace } = require("asposepdfcloud/src/models/textReplace"); const { TextReplaceListRequest } = require("asposepdfcloud/src/models/textReplaceListRequest"); diff --git a/useCases/textExtract.js b/useCases/textExtract.js index 686949a6..11c3a365 100644 --- a/useCases/textExtract.js +++ b/useCases/textExtract.js @@ -3,8 +3,7 @@ const fs = require("fs"); const { PdfApi } = require("asposepdfcloud"); // The initialization assumes that the necessary credentials (Application ID and Application Key) from https://dashboard.aspose.cloud/ -// const api = new PdfApi("YOUR_API_SID", "YOUR_API_KEY"); -const api = new PdfApi("http://172.17.0.1:5000/v3.0"); +const api = new PdfApi("YOUR_API_SID", "YOUR_API_KEY"); // The document name. const fileName = "4pages.pdf"; diff --git a/useCases/textReplace.js b/useCases/textReplace.js index 734145a3..91ea1cb9 100644 --- a/useCases/textReplace.js +++ b/useCases/textReplace.js @@ -1,8 +1,8 @@ // Import necessary classes from the Aspose PDF Cloud library const fs = require("fs"); -const { PdfApi } = require("../src/api/api"); -const { Color } = require("../src/models/color"); -const { FontStyles } = require("../src/models/fontStyles"); +const { PdfApi } = require("asposepdfcloud"); +const { Color } = require("asposepdfcloud/src/models/color"); +const { FontStyles } = require("asposepdfcloud/src/models/fontStyles"); const { Rectangle } = require("asposepdfcloud/src/models/rectangle"); const { TextState } = require("asposepdfcloud/src/models/textState"); const { TextReplace } = require("asposepdfcloud/src/models/textReplace"); From 984d909264f33665eab341c7236cb7a182b0cdfb Mon Sep 17 00:00:00 2001 From: "kirill.novinskiy@aspose.com" Date: Thu, 21 Nov 2024 18:39:19 +0000 Subject: [PATCH 4/4] update to 24.11 --- README.md | 2 +- docs/DocRecognitionMode.md | 1 + docs/PdfApi.md | 25 ++++++++++++ docs/SvgImages.md | 13 ++++++ src/api/api.ts | 65 ++++++++++++++++++++++++++++++ src/models/docRecognitionMode.ts | 1 + src/models/svgImages.ts | 47 ++++++++++++++++++++++ src/objectSerializer.ts | 2 + src/requestHelper.ts | 2 +- test/testImages.ts | 12 ++++++ testData/alfa.pdf | Bin 0 -> 296803 bytes useCases/textDeletejs | 67 ------------------------------- 12 files changed, 168 insertions(+), 69 deletions(-) create mode 100644 docs/SvgImages.md create mode 100644 src/models/svgImages.ts create mode 100644 testData/alfa.pdf delete mode 100644 useCases/textDeletejs diff --git a/README.md b/README.md index 83aedaf9..61825991 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ XLS, XLSX, PPTX, DOC, DOCX, MobiXML, JPEG, EMF, PNG, BMP, GIF, TIFF, Text ## Read PDF Formats MHT, PCL, PS, XSLFO, MD -## Enhancements in Version 24.10 +## Enhancements in Version 24.11 - Develop DeleteDocumentLayer Method. - Develop GetDocumentLayers Method. - How to extract PDF layer elements and create a new PDF diff --git a/docs/DocRecognitionMode.md b/docs/DocRecognitionMode.md index edd5a46d..a865994c 100644 --- a/docs/DocRecognitionMode.md +++ b/docs/DocRecognitionMode.md @@ -4,6 +4,7 @@ Allows to control how a PDF document is converted into a word processing documen ## Enum Name | Type | Value | Description ------------ | ------------- | ------------- | ------------- +**EnhancedFlow** | **string** | 'EnhancedFlow' | An alternative Flow mode that supports the recognition of tables. **Flow** | **string** | 'Flow' | Full recognition mode, the engine performs grouping and multi-level analysis to restore the original document author's intent and produce a maximally editable document. The downside is that the output document might look different from the original PDF file. **Textbox** | **string** | 'Textbox' | This mode is fast and good for maximally preserving original look of the PDF file, but editability of the resulting document could be limited.Every visually grouped block of text int the original PDF file is converted into a textbox in the resulting document. This achieves maximal resemblance of the output document to the original PDF file. The output document will look good, but it will consist entirely of textboxes and it could makes further editing of the document in Microsoft Word quite hard.This is the default mode. diff --git a/docs/PdfApi.md b/docs/PdfApi.md index 3535ab34..63bc9069 100644 --- a/docs/PdfApi.md +++ b/docs/PdfApi.md @@ -95,6 +95,7 @@ Method | HTTP request | Description *PdfApi* | [**getImageExtractAsPng**](PdfApi.md#getImageExtractAsPng) | **GET** /pdf/\{name}/images/\{imageId}/extract/png | Extract document image in PNG format *PdfApi* | [**getImageExtractAsTiff**](PdfApi.md#getImageExtractAsTiff) | **GET** /pdf/\{name}/images/\{imageId}/extract/tiff | Extract document image in TIFF format *PdfApi* | [**getImages**](PdfApi.md#getImages) | **GET** /pdf/\{name}/pages/\{pageNumber}/images | Read document images. +*PdfApi* | [**getImagesExtractSvg**](PdfApi.md#getImagesExtractSvg) | **GET** /pdf/\{name}/pages/\{pageNumber}/images/extract/svg | Extract SVG images from document page. *PdfApi* | [**getImportFieldsFromFdfInStorage**](PdfApi.md#getImportFieldsFromFdfInStorage) | **GET** /pdf/\{name}/import/fdf | Update fields from FDF file in storage. *PdfApi* | [**getImportFieldsFromXfdfInStorage**](PdfApi.md#getImportFieldsFromXfdfInStorage) | **GET** /pdf/\{name}/import/xfdf | Update fields from XFDF file in storage. *PdfApi* | [**getImportFieldsFromXmlInStorage**](PdfApi.md#getImportFieldsFromXmlInStorage) | **GET** /pdf/\{name}/import/xml | Import from XML file (located on storage) to PDF format and return resulting file in response. @@ -2437,6 +2438,30 @@ Name | Type | Description | Notes [**ImagesResponse**](ImagesResponse.md) +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + + +## **getImagesExtractSvg** +> getImagesExtractSvg(name, pageNumber, storage, folder, passBase64) + +Extract SVG images from document page. + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**name** | **string** | The document name. | +**pageNumber** | **number** | The page number. | +**storage** | **string** | The document storage. | [optional] +**folder** | **string** | The document folder. | [optional] +**passBase64** | **string** | The password (Base64). | [optional] + +### Return type + +[**SvgImages**](SvgImages.md) + ### HTTP request headers - **Content-Type**: application/json diff --git a/docs/SvgImages.md b/docs/SvgImages.md new file mode 100644 index 00000000..1651b235 --- /dev/null +++ b/docs/SvgImages.md @@ -0,0 +1,13 @@ +# SvgImages +SvgImages class + +*Inherited from [AsposeResponse](AsposeResponse.md)* +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**list** | **Array<string>** | List of SVG images | [optional] +**code** | **number** | Response status code.
*Inherited from [AsposeResponse](AsposeResponse.md)* | +**status** | **string** | Response status.
*Inherited from [AsposeResponse](AsposeResponse.md)* | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) [[View Source]](../src/models/svgImages.ts) + diff --git a/src/api/api.ts b/src/api/api.ts index 032d32db..813bac43 100644 --- a/src/api/api.ts +++ b/src/api/api.ts @@ -250,6 +250,7 @@ import { StampsInfoResponse } from "../models/stampsInfoResponse"; import { StrikeOutAnnotationResponse } from "../models/strikeOutAnnotationResponse"; import { StrikeOutAnnotations } from "../models/strikeOutAnnotations"; import { StrikeOutAnnotationsResponse } from "../models/strikeOutAnnotationsResponse"; +import { SvgImages } from "../models/svgImages"; import { Table } from "../models/table"; import { TableRecognized } from "../models/tableRecognized"; import { TableRecognizedResponse } from "../models/tableRecognizedResponse"; @@ -5503,6 +5504,70 @@ export class PdfApi { } + /** + * + * @summary Extract SVG images from document page. + * @param name The document name. + * @param pageNumber The page number. + * @param storage The document storage. + * @param folder The document folder. + * @param passBase64 The password (Base64). + */ + public async getImagesExtractSvg (name: string, pageNumber: number, storage?: string, folder?: string, passBase64?: string) : Promise<{ response: http.IncomingMessage; body: SvgImages; }> { + const localVarPath = this.basePath + '/pdf/{name}/pages/{pageNumber}/images/extract/svg' + .replace('{' + 'name' + '}', encodeURIComponent(String(name)).replace('%2F', '/')) + .replace('{' + 'pageNumber' + '}', encodeURIComponent(String(pageNumber)).replace('%2F', '/')); + let localVarQueryParameters: any = {}; + let localVarHeaderParams: any = (Object).assign({}, this.defaultHeaders); + let localVarFormParams: any = {}; + + // verify required parameter 'name' is not null or undefined + if (name === null || name === undefined) { + throw new Error('Required parameter name was null or undefined when calling getImagesExtractSvg.'); + } + + // verify required parameter 'pageNumber' is not null or undefined + if (pageNumber === null || pageNumber === undefined) { + throw new Error('Required parameter pageNumber was null or undefined when calling getImagesExtractSvg.'); + } + + if (storage !== undefined && null !== storage) { + localVarQueryParameters['storage'] = ObjectSerializer.serialize(storage, "string"); + } + + if (folder !== undefined && null !== folder) { + localVarQueryParameters['folder'] = ObjectSerializer.serialize(folder, "string"); + } + + if (passBase64 !== undefined && null !== passBase64) { + localVarQueryParameters['passBase64'] = ObjectSerializer.serialize(passBase64, "string"); + } + + + let localVarUseFormData = false; + let fileData = null; + let localVarRequestOptions: localVarRequest.Options = { + method: 'GET', + qs: localVarQueryParameters, + headers: localVarHeaderParams, + uri: localVarPath, + useQuerystring: this._useQuerystring, + json: true, + }; + + if (Object.keys(localVarFormParams).length) { + if (localVarUseFormData) { + (localVarRequestOptions).formData = localVarFormParams; + } else { + localVarRequestOptions.form = localVarFormParams; + } + } + const response = await invokeApiMethod(localVarRequestOptions, this.configuration, false, fileData); + const result = ObjectSerializer.deserialize(response.body, "SvgImages"); + return Promise.resolve({body: result, response}); + } + + /** * * @summary Update fields from FDF file in storage. diff --git a/src/models/docRecognitionMode.ts b/src/models/docRecognitionMode.ts index 0ea8fb9a..d3771348 100644 --- a/src/models/docRecognitionMode.ts +++ b/src/models/docRecognitionMode.ts @@ -22,4 +22,5 @@ export enum DocRecognitionMode { Textbox = 'Textbox', Flow = 'Flow', + EnhancedFlow = 'EnhancedFlow', } diff --git a/src/models/svgImages.ts b/src/models/svgImages.ts new file mode 100644 index 00000000..94b5720f --- /dev/null +++ b/src/models/svgImages.ts @@ -0,0 +1,47 @@ + /** + * + * Copyright (c) 2024 Aspose.PDF Cloud + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */ + +import { AsposeResponse } from "./asposeResponse"; + +/** +* SvgImages class +*/ +export class SvgImages extends AsposeResponse { + /** + * List of SVG images + */ + 'list': Array; + + static discriminator = undefined; + + static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [ + { + "name": "list", + "baseName": "List", + "type": "Array" + } ]; + + static getAttributeTypeMap() { + return super.getAttributeTypeMap().concat(SvgImages.attributeTypeMap); + } +} + + diff --git a/src/objectSerializer.ts b/src/objectSerializer.ts index f0c3c708..56226f3b 100644 --- a/src/objectSerializer.ts +++ b/src/objectSerializer.ts @@ -250,6 +250,7 @@ import { StampsInfoResponse } from "./models/stampsInfoResponse"; import { StrikeOutAnnotationResponse } from "./models/strikeOutAnnotationResponse"; import { StrikeOutAnnotations } from "./models/strikeOutAnnotations"; import { StrikeOutAnnotationsResponse } from "./models/strikeOutAnnotationsResponse"; +import { SvgImages } from "./models/svgImages"; import { Table } from "./models/table"; import { TableRecognized } from "./models/tableRecognized"; import { TableRecognizedResponse } from "./models/tableRecognizedResponse"; @@ -544,6 +545,7 @@ let typeMap: {[index: string]: any} = { "StrikeOutAnnotationResponse": StrikeOutAnnotationResponse, "StrikeOutAnnotations": StrikeOutAnnotations, "StrikeOutAnnotationsResponse": StrikeOutAnnotationsResponse, + "SvgImages": SvgImages, "Table": Table, "TableRecognized": TableRecognized, "TableRecognizedResponse": TableRecognizedResponse, diff --git a/src/requestHelper.ts b/src/requestHelper.ts index b3137e59..638944a0 100644 --- a/src/requestHelper.ts +++ b/src/requestHelper.ts @@ -95,7 +95,7 @@ async function invokeApiMethodInternal(requestOptions: request.Options, confgura //headers sa.set("User-Agent", "pdf nodejs sdk"); sa.set("x-aspose-client", "nodejs sdk"); - sa.set("x-aspose-client-version", "24.10.0"); + sa.set("x-aspose-client-version", "24.11.0"); if (!requestOptions.headers) { requestOptions.headers = {}; diff --git a/test/testImages.ts b/test/testImages.ts index 7caec8ba..fe98b788 100644 --- a/test/testImages.ts +++ b/test/testImages.ts @@ -273,5 +273,17 @@ describe("Images Tests", () => { }); }); }); + + describe("GetImagesExtractAsSvg Test", () => { + + it("should return response with code 200", async () => { + + return BaseTest.getPdfApi().getImagesExtractSvg("Alfa.pdf", pageNumber, null, BaseTest.remoteTempFolder, null) + .then((result) => { + assert.equal(result.response.statusCode, 200); + assert.equal(13, result.body.list.length); + }); + }); + }); }); }); \ No newline at end of file diff --git a/testData/alfa.pdf b/testData/alfa.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f904d1f27e9cf84d7486967bee9f415e9c5872fd GIT binary patch literal 296803 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%0AoO-Dmr{{hn8ec~NhacLmuNE3K+mDc(N8R`q?U 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

mh!al=Y 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 literal 0 HcmV?d00001 diff --git a/useCases/textDeletejs b/useCases/textDeletejs deleted file mode 100644 index 508248b9..00000000 --- a/useCases/textDeletejs +++ /dev/null @@ -1,67 +0,0 @@ -// Import necessary classes from the Aspose PDF Cloud library -const fs = require("fs"); -const { PdfApi } = require("asposepdfcloud"); -const { TextReplace } = require("asposepdfcloud/src/models/textReplace"); -const { TextReplaceListRequest } = require("asposepdfcloud/src/models/textReplaceListRequest"); - -// The initialization assumes that the necessary credentials (Application ID and Application Key) from https://dashboard.aspose.cloud/ -const api = new PdfApi("YOUR_API_SID", "YOUR_API_KEY"); - -// Set the document name -const fileName = "4pages.pdf"; -// Use default storage (null indicates default storage) -const storage = null; -// Set the folder where the document is stored -const folder = "Documents"; - -/** - * Delete text of a PDF document using the Aspose.PDF Cloud API. - * - * This function performs the following steps: - * 1. Reads a PDF file from the local file system. - * 2. Uploads the PDF file to the Aspose.PDF Cloud storage. - * 3. Creates an `TextReplaceListRequest` object with the replacements list. - * 4. Delete text of PDF document using the Aspose.PDF Cloud API. - * 5. Logs the result to the console. - * - * @returns {Promise} A promise that is resolves after text deletion is complete. - */ -async function postDocumentTextDelete() -{ - // Read file from file system. - const buffer = fs.readFileSync("testData/" + fileName); - // Upload file to cloud storage. - const uploadResponse = await api.uploadFile(folder + "/" +fileName, buffer, storage) - - // Create TextReplace request. - const textReplace = new TextReplace(); - // Set the text to replace. - textReplace.oldValue = "Page"; - // Set the replacement text. - textReplace.newValue = ""; - // Set the oldValue is regex. - textReplace.regex = false; - - // Create TextReplaceListRequest instance. - const textReplaceList = new TextReplaceListRequest(); - // Set the text replaces list. - textReplaceList.textReplaces = [textReplace]; - // Set the start index of text items to replace. - textReplaceList.startIndex = 2; - // Set the count replacements. - textReplaceList.countReplace = 2; - - // Swagger method for adding text: https://reference.aspose.cloud/pdf/#/TextReplace/PostDocumentTextReplace - // Call the API to replace text in the specified PDF document. - const result = await api.postDocumentTextReplace( - uploadResponse.body.uploaded[0], - textReplaceList, - storage, - folder); - - // Log the response to console. - console.log(result.body.status); -} - -// Execute the postDocumentTextReplace function -postDocumentTextDelete();