public File createPdfForPage(User user, AbstractPage page, String contextPath, PageExportMetrics pageExportMetrics) throws ImportExportException { final long startTime = System.currentTimeMillis(); try { pageExportMetrics.setPageId(page.getId()); pageExportMetrics.setPageRevision(page.getConfluenceRevision().hashCode()); final File result = doCreatePdfForPage(user, page, contextPath); pageExportMetrics.getExportResults().setExportStatus(ExportStatus.OK); pageExportMetrics.getExportResults().setPdfPagesTotal(PdfUtils.numberOfPages(result)); pageExportMetrics.getExportResults().setPdfFileSizeBytes(result.length()); return result; } finally { pageExportMetrics.setTimeMs((int) (System.currentTimeMillis() - startTime)); } }
private RenderedPdfFile createPdf(AbstractPage page, String contextPath, LinkRenderingDetails linkDetails, String filePrefix, PageExportMetrics pageExportMetrics, DecorationPolicy decoration) throws ImportExportException { log.debug("Exporting page {}", page.getId()); final Document xhtml; if (page instanceof Page) { xhtml = createDocument((Page) page, linkDetails, decoration); } else { xhtml = createDocument((BlogPost) page); } final long startTime = System.currentTimeMillis(); try { pageExportMetrics.setPageId(page.getId()); pageExportMetrics.setPageRevision(page.getConfluenceRevision().hashCode()); final RenderedPdfFile result = renderPdf(contextPath, page.getTitle(), xhtml, filePrefix, pageExportMetrics); pageExportMetrics.getExportResults().setExportStatus(ExportStatus.OK); pageExportMetrics.getExportResults().setPdfPagesTotal(result.getNumPages()); pageExportMetrics.getExportResults().setPdfFileSizeBytes(result.getFile().length()); return result; } finally { pageExportMetrics.setTimeMs((int) (System.currentTimeMillis() - startTime)); } }
@Override public File createPdfForPage(User user, AbstractPage page, String contextPath, PageExportMetrics pageExportMetrics) throws ImportExportException { pageExportMetrics.setPageId(page.getId()); pageExportMetrics.setPageRevision(page.getConfluenceRevision().hashCode()); pageExportMetrics.getEnvironmentInfo().setExportScope(ExportScope.PAGE); fillEnvironmentData(page.getSpace(), pageExportMetrics.getEnvironmentInfo()); try { return delegate.createPdfForPage(user, page, contextPath, pageExportMetrics); } catch (Exception e) { pageExportMetrics.getExportResults().setFailureLocation(FailureLocation.PAGE); setGenericError(pageExportMetrics.getExportResults()); throw e; } finally { sendToAnalytics(new PdfExportAnalyticEvent(pageExportMetrics)); } }