- generazione del PDF riscritto totalmente

- ora è possibile generarlo anche da backend
- FIX: corretto la qualità del PDF e la dimensione non esatta in pixel...
This commit is contained in:
Surya Paolo
2025-05-29 18:23:02 +02:00
parent 884afe4eb5
commit 67aaf719f4
32 changed files with 2881 additions and 1748 deletions

View File

@@ -14,6 +14,7 @@ import type {
} from '@src/model';
import { IImgGallery, ILabelValue, IMyPage, IOperators } from '@src/model';
import { useGlobalStore } from '@store/globalStore';
import { useCatalogStore } from '@store/catalogStore';
import { CImgTitle } from '@src/components/CImgTitle';
import { CImgPoster } from '@src/components/CImgPoster';
@@ -28,6 +29,7 @@ import { CMyPageIntro } from '@src/components/CMyPageIntro';
import { CEventsCalendar } from '@src/components/CEventsCalendar';
import { CMyEditor } from '@src/components/CMyEditor';
import { CMySlider } from '@src/components/CMySlider';
import { CMySlideNumber } from '@src/components/CMySlideNumber';
import { CMyFieldRec } from '@src/components/CMyFieldRec';
import { CSelectImage } from '@src/components/CSelectImage';
import { CSelectAnimation } from '@src/components/CSelectAnimation';
@@ -69,7 +71,7 @@ export default defineComponent({
CMySize,
CBorders,
CMyDimensioni,
CMyText,
CMyText, CMySlideNumber,
},
emits: ['saveElem', 'selElemClick', 'toggleSize', 'deleteElem', 'dupPage', 'expPage', 'impPage'],
props: {
@@ -100,6 +102,7 @@ export default defineComponent({
},
setup(props, { emit }) {
const globalStore = useGlobalStore();
const catalogStore = useCatalogStore();
const { setmeta, getsrcbyimg } = MixinMetaTags();
const { setValDb, getValDb } = MixinBase();
@@ -347,7 +350,6 @@ export default defineComponent({
myel.value.catalogo.areadistampa.margini = { left: '0.59', top: '0.59', right: '0.59', bottom: '0.28' };
myel.value.catalogo.print_isTemplate = false;
myel.value.catalogo.print_linkIdTemplate = '';
myel.value.catalogo.print_linkIdTemplatePerStampa = '';
}
myel.value.catalogo.areadistampa = tools.resetRecIAreaDiStampa(myel.value.catalogo.areadistampa);
@@ -357,7 +359,8 @@ export default defineComponent({
myel.value.catalogo.dimensioni_def = {
isTemplate: false,
linkIdTemplate: '',
linkIdTemplatePerStampa: '',
scalexscheda: 1,
scaleyscheda: 1,
name: '',
pagina: {},
};
@@ -810,6 +813,7 @@ export default defineComponent({
exportPage,
importPage,
globalStore,
catalogStore,
};
},
});

View File

@@ -1606,6 +1606,28 @@
@update:model-value="modifElem"
>
</q-toggle>
<q-toggle
v-model="myel.catalogo.showOnlyCatalogoPDF"
color="positive"
icon="fas fa-file-pdf"
label="Pagina solo Catalogo (PDF)"
@update:model-value="modifElem"
>
</q-toggle>
<q-select
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
rounded
outlined
v-model="myel.catalogo.idCatalogSel"
:options="catalogStore.getCatalogsList()"
@update:model-value="modifElem"
label="Scegli il Catalogo"
style="width: 300px"
emit-value
map-options
>
</q-select>
<q-toggle
v-model="myel.catalogo.showListaCollane"
color="positive"
@@ -1818,20 +1840,6 @@
map-options
>
</q-select>
<q-select
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
v-if="enableEdit"
rounded
outlined
v-model="myel.catalogo.dimensioni_def.linkIdTemplatePerStampa"
:options="Products.getOptCatalogoTemplate()"
@update:model-value="modifElem"
label="Catalogo collegato per STAMPA:"
style="width: 250px"
emit-value
map-options
>
</q-select>
<div
v-if="myel.catalogo.dimensioni_def.pagina"
@@ -1979,20 +1987,21 @@
map-options
>
</q-select>
<q-select
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
v-if="enableEdit"
rounded
outlined
v-model="recscheda.scheda.linkIdTemplatePerStampa"
:options="globalStore.getSchedeOpt()"
<CMySlideNumber
v-model="recscheda.scheda.scalex"
label="Scale X:"
:min="0.5"
:max="1.5"
@update:model-value="modifElem"
label="Scheda collegata STAMPA:"
style="width: 350px"
emit-value
map-options
>
</q-select>
/>
<CMySlideNumber
v-model="recscheda.scheda.scaley"
label="Scale Y:"
:min="0.5"
:max="1.5"
@update:model-value="modifElem"
/>
<br />
<div class="row">
<q-select
@@ -2477,20 +2486,6 @@
map-options
>
</q-select>
<q-select
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
v-if="enableEdit"
rounded
outlined
v-model="myel.catalogo.print_linkIdTemplatePerStampa"
:options="Products.getOptCatalogoPrintTemplate()"
@update:model-value="modifElem"
label="Catalogo Stampa collegato per STAMPA:"
style="width: 350px"
emit-value
map-options
>
</q-select>
<div
:class="{
@@ -2536,30 +2531,53 @@
</div>
<q-select
rounded
style="width: 200px"
style="width: 350px"
outlined
v-model="myel.catalogo.areadistampa.scale"
:options="tools.SelectListScalePDF"
v-model="myel.catalogo.areadistampa.format_printable"
:options="tools.SelectListFormatPDF"
@update:model-value="modifElem"
dense
label="Scale:"
label="Formato per Stampa:"
emit-value
map-options
>
</q-select>
<q-select
rounded
style="width: 200px"
outlined
v-model="myel.catalogo.areadistampa.scale_printable"
:options="tools.SelectListScalePDF"
<div v-if="myel.catalogo.areadistampa.format_printable?.length > 1">
Ratio:
{{
myel.catalogo.areadistampa.format_printable[0] /
myel.catalogo.areadistampa.format_printable[1]
}}
</div>
<CMySlideNumber
v-model="myel.catalogo.areadistampa.scalex"
label="Scale X:"
:min="0.5"
:max="1.5"
@update:model-value="modifElem"
dense
label="Scale per Stampa:"
emit-value
map-options
>
</q-select>
/>
<CMySlideNumber
v-model="myel.catalogo.areadistampa.scaley"
label="Scale Y:"
:min="0.5"
:max="1.5"
@update:model-value="modifElem"
/>
<CMySlideNumber
v-model="myel.catalogo.areadistampa.scale_printablex"
label="Scale X Stampa:"
:min="0.5"
:max="1.5"
@update:model-value="modifElem"
/>
<CMySlideNumber
v-model="myel.catalogo.areadistampa.scale_printabley"
label="Scale Y Stampa:"
:min="0.5"
:max="1.5"
@update:model-value="modifElem"
/>
<q-select
rounded
style="width: 200px"