with Adobe PDF Services and Odoo?
Extracts text and table element information from a PDF document and returns a JSON file along with table data in XLSX format within a .zip file saved to the /tmp
directory. See the documentation
Extracts text element information from a PDF document and returns a JSON file within a .zip file saved to the /tmp
directory. See the documentation
The Adobe PDF Services API provides a robust set of tools for manipulating and managing PDF files. With this API, you can create, convert, combine, export, and manipulate PDFs directly in Pipedream. The Pipedream platform enables you to build automated workflows that can interact with this API to streamline document-centric processes, such as generating reports, archiving files, or extracting data from PDFs into other formats.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
adobe_pdf_services: {
type: "app",
app: "adobe_pdf_services",
}
},
async run({steps, $}) {
const data = {
"mediaType": `application/pdf`,
}
return await axios($, {
method: "post",
url: `https://pdf-services.adobe.io/assets`,
headers: {
Authorization: `Bearer ${this.adobe_pdf_services.$auth.oauth_access_token}`,
"x-api-key": `${this.adobe_pdf_services.$auth.client_id}`,
"Content-Type": `application/json`,
},
data,
})
},
})
import xmlrpc from 'xmlrpc';
export default defineComponent({
props: {
odoo: {
type: "app",
app: "odoo",
}
},
async run({ steps, $ }) {
const url = this.odoo.$auth.server_url;
const db = this.odoo.$auth.db;
const username = this.odoo.$auth.username;
const password = this.odoo.$auth.password;
// Create clients for common and object endpoints
const common = xmlrpc.createSecureClient(`${url}/xmlrpc/2/common`);
const models = xmlrpc.createSecureClient(`${url}/xmlrpc/2/object`);
// Using async/await with promises
async function getFields() {
try {
// Authenticate and get uid
const uid = await new Promise((resolve, reject) => {
common.methodCall('authenticate', [db, username, password, {}], (error, value) => {
if (error) reject(error);
resolve(value);
});
});
// Get fields
const results = await new Promise((resolve, reject) => {
models.methodCall('execute_kw', [
db,
uid,
password,
'res.partner',
'fields_get',
[],
{ 'attributes': ['string', 'help', 'type'] }
], (error, value) => {
if (error) reject(error);
resolve(value);
});
});
return results;
} catch (error) {
throw new Error(error);
}
}
return await getFields();
},
})