This works using the Bob Swift SOAP library ('org.swift.common: confluence-soap: 5.4.1'). I use this in the gradle plugin, so you will need to change a few things
void exportSpaceAsPdf(spaceKey, File outputFile) { // Setup Pdf Export Service PdfExportRpcServiceLocator serviceLocator = new PdfExportRpcServiceLocator() serviceLocator.setpdfexportEndpointAddress("${url}/rpc/soap-axis/pdfexport") serviceLocator.setMaintainSession(true) def pdfService = serviceLocator.getpdfexport() // Login def token = pdfService.login(user, password) // Perform Export def pdfUrl = pdfService.exportSpace(token, spaceKey) // Download Pdf HttpClient client = new DefaultHttpClient(); HttpGet httpget = new HttpGet(pdfUrl) httpget.addHeader( BasicScheme.authenticate( new UsernamePasswordCredentials(user,password),"UTF-8", false)) HttpResponse response = client.execute(httpget) HttpEntity entity = response.getEntity() if (entity != null) { InputStream inputStream = entity.getContent() FileOutputStream fos = new FileOutputStream(outputFile) int inByte while ((inByte = inputStream.read()) != -1) fos.write(inByte) inputStream.close() fos.close() } else { throw new GradleException("""Cannot Export Space to PDF: Space: ${spaceKey} Dest: ${outputFile.absolutePath} URL: ${pdfUrl} Status: ${response.getStatusLine()} """) } }
source share