Delete Pages From PDF - Salesforce
PDF Delete Pages sample in Salesforce demonstrating ‘Delete Pages From PDF’
DeletePagesFromPdf.cls
public class DeletePagesFromPdf {
String API_KEY = '*****************';
string DestinationFile = 'resultPDF';
string endPointUrl = 'https://api.pdf.co/v1/pdf/edit/delete-pages';
public void deletePageFromPdf()
{
String jsonBody = '{ "url": "https://bytescout-com.s3.amazonaws.com/files/demo-files/cloud-api/pdf-split/sample.pdf", "pages": "1-2", "name": "result.pdf", "async": false }';
Http http = new Http();
HttpRequest request = new HttpRequest();
request.setHeader('x-api-key', API_KEY);
request.setEndpoint(endPointUrl);
request.setHeader('Content-Type', 'application/json');
request.setMethod('POST');
request.setBody(jsonBody);
HttpResponse response = http.send(request);
Map<String, Object> json = (Map<String, Object>)JSON.deserializeUntyped(response.getBody());
try
{
if(response.getStatusCode() == 200)
{
if ((Boolean)json.get('error') == false)
{
System.debug('response.getBody() :: '+response.getBody());
// Get URL of generated PDF file
String resultFileUrl =(String)json.get('url');
// Download generated PDF file
downloadFile(resultFileUrl, DestinationFile);
System.debug('Generated PDF file saved as \'{0}\' file.'+ DestinationFile);
}
}
else
{
System.debug('Error Response ' + response.getBody());
System.Debug(' Status ' + response.getStatus());
System.Debug(' Status Code' + response.getStatusCode());
System.Debug(' Response String' + response.toString());
}
}
catch (Exception ex)
{
String errorBody = 'Message: ' + ex.getMessage() + ' -- Cause: ' + ex.getCause() + ' -- Stacktrace: ' + ex.getStackTraceString();
System.Debug(errorBody);
}
}
@TestVisible
private static void downloadFile(String extFileUrl, String DestinationFile)
{
Http h = new Http();
HttpRequest req = new HttpRequest();
extFileUrl = extFileUrl.replace(' ', '%20');
req.setEndpoint(extFileUrl);
req.setMethod('GET');
req.setHeader('Content-Type', 'application/pdf');
req.setCompressed(true);
req.setTimeout(60000);
//Now Send HTTP Request
HttpResponse res = h.send(req);
if(res.getStatusCode() == 200)
{
blob fileContent = res.getBodyAsBlob();
ContentVersion conVer = new ContentVersion();
conVer.ContentLocation = 'S'; // to use S specify this document is in Salesforce, to use E for external files
conVer.PathOnClient = DestinationFile + '.pdf'; // The files name, extension is very important here which will help the file in preview.
conVer.Title = DestinationFile; // Display name of the files
conVer.VersionData = fileContent;
insert conVer;
System.Debug('Success');
}
else
{
System.debug('Error Response ' + res.getBody());
System.Debug(' Status ' + res.getStatus());
System.Debug(' Status Code' + res.getStatusCode());
System.Debug(' Response String' + res.toString());
}
}
}
DeletePagesFromPdfTest.cls
@isTest
private class DeletePagesFromPdfTest {
private testmethod static void testdeletePageFromPdf()
{
Test.setMock(HttpCalloutMock.class, new DeletePagesFromPdfTest.DeletePageMock());
(new DeletePagesFromPdf()).deletePageFromPdf();
List<ContentVersion> cv = [select Id, VersionData from ContentVersion];
System.assertEquals(1, cv.size());
}
private testmethod static void testdeletePageFromPdfException()
{
Test.setMock(HttpCalloutMock.class, new DeletePagesFromPdfTest.DeletePageMockForExp());
(new DeletePagesFromPdf()).deletePageFromPdf();
List<ContentVersion> cv = [select Id from ContentVersion];
System.assertEquals(0, cv.size());
}
public class DeletePageMock implements HttpCalloutMock {
public HTTPResponse respond(HTTPRequest req) {
HttpResponse res = new HttpResponse();
String testBody = '{ "url": "https://pdf-temp-files.s3.amazonaws.com/d15e5b2c89c04484ae6ac7244ac43ac2/result.pdf", "pageCount": 2, "error": false, "status": 200, "name": "result.pdf", "remainingCredits": 60100 } ';
res.setHeader('Content-Type', 'application/json');
res.setBody(testBody);
res.setStatusCode(200);
return res;
}
}
public class DeletePageMockForExp implements HttpCalloutMock {
public HTTPResponse respond(HTTPRequest req) {
HttpResponse res = new HttpResponse();
String testBody = '{ "url1111": "https://pdf-temp-files.s3.amazonaws.com/d15e5b2c89c04484ae6ac7244ac43ac2/result.pdf", "pageCount": 2, "error": false, "status": 200, "name": "result.pdf", "remainingCredits": 60100 } ';
res.setHeader('Content-Type', 'application/json');
res.setBody(testBody);
res.setStatusCode(200);
return res;
}
}
}
PDF.co Web API: the Web API with a set of tools for documents manipulation, data conversion, data extraction, splitting and merging of documents. Includes image recognition, built-in OCR, barcode generation and barcode decoders to decode bar codes from scans, pictures and pdf.
Download Source Code (.zip)
return to the previous page explore PDF Delete Pages endpoint
Copyright © 2016 - 2023 PDF.co