Skip to content

Commit 74c5a46

Browse files
committed
chore(pdf): doc generator return data
1 parent 08cf325 commit 74c5a46

File tree

2 files changed

+124
-95
lines changed

2 files changed

+124
-95
lines changed

src/components/editor/project/preferences/EditorProjectPreferencesConfiguration.vue

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,13 +71,10 @@
7171

7272
<script setup lang="ts">
7373
import { useI18n } from 'vue-i18n'
74-
import { useAbsoluteStore } from '@/store/absolute'
7574
import { useProjectStore } from '@/store/project'
7675
import { watch, computed } from 'vue'
7776
import { useText } from '@/use/text'
78-
import tooltip from 'v-tooltip'
7977
80-
const ABSOLUTE = useAbsoluteStore()
8178
const PROJECT = useProjectStore()
8279
8380
const { t } = useI18n()

src/use/pdf.ts

Lines changed: 124 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import { useProject } from './project'
1414
import { useProjectStore } from '@/store/project'
1515
import { usePDFStore } from '@/store/pdf'
1616
import { useAbsoluteStore } from '@/store/absolute'
17-
import { EntityType } from '../types/context'
1817
import { useStorage } from './storage/storage'
1918

2019
export const usePDF = () => {
@@ -532,6 +531,44 @@ export const usePDF = () => {
532531
: {}
533532
}
534533

534+
const page = () => {
535+
return {
536+
pageSize: generate().base().pageSize,
537+
pageOrientation: generate().base().pageOrientation,
538+
pageMargins: {
539+
left: 0,
540+
top: generate().base().pageMargins[1],
541+
right: 0,
542+
bottom: generate().base().pageMargins[3],
543+
},
544+
}
545+
}
546+
547+
const info = () => {
548+
return {
549+
info: {
550+
title: PROJECT.name,
551+
author: PROJECT.creator,
552+
subject: PROJECT.subject,
553+
producer: PROJECT.producer,
554+
keywords: PROJECT.keywords,
555+
},
556+
}
557+
}
558+
559+
const content = () => {
560+
return {
561+
content: generate().content(),
562+
styles: {
563+
'heading-three': generate().styles().headingThree(),
564+
'heading-two': generate().styles().headingTwo(),
565+
'heading-one': generate().styles().headingOne(),
566+
'summary-default': generate().styles().summaryDefault(),
567+
paragraph: generate().styles().paragraph(),
568+
},
569+
}
570+
}
571+
535572
const footer = () => {
536573
const text = (
537574
currentPage: number,
@@ -607,99 +644,94 @@ export const usePDF = () => {
607644
return { alignment, text }
608645
}
609646

647+
const addons = () => {
648+
return {
649+
background: options.final
650+
? function (currentPage: number) {
651+
return currentPage >= 3 &&
652+
PDF.styles.base.background.main &&
653+
PDF.styles.switcher.main
654+
? [
655+
{
656+
image: PDF.styles.base.background.main,
657+
width: useDefines().pdf().base().pageSizeFixes()[
658+
PDF.styles.base.pageSize
659+
][0],
660+
height: useDefines().pdf().base().pageSizeFixes()[
661+
PDF.styles.base.pageSize
662+
][1],
663+
},
664+
]
665+
: undefined
666+
}
667+
: undefined,
668+
footer: PDF.styles.switcher.footer
669+
? function (
670+
currentPage: number,
671+
pageCount: number,
672+
pageSize: number
673+
) {
674+
return [
675+
{
676+
text: footer().text(currentPage, pageCount, pageSize),
677+
margin: [15, 0],
678+
fontSize: PDF.styles.base.footer.textSize,
679+
font: PDF.styles.base.footer.fontFamily,
680+
alignment: footer().alignment(
681+
currentPage,
682+
pageCount,
683+
pageSize
684+
),
685+
},
686+
]
687+
}
688+
: undefined,
689+
header: PDF.styles.switcher.header
690+
? function (currentPage: number, pageCount: number, pageSize: any) {
691+
return [
692+
{
693+
text: header().text(currentPage, pageCount, pageSize),
694+
fontSize: PDF.styles.base.header.textSize,
695+
font: PDF.styles.base.header.fontFamily,
696+
decoration: 'underline',
697+
alignment: header().alignment(
698+
currentPage,
699+
pageCount,
700+
pageSize
701+
),
702+
},
703+
]
704+
}
705+
: undefined,
706+
pageBreakBefore: function (
707+
currentNode: any,
708+
followingNodesOnPage: any,
709+
nodesOnNextPage: any,
710+
previousNodesOnPage: any
711+
) {
712+
if (
713+
currentNode.id === 'signature' &&
714+
(currentNode.pageNumbers.length != 1 ||
715+
currentNode.pageNumbers[0] != currentNode.pages)
716+
) {
717+
return true
718+
} else if (
719+
currentNode.id === 'closingParagraph' &&
720+
currentNode.pageNumbers.length != 1
721+
) {
722+
return true
723+
}
724+
return false
725+
},
726+
}
727+
}
728+
610729
return {
611730
...encrypt(),
612-
pageSize: generate().base().pageSize,
613-
pageOrientation: generate().base().pageOrientation,
614-
pageMargins: {
615-
left: 0,
616-
top: generate().base().pageMargins[1],
617-
right: 0,
618-
bottom: generate().base().pageMargins[3],
619-
},
620-
info: {
621-
title: PROJECT.name,
622-
author: PROJECT.creator,
623-
subject: PROJECT.subject,
624-
producer: PROJECT.producer,
625-
keywords: PROJECT.keywords,
626-
},
627-
content: generate().content(),
628-
styles: {
629-
'heading-three': generate().styles().headingThree(),
630-
'heading-two': generate().styles().headingTwo(),
631-
'heading-one': generate().styles().headingOne(),
632-
'summary-default': generate().styles().summaryDefault(),
633-
paragraph: generate().styles().paragraph(),
634-
},
635-
background: options.final
636-
? function (currentPage: number) {
637-
return currentPage >= 3 &&
638-
PDF.styles.base.background.main &&
639-
PDF.styles.switcher.main
640-
? [
641-
{
642-
image: PDF.styles.base.background.main,
643-
width: useDefines().pdf().base().pageSizeFixes()[
644-
PDF.styles.base.pageSize
645-
][0],
646-
height: useDefines().pdf().base().pageSizeFixes()[
647-
PDF.styles.base.pageSize
648-
][1],
649-
},
650-
]
651-
: undefined
652-
}
653-
: undefined,
654-
footer: PDF.styles.switcher.footer
655-
? function (currentPage: number, pageCount: number, pageSize: number) {
656-
return [
657-
{
658-
text: footer().text(currentPage, pageCount, pageSize),
659-
margin: [15, 0],
660-
fontSize: PDF.styles.base.footer.textSize,
661-
font: PDF.styles.base.footer.fontFamily,
662-
alignment: footer().alignment(currentPage, pageCount, pageSize),
663-
},
664-
]
665-
}
666-
: undefined,
667-
header: PDF.styles.switcher.header
668-
? function (currentPage: number, pageCount: number, pageSize: any) {
669-
return [
670-
{
671-
text: header().text(currentPage, pageCount, pageSize),
672-
fontSize: PDF.styles.base.header.textSize,
673-
font: PDF.styles.base.header.fontFamily,
674-
decoration: 'underline',
675-
alignment: header().alignment(currentPage, pageCount, pageSize),
676-
},
677-
]
678-
}
679-
: undefined,
680-
pageBreakBefore: function (
681-
currentNode: any,
682-
followingNodesOnPage: any,
683-
nodesOnNextPage: any,
684-
previousNodesOnPage: any
685-
) {
686-
//check if signature part is completely on the last page, add pagebreak if not
687-
if (
688-
currentNode.id === 'signature' &&
689-
(currentNode.pageNumbers.length != 1 ||
690-
currentNode.pageNumbers[0] != currentNode.pages)
691-
) {
692-
return true
693-
}
694-
//check if last paragraph is entirely on a single page, add pagebreak if not
695-
else if (
696-
currentNode.id === 'closingParagraph' &&
697-
currentNode.pageNumbers.length != 1
698-
) {
699-
return true
700-
}
701-
return false
702-
},
731+
...page(),
732+
...info(),
733+
...content(),
734+
...addons(),
703735
}
704736
}
705737

0 commit comments

Comments
 (0)