wsclient for TypeScript
The webPDF wsclient
library for TypeScript provides a simplified and optimized API for implementing a client to use the webPDF server.
It strictly complies to the "Generalized Usage Pattern".
Language | TypeScript |
Repository | GitHub |
Protocols | REST |
Download
The wsclient library can be downloaded from npmjs, by adding the dependency to your project:
yarn add @softvision/webpdf-wsclient-typescript
npm install @softvision/webpdf-wsclient-typescript
Usage
Using the wsclient
a request to the webPDF Converter webservice could be as simple as:
- TypeScript
- JavaScript
// Initialize the session context:
let sessionContext: SessionContext = new SessionContext(WebServiceProtocol.REST, new URL("http://localhost:8080/webPDF/"));
// (Advanced options such as the configuration of a client truststore, a TLS-context and client side proxies are available.)
// Select an AuthProvider for the session:
let authProvider: AuthProvider = new AnonymousAuthProvider();
try {
// Establish a session with the webPDF server:
let session: RestSession<RestDocument> = await SessionFactory.createInstance(sessionContext, authProvider);
// Use the document manager to upload/download/delete/rename and access the history of documents in your session:
let restDocument: RestDocument = await session.getDocumentManager().uploadDocument(sourceDocument, "filename");
// Select the webservice you want to call:
let webService: ConverterRestWebService<RestDocument> = session.createWebServiceInstance(WebServiceType.CONVERTER);
// Parameterize the webservice call. (Using predefined objects, that preselect and suggest which values may be set where):
webService.setOperationParameters(
Converter.fromJson({
pages: "1-4",
embedFonts: true
} as ConverterInterface)
);
// Execute the webservice call and receive a reference to the result document:
let resultDocument: RestDocument | undefined = await webService.process(restDocument);
// Download the result document to your local file system:
let downloadedFile: Buffer = await resultDocument!.downloadDocument();
// Handle the downloaded file...
} catch (ex: any) {
let resultException: ResultException = ex;
// Handle server fail states using actual Exceptions, without having to parse the server´s responses yourself:
let msg: string = resultException.getMessage();
let error: WsclientError = resultException.getClientError();
let errorCode: number = resultException.getErrorCode();
let cause: Error | undefined = resultException.getCause();
}
// Initialize the session context:
let sessionContext = new SessionContext(WebServiceProtocol.REST, new URL("http://localhost:8080/webPDF/"));
// (Advanced options such as the configuration of a client truststore, a TLS-context and client side proxies are available.)
// Select an AuthProvider for the session:
let authProvider = new AnonymousAuthProvider();
try {
// Establish a session with the webPDF server:
let session = await SessionFactory.createInstance(sessionContext, authProvider);
// Use the document manager to upload/download/delete/rename and access the history of documents in your session:
let restDocument = await session.uploadDocument(sourceDocument, "filename");
// Select the webservice you want to call:
let webService = session.createWebServiceInstance(WebServiceTypes.CONVERTER);
// Parameterize the webservice call:
webService.setOperationParameters(
Converter.fromJson({
pages: "1-4",
embedFonts: true
})
);
// Execute the webservice call and receive a reference to the result document:
let resultDocument = await webService.process(restDocument);
// Download the result document:
let downloadedFile = await resultDocument.downloadDocument();
// Handle the downloaded file...
} catch (resultException) {
// Handle server fail states using actual Exceptions, without having to parse the server´s responses yourself:
let msg = resultException.getMessage();
let error = resultException.getClientError();
let errorCode = resultException.getErrorCode();
let cause = resultException.getCause();
}
Documentation and examples
You can find further documentation and usage examples in the project´s GitHub wiki.