diff --git a/client/src/app/core/pdf-services/pdf-document.service.ts b/client/src/app/core/pdf-services/pdf-document.service.ts index f5be13ebf..a36a5980e 100644 --- a/client/src/app/core/pdf-services/pdf-document.service.ts +++ b/client/src/app/core/pdf-services/pdf-document.service.ts @@ -712,6 +712,13 @@ export class PdfDocumentService { }; } + public getSpacer(): Object { + return { + text: '', + margin: [0, 10] + }; + } + /** * Generates the table definition for the TOC * diff --git a/client/src/app/site/motions/modules/shared-motion/motion-export-dialog/motion-export-dialog.component.html b/client/src/app/site/motions/modules/shared-motion/motion-export-dialog/motion-export-dialog.component.html index 8c24485ea..35aa0e002 100644 --- a/client/src/app/site/motions/modules/shared-motion/motion-export-dialog/motion-export-dialog.component.html +++ b/client/src/app/site/motions/modules/shared-motion/motion-export-dialog/motion-export-dialog.component.html @@ -62,6 +62,7 @@ Table of contents Page numbers Current date + Enforce page breaks diff --git a/client/src/app/site/motions/modules/shared-motion/motion-export-dialog/motion-export-dialog.component.ts b/client/src/app/site/motions/modules/shared-motion/motion-export-dialog/motion-export-dialog.component.ts index 09dcb372c..cca2a1f99 100644 --- a/client/src/app/site/motions/modules/shared-motion/motion-export-dialog/motion-export-dialog.component.ts +++ b/client/src/app/site/motions/modules/shared-motion/motion-export-dialog/motion-export-dialog.component.ts @@ -65,7 +65,7 @@ export class MotionExportDialogComponent implements OnInit { private defaults: MotionExportInfo = { format: ExportFileFormat.PDF, content: ['text', 'reason'], - pdfOptions: ['toc', 'page'], + pdfOptions: ['toc', 'page', 'addBreaks'], metaInfo: ['submitters', 'state', 'recommendation', 'category', 'origin', 'tags', 'motion_block', 'polls'] }; diff --git a/client/src/app/site/motions/services/motion-pdf-catalog.service.ts b/client/src/app/site/motions/services/motion-pdf-catalog.service.ts index 8c3eda108..c579e83bd 100644 --- a/client/src/app/site/motions/services/motion-pdf-catalog.service.ts +++ b/client/src/app/site/motions/services/motion-pdf-catalog.service.ts @@ -59,6 +59,8 @@ export class MotionPdfCatalogService { public motionListToDocDef(motions: ViewMotion[], exportInfo: MotionExportInfo): object { let doc = []; const motionDocList = []; + const printToc = exportInfo.pdfOptions.includes('toc'); + const enforcePageBreaks = exportInfo.pdfOptions.includes('addBreaks'); for (let motionIndex = 0; motionIndex < motions.length; ++motionIndex) { try { @@ -69,8 +71,10 @@ export class MotionPdfCatalogService { motionDocList.push(motionDocDef); - if (motionIndex < motions.length - 1) { + if (motionIndex < motions.length - 1 && enforcePageBreaks) { motionDocList.push(this.pdfService.getPageBreak()); + } else if (motionIndex < motions.length - 1 && !enforcePageBreaks) { + motionDocList.push(this.pdfService.getSpacer()); } } catch (err) { const errorText = `${this.translate.instant('Error during PDF creation of motion:')} ${ @@ -82,7 +86,7 @@ export class MotionPdfCatalogService { } // print extra data (title, preamble, categories, toc) only if there are more than 1 motion - if (motions.length > 1 && (!exportInfo.pdfOptions || exportInfo.pdfOptions.includes('toc'))) { + if (motions.length > 1 && (!exportInfo.pdfOptions || printToc)) { doc.push( this.pdfService.createTitle('motions_export_title'), this.pdfService.createPreamble('motions_export_preamble'),