annotate client/src/components/Pdftool.vue @ 2215:82867a69e10e pdf-export

merged default in pdf-export
author Markus Kottlaender <markus@intevation.de>
date Thu, 07 Feb 2019 11:27:07 +0100
parents 5a4b0c85e7a8 4a903d382901
children 631ca0412db9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
1 <template>
1480
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1433
diff changeset
2 <div
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1433
diff changeset
3 :class="[
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1433
diff changeset
4 'box ui-element rounded bg-white text-nowrap',
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1433
diff changeset
5 { expanded: showPdfTool }
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1433
diff changeset
6 ]"
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1433
diff changeset
7 >
1361
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
8 <div style="width: 20rem">
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
9 <h6 class="mb-0 py-2 px-3 border-bottom d-flex align-items-center">
1876
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
10 <font-awesome-icon icon="file-pdf" class="mr-2"></font-awesome-icon>
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
11 <translate>Generate PDF</translate>
1361
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
12 <font-awesome-icon
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
13 icon="times"
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
14 class="ml-auto text-muted"
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
15 @click="$store.commit('application/showPdfTool', false)"
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
16 ></font-awesome-icon>
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
17 </h6>
2112
8c0a0f237c2d improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents: 2111
diff changeset
18 <div class="p-3 text-left">
2114
910c21ea531a linting
Thomas Junk <thomas.junk@intevation.de>
parents: 2112
diff changeset
19 <select
910c21ea531a linting
Thomas Junk <thomas.junk@intevation.de>
parents: 2112
diff changeset
20 @change="applyTemplateToForm"
910c21ea531a linting
Thomas Junk <thomas.junk@intevation.de>
parents: 2112
diff changeset
21 v-model="form.template"
910c21ea531a linting
Thomas Junk <thomas.junk@intevation.de>
parents: 2112
diff changeset
22 class="form-control d-block mb-2 w-100 font-weight-bold"
910c21ea531a linting
Thomas Junk <thomas.junk@intevation.de>
parents: 2112
diff changeset
23 >
2124
af136b1a854e linting
Markus Kottlaender <markus@intevation.de>
parents: 2114
diff changeset
24 <option
2212
733cfc3db48a started pdf template administration
Markus Kottlaender <markus@intevation.de>
parents: 2207
diff changeset
25 v-for="template in pdfTemplates"
2214
5a4b0c85e7a8 values in template select are now the actual objects
Markus Kottlaender <markus@intevation.de>
parents: 2212
diff changeset
26 :value="template"
2124
af136b1a854e linting
Markus Kottlaender <markus@intevation.de>
parents: 2114
diff changeset
27 :key="template.name"
2114
910c21ea531a linting
Thomas Junk <thomas.junk@intevation.de>
parents: 2112
diff changeset
28 >
2124
af136b1a854e linting
Markus Kottlaender <markus@intevation.de>
parents: 2114
diff changeset
29 <translate>{{ template.name }}</translate>
af136b1a854e linting
Markus Kottlaender <markus@intevation.de>
parents: 2114
diff changeset
30 </option>
2112
8c0a0f237c2d improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents: 2111
diff changeset
31 </select>
2114
910c21ea531a linting
Thomas Junk <thomas.junk@intevation.de>
parents: 2112
diff changeset
32 <hr class="mb-1" />
2112
8c0a0f237c2d improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents: 2111
diff changeset
33 <small class="text-muted"><translate>Format</translate></small>
2114
910c21ea531a linting
Thomas Junk <thomas.junk@intevation.de>
parents: 2112
diff changeset
34 <select
910c21ea531a linting
Thomas Junk <thomas.junk@intevation.de>
parents: 2112
diff changeset
35 @change="compareFormWithTemplates"
910c21ea531a linting
Thomas Junk <thomas.junk@intevation.de>
parents: 2112
diff changeset
36 v-model="form.format"
910c21ea531a linting
Thomas Junk <thomas.junk@intevation.de>
parents: 2112
diff changeset
37 class="form-control form-control-sm d-block mb-2 w-100"
910c21ea531a linting
Thomas Junk <thomas.junk@intevation.de>
parents: 2112
diff changeset
38 >
1635
ca48145dba9c client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents: 1613
diff changeset
39 <option value="landscape"><translate>landscape</translate></option>
ca48145dba9c client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents: 1613
diff changeset
40 <option value="portrait"><translate>portrait</translate></option>
ca48145dba9c client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents: 1613
diff changeset
41 </select>
2112
8c0a0f237c2d improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents: 2111
diff changeset
42 <div class="d-flex">
8c0a0f237c2d improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents: 2111
diff changeset
43 <div class="flex-fill mr-2">
8c0a0f237c2d improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents: 2111
diff changeset
44 <small class="text-muted"><translate>Resolution</translate></small>
2114
910c21ea531a linting
Thomas Junk <thomas.junk@intevation.de>
parents: 2112
diff changeset
45 <select
910c21ea531a linting
Thomas Junk <thomas.junk@intevation.de>
parents: 2112
diff changeset
46 @change="compareFormWithTemplates"
910c21ea531a linting
Thomas Junk <thomas.junk@intevation.de>
parents: 2112
diff changeset
47 v-model="form.resolution"
910c21ea531a linting
Thomas Junk <thomas.junk@intevation.de>
parents: 2112
diff changeset
48 class="form-control form-control-sm mb-2 d-block w-100"
910c21ea531a linting
Thomas Junk <thomas.junk@intevation.de>
parents: 2112
diff changeset
49 >
2112
8c0a0f237c2d improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents: 2111
diff changeset
50 <option value="80">80 dpi</option>
8c0a0f237c2d improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents: 2111
diff changeset
51 <option value="120">120 dpi</option>
8c0a0f237c2d improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents: 2111
diff changeset
52 <option value="200">200 dpi</option>
8c0a0f237c2d improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents: 2111
diff changeset
53 </select>
8c0a0f237c2d improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents: 2111
diff changeset
54 </div>
8c0a0f237c2d improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents: 2111
diff changeset
55 <div class="flex-fill ml-2">
8c0a0f237c2d improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents: 2111
diff changeset
56 <small class="text-muted"><translate>Size</translate></small>
2114
910c21ea531a linting
Thomas Junk <thomas.junk@intevation.de>
parents: 2112
diff changeset
57 <select
910c21ea531a linting
Thomas Junk <thomas.junk@intevation.de>
parents: 2112
diff changeset
58 @change="compareFormWithTemplates"
910c21ea531a linting
Thomas Junk <thomas.junk@intevation.de>
parents: 2112
diff changeset
59 v-model="form.paperSize"
910c21ea531a linting
Thomas Junk <thomas.junk@intevation.de>
parents: 2112
diff changeset
60 class="form-control form-control-sm mb-2 d-block w-100"
910c21ea531a linting
Thomas Junk <thomas.junk@intevation.de>
parents: 2112
diff changeset
61 >
2112
8c0a0f237c2d improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents: 2111
diff changeset
62 <option value="a3"><translate>ISO A3</translate></option>
8c0a0f237c2d improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents: 2111
diff changeset
63 <option value="a4"><translate>ISO A4</translate></option>
8c0a0f237c2d improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents: 2111
diff changeset
64 </select>
8c0a0f237c2d improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents: 2111
diff changeset
65 </div>
8c0a0f237c2d improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents: 2111
diff changeset
66 </div>
1903
7247ac316cb7 client: pdf-gen: improve layout and ui
Bernhard Reiter <bernhard@intevation.de>
parents: 1897
diff changeset
67 <!--
1361
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
68 <small class="d-block my-2">
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
69 <input
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
70 type="radio"
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
71 id="pdfexport-downloadtype-download"
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
72 value="download"
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
73 v-model="form.downloadType"
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
74 selected
1480
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1433
diff changeset
75 />
1876
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
76 <label for="pdfexport-downloadtype-download" class="ml-1 mr-2">
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
77 <translate>Download</translate>
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
78 </label>
1361
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
79 <input
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
80 type="radio"
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
81 id="pdfexport-downloadtype-open"
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
82 value="open"
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
83 v-model="form.downloadType"
1480
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1433
diff changeset
84 />
1876
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
85 <label for="pdfexport-downloadtype-open" class="ml-1">
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
86 <translate>Open in new window</translate>
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
87 </label>
1361
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
88 </small>
1903
7247ac316cb7 client: pdf-gen: improve layout and ui
Bernhard Reiter <bernhard@intevation.de>
parents: 1897
diff changeset
89 -->
1361
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
90 <button
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
91 @click="download"
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
92 type="button"
2111
dd4e1f5f66b8 shortened vue binding syntax
Markus Kottlaender <markus@intevation.de>
parents: 2080
diff changeset
93 :disabled="!readyToGenerate"
2112
8c0a0f237c2d improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents: 2111
diff changeset
94 class="btn btn-sm btn-info d-block w-100 mt-2"
1480
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1433
diff changeset
95 >
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1433
diff changeset
96 <translate>Generate PDF</translate>
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1433
diff changeset
97 </button>
1361
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
98 </div>
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
99 </div>
1361
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
100 </div>
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
101 </template>
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
102
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
103 <script>
1362
ca33ad696594 remove the first empyty lines
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1361
diff changeset
104 /* This is Free Software under GNU Affero General Public License v >= 3.0
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
105 * without warranty, see README.md and license for details.
1361
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
106 *
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
107 * SPDX-License-Identifier: AGPL-3.0-or-later
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
108 * License-Filename: LICENSES/AGPL-3.0.txt
1361
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
109 *
1878
f030182f82f1 client: fix style warning for pdfexport
Bernhard Reiter <bernhard@intevation.de>
parents: 1876
diff changeset
110 * Copyright (C) 2018, 2019 by via donau
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
111 * – Österreichische Wasserstraßen-Gesellschaft mbH
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
112 * Software engineering by Intevation GmbH
1361
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
113 *
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
114 * Author(s):
1635
ca48145dba9c client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents: 1613
diff changeset
115 * * Markus Kottländer <markus.kottlaender@intevation.de>
ca48145dba9c client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents: 1613
diff changeset
116 * * Bernhard E. Reiter <bernhard@intevation.de>
1878
f030182f82f1 client: fix style warning for pdfexport
Bernhard Reiter <bernhard@intevation.de>
parents: 1876
diff changeset
117 * * Fadi Abbud <fadi.abbud@intevation.de>
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
118 */
1931
8fb1b1a8ea85 client: pdf-gen: improve legend behaviour
Bernhard Reiter <bernhard@intevation.de>
parents: 1928
diff changeset
119 import { mapGetters, mapState } from "vuex";
1874
bad32adafef2 client: add real pdf generation with jspdf
Bernhard Reiter <bernhard@intevation.de>
parents: 1635
diff changeset
120 import jsPDF from "jspdf";
1887
3ed036adc80f client: pdf-gen: fix scale calculation
Bernhard Reiter <bernhard@intevation.de>
parents: 1886
diff changeset
121 import { getPointResolution } from "ol/proj.js";
1903
7247ac316cb7 client: pdf-gen: improve layout and ui
Bernhard Reiter <bernhard@intevation.de>
parents: 1897
diff changeset
122 import locale2 from "locale2";
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
123
1635
ca48145dba9c client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents: 1613
diff changeset
124 var paperSizes = {
ca48145dba9c client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents: 1613
diff changeset
125 // in millimeter, landscape [width, height]
ca48145dba9c client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents: 1613
diff changeset
126 a3: [420, 297],
ca48145dba9c client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents: 1613
diff changeset
127 a4: [297, 210]
ca48145dba9c client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents: 1613
diff changeset
128 };
ca48145dba9c client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents: 1613
diff changeset
129
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
130 export default {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
131 name: "pdftool",
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
132 data() {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
133 return {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
134 form: {
2112
8c0a0f237c2d improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents: 2111
diff changeset
135 template: null,
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
136 format: "landscape",
1635
ca48145dba9c client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents: 1613
diff changeset
137 paperSize: "a4",
1881
f512cfb63e53 pdf-generation: add select box to pdf tool to choose the resolutions
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1879
diff changeset
138 downloadType: "download",
f512cfb63e53 pdf-generation: add select box to pdf tool to choose the resolutions
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1879
diff changeset
139 resolution: "120"
1947
4235fa8f59d7 clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents: 1936
diff changeset
140 },
4235fa8f59d7 clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents: 1936
diff changeset
141 logoImageForPDF: null, // a HTMLImageElement instance
4235fa8f59d7 clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents: 1936
diff changeset
142 readyToGenerate: true // if the user is allowed to press the button
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
143 };
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
144 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
145 computed: {
2212
733cfc3db48a started pdf template administration
Markus Kottlaender <markus@intevation.de>
parents: 2207
diff changeset
146 ...mapState("application", ["showPdfTool", "logoForPDF", "pdfTemplates"]),
2137
a31c9fa47ab8 client: pdf-gen: add bottleneck details
Bernhard Reiter <bernhard@intevation.de>
parents: 2124
diff changeset
147 ...mapState("bottlenecks", ["selectedBottleneck", "selectedSurvey"]),
1928
76ca071cb006 client: pdf-gen: add legend graphic
Bernhard Reiter <bernhard@intevation.de>
parents: 1914
diff changeset
148 ...mapState("map", ["openLayersMap", "isolinesLegendImgDataURL"]),
1931
8fb1b1a8ea85 client: pdf-gen: improve legend behaviour
Bernhard Reiter <bernhard@intevation.de>
parents: 1928
diff changeset
149 ...mapGetters("map", ["getLayerByName"]),
1903
7247ac316cb7 client: pdf-gen: improve layout and ui
Bernhard Reiter <bernhard@intevation.de>
parents: 1897
diff changeset
150 ...mapState("user", ["user"])
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
151 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
152 methods: {
2112
8c0a0f237c2d improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents: 2111
diff changeset
153 // When a template is chosen from the dropdown, its propoerties are
8c0a0f237c2d improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents: 2111
diff changeset
154 // applied to the rest of the form.
8c0a0f237c2d improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents: 2111
diff changeset
155 applyTemplateToForm() {
2214
5a4b0c85e7a8 values in template select are now the actual objects
Markus Kottlaender <markus@intevation.de>
parents: 2212
diff changeset
156 if (this.form.template) {
5a4b0c85e7a8 values in template select are now the actual objects
Markus Kottlaender <markus@intevation.de>
parents: 2212
diff changeset
157 this.form.format = this.form.template.properties.format;
5a4b0c85e7a8 values in template select are now the actual objects
Markus Kottlaender <markus@intevation.de>
parents: 2212
diff changeset
158 this.form.paperSize = this.form.template.properties.paperSize;
5a4b0c85e7a8 values in template select are now the actual objects
Markus Kottlaender <markus@intevation.de>
parents: 2212
diff changeset
159 this.form.resolution = this.form.template.properties.resolution;
2112
8c0a0f237c2d improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents: 2111
diff changeset
160 }
8c0a0f237c2d improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents: 2111
diff changeset
161 },
8c0a0f237c2d improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents: 2111
diff changeset
162 // If there's a template that matches all the form values, this template
8c0a0f237c2d improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents: 2111
diff changeset
163 // will be set in the dropdown.
8c0a0f237c2d improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents: 2111
diff changeset
164 compareFormWithTemplates() {
8c0a0f237c2d improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents: 2111
diff changeset
165 this.form.template = null;
2212
733cfc3db48a started pdf template administration
Markus Kottlaender <markus@intevation.de>
parents: 2207
diff changeset
166 this.pdfTemplates.forEach(t => {
2112
8c0a0f237c2d improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents: 2111
diff changeset
167 if (
8c0a0f237c2d improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents: 2111
diff changeset
168 this.form.format === t.properties.format &&
8c0a0f237c2d improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents: 2111
diff changeset
169 this.form.paperSize === t.properties.paperSize &&
8c0a0f237c2d improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents: 2111
diff changeset
170 this.form.resolution === t.properties.resolution
8c0a0f237c2d improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents: 2111
diff changeset
171 ) {
2214
5a4b0c85e7a8 values in template select are now the actual objects
Markus Kottlaender <markus@intevation.de>
parents: 2212
diff changeset
172 this.form.template = t;
2112
8c0a0f237c2d improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents: 2111
diff changeset
173 }
8c0a0f237c2d improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents: 2111
diff changeset
174 });
8c0a0f237c2d improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents: 2111
diff changeset
175 },
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
176 download() {
2214
5a4b0c85e7a8 values in template select are now the actual objects
Markus Kottlaender <markus@intevation.de>
parents: 2212
diff changeset
177 let template = this.form.template;
5a4b0c85e7a8 values in template select are now the actual objects
Markus Kottlaender <markus@intevation.de>
parents: 2212
diff changeset
178
1947
4235fa8f59d7 clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents: 1936
diff changeset
179 // disable button while working on it
4235fa8f59d7 clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents: 1936
diff changeset
180 this.readyToGenerate = false;
4235fa8f59d7 clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents: 1936
diff changeset
181
1635
ca48145dba9c client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents: 1613
diff changeset
182 console.log(
ca48145dba9c client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents: 1613
diff changeset
183 "will generate pdf with",
ca48145dba9c client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents: 1613
diff changeset
184 this.form.paperSize,
1884
59ef76d83de7 client: pdf-gen: make scalebar dynamic
Bernhard Reiter <bernhard@intevation.de>
parents: 1883
diff changeset
185 this.form.format,
59ef76d83de7 client: pdf-gen: make scalebar dynamic
Bernhard Reiter <bernhard@intevation.de>
parents: 1883
diff changeset
186 this.form.resolution
1635
ca48145dba9c client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents: 1613
diff changeset
187 );
1874
bad32adafef2 client: add real pdf generation with jspdf
Bernhard Reiter <bernhard@intevation.de>
parents: 1635
diff changeset
188 var width, height;
1883
76a6d334e681 Client: pdf-gen: refactor addScaleBar
Bernhard Reiter <bernhard@intevation.de>
parents: 1882
diff changeset
189
1635
ca48145dba9c client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents: 1613
diff changeset
190 if (this.form.format !== "portrait") {
ca48145dba9c client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents: 1613
diff changeset
191 // landscape, default
ca48145dba9c client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents: 1613
diff changeset
192 width = paperSizes[this.form.paperSize][0];
ca48145dba9c client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents: 1613
diff changeset
193 height = paperSizes[this.form.paperSize][1];
ca48145dba9c client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents: 1613
diff changeset
194 } else {
ca48145dba9c client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents: 1613
diff changeset
195 // switch width and height
ca48145dba9c client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents: 1613
diff changeset
196 width = paperSizes[this.form.paperSize][1];
ca48145dba9c client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents: 1613
diff changeset
197 height = paperSizes[this.form.paperSize][0];
ca48145dba9c client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents: 1613
diff changeset
198 }
1874
bad32adafef2 client: add real pdf generation with jspdf
Bernhard Reiter <bernhard@intevation.de>
parents: 1635
diff changeset
199
bad32adafef2 client: add real pdf generation with jspdf
Bernhard Reiter <bernhard@intevation.de>
parents: 1635
diff changeset
200 // FUTURE: consider margins
1635
ca48145dba9c client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents: 1613
diff changeset
201
1884
59ef76d83de7 client: pdf-gen: make scalebar dynamic
Bernhard Reiter <bernhard@intevation.de>
parents: 1883
diff changeset
202 // dots per mm = dots per inch / (25.4 mm/inch)
59ef76d83de7 client: pdf-gen: make scalebar dynamic
Bernhard Reiter <bernhard@intevation.de>
parents: 1883
diff changeset
203 var pixelsPerMapMillimeter = this.form.resolution / 25.4;
59ef76d83de7 client: pdf-gen: make scalebar dynamic
Bernhard Reiter <bernhard@intevation.de>
parents: 1883
diff changeset
204 var mapSizeForPrint = [
59ef76d83de7 client: pdf-gen: make scalebar dynamic
Bernhard Reiter <bernhard@intevation.de>
parents: 1883
diff changeset
205 // in pixel
59ef76d83de7 client: pdf-gen: make scalebar dynamic
Bernhard Reiter <bernhard@intevation.de>
parents: 1883
diff changeset
206 Math.round(width * pixelsPerMapMillimeter),
59ef76d83de7 client: pdf-gen: make scalebar dynamic
Bernhard Reiter <bernhard@intevation.de>
parents: 1883
diff changeset
207 Math.round(height * pixelsPerMapMillimeter)
59ef76d83de7 client: pdf-gen: make scalebar dynamic
Bernhard Reiter <bernhard@intevation.de>
parents: 1883
diff changeset
208 ];
59ef76d83de7 client: pdf-gen: make scalebar dynamic
Bernhard Reiter <bernhard@intevation.de>
parents: 1883
diff changeset
209
1883
76a6d334e681 Client: pdf-gen: refactor addScaleBar
Bernhard Reiter <bernhard@intevation.de>
parents: 1882
diff changeset
210 // generate PDF and open it
76a6d334e681 Client: pdf-gen: refactor addScaleBar
Bernhard Reiter <bernhard@intevation.de>
parents: 1882
diff changeset
211 // our units are milimeters; width 0 x height 0 is left upper corner
76a6d334e681 Client: pdf-gen: refactor addScaleBar
Bernhard Reiter <bernhard@intevation.de>
parents: 1882
diff changeset
212
76a6d334e681 Client: pdf-gen: refactor addScaleBar
Bernhard Reiter <bernhard@intevation.de>
parents: 1882
diff changeset
213 // Step 1 prepare and save current map extend
76a6d334e681 Client: pdf-gen: refactor addScaleBar
Bernhard Reiter <bernhard@intevation.de>
parents: 1882
diff changeset
214 // Then add callback "rendercomplete" for Step 3
76a6d334e681 Client: pdf-gen: refactor addScaleBar
Bernhard Reiter <bernhard@intevation.de>
parents: 1882
diff changeset
215 // which will generate the pdf and resets the map view
76a6d334e681 Client: pdf-gen: refactor addScaleBar
Bernhard Reiter <bernhard@intevation.de>
parents: 1882
diff changeset
216 // Step 2 which starts rendering a map with the necessary image size
76a6d334e681 Client: pdf-gen: refactor addScaleBar
Bernhard Reiter <bernhard@intevation.de>
parents: 1882
diff changeset
217
1874
bad32adafef2 client: add real pdf generation with jspdf
Bernhard Reiter <bernhard@intevation.de>
parents: 1635
diff changeset
218 var map = this.openLayersMap;
bad32adafef2 client: add real pdf generation with jspdf
Bernhard Reiter <bernhard@intevation.de>
parents: 1635
diff changeset
219 var mapSize = map.getSize(); // size in pixels of the map in the DOM
bad32adafef2 client: add real pdf generation with jspdf
Bernhard Reiter <bernhard@intevation.de>
parents: 1635
diff changeset
220 // Calculate the extent for the current view state and the passed size.
bad32adafef2 client: add real pdf generation with jspdf
Bernhard Reiter <bernhard@intevation.de>
parents: 1635
diff changeset
221 // The size is the pixel dimensions of the box into which the calculated
bad32adafef2 client: add real pdf generation with jspdf
Bernhard Reiter <bernhard@intevation.de>
parents: 1635
diff changeset
222 // extent should fit.
bad32adafef2 client: add real pdf generation with jspdf
Bernhard Reiter <bernhard@intevation.de>
parents: 1635
diff changeset
223 var mapExtent = map.getView().calculateExtent(mapSize);
1883
76a6d334e681 Client: pdf-gen: refactor addScaleBar
Bernhard Reiter <bernhard@intevation.de>
parents: 1882
diff changeset
224
1874
bad32adafef2 client: add real pdf generation with jspdf
Bernhard Reiter <bernhard@intevation.de>
parents: 1635
diff changeset
225 var pdf = new jsPDF(this.form.format, "mm", this.form.paperSize);
1876
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
226 var northarrowSize = 3;
1883
76a6d334e681 Client: pdf-gen: refactor addScaleBar
Bernhard Reiter <bernhard@intevation.de>
parents: 1882
diff changeset
227 var self = this;
76a6d334e681 Client: pdf-gen: refactor addScaleBar
Bernhard Reiter <bernhard@intevation.de>
parents: 1882
diff changeset
228
1874
bad32adafef2 client: add real pdf generation with jspdf
Bernhard Reiter <bernhard@intevation.de>
parents: 1635
diff changeset
229 // set a callback for after the next complete rendering of the map
bad32adafef2 client: add real pdf generation with jspdf
Bernhard Reiter <bernhard@intevation.de>
parents: 1635
diff changeset
230 map.once("rendercomplete", function(event) {
bad32adafef2 client: add real pdf generation with jspdf
Bernhard Reiter <bernhard@intevation.de>
parents: 1635
diff changeset
231 let canvas = event.context.canvas;
1887
3ed036adc80f client: pdf-gen: fix scale calculation
Bernhard Reiter <bernhard@intevation.de>
parents: 1886
diff changeset
232
3ed036adc80f client: pdf-gen: fix scale calculation
Bernhard Reiter <bernhard@intevation.de>
parents: 1886
diff changeset
233 // because we are using Web Mercator, a pixel represents
3ed036adc80f client: pdf-gen: fix scale calculation
Bernhard Reiter <bernhard@intevation.de>
parents: 1886
diff changeset
234 // a differently sizes spot depending on the place of the map.
3ed036adc80f client: pdf-gen: fix scale calculation
Bernhard Reiter <bernhard@intevation.de>
parents: 1886
diff changeset
235 // So we use a value calculated from the center of the current view.
1884
59ef76d83de7 client: pdf-gen: make scalebar dynamic
Bernhard Reiter <bernhard@intevation.de>
parents: 1883
diff changeset
236 let view = map.getView();
1887
3ed036adc80f client: pdf-gen: fix scale calculation
Bernhard Reiter <bernhard@intevation.de>
parents: 1886
diff changeset
237 let proj = view.getProjection();
3ed036adc80f client: pdf-gen: fix scale calculation
Bernhard Reiter <bernhard@intevation.de>
parents: 1886
diff changeset
238 let metersPerPixel = // average meters (reality) per pixel (map)
3ed036adc80f client: pdf-gen: fix scale calculation
Bernhard Reiter <bernhard@intevation.de>
parents: 1886
diff changeset
239 getPointResolution(proj, view.getResolution(), view.getCenter()) *
3ed036adc80f client: pdf-gen: fix scale calculation
Bernhard Reiter <bernhard@intevation.de>
parents: 1886
diff changeset
240 proj.getMetersPerUnit();
1897
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
241 // DEBUG console.log("metersPerPixel = ", metersPerPixel);
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
242
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
243 let scaleNominator = Math.round(
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
244 // the x in 1:x map scale
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
245 1000 * pixelsPerMapMillimeter * metersPerPixel
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
246 );
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
247 console.log("scaleNominator = ", scaleNominator);
1884
59ef76d83de7 client: pdf-gen: make scalebar dynamic
Bernhard Reiter <bernhard@intevation.de>
parents: 1883
diff changeset
248
1886
20fe31b4dd5d client: pdf-gen: use jpeg, add scale number.
Bernhard Reiter <bernhard@intevation.de>
parents: 1884
diff changeset
249 var data = canvas.toDataURL("image/jpeg");
20fe31b4dd5d client: pdf-gen: use jpeg, add scale number.
Bernhard Reiter <bernhard@intevation.de>
parents: 1884
diff changeset
250 pdf.addImage(data, "JPEG", 0, 0, width, height);
2205
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
251 //self.addScaleBar(pdf, width, height, scaleNominator);
1903
7247ac316cb7 client: pdf-gen: improve layout and ui
Bernhard Reiter <bernhard@intevation.de>
parents: 1897
diff changeset
252 self.addNorthArrow(pdf, 15, 9, northarrowSize);
2205
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
253 //self.addPageInfo(pdf);
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
254 //self.addAboutBox(pdf, width, height);
1903
7247ac316cb7 client: pdf-gen: improve layout and ui
Bernhard Reiter <bernhard@intevation.de>
parents: 1897
diff changeset
255
1931
8fb1b1a8ea85 client: pdf-gen: improve legend behaviour
Bernhard Reiter <bernhard@intevation.de>
parents: 1928
diff changeset
256 if (self.getLayerByName("Bottleneck isolines").isVisible) {
2137
a31c9fa47ab8 client: pdf-gen: add bottleneck details
Bernhard Reiter <bernhard@intevation.de>
parents: 2124
diff changeset
257 self.addBottleneckInfo(pdf, 13, width, height);
a31c9fa47ab8 client: pdf-gen: add bottleneck details
Bernhard Reiter <bernhard@intevation.de>
parents: 2124
diff changeset
258 self.addLegend(pdf, 14, width, height);
1931
8fb1b1a8ea85 client: pdf-gen: improve legend behaviour
Bernhard Reiter <bernhard@intevation.de>
parents: 1928
diff changeset
259 }
2205
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
260 if (template) {
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
261 template.elements.forEach(t => {
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
262 switch (t.type) {
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
263 case "image": {
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
264 if (t.imageUrl.length > 0) {
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
265 pdf.addImage(
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
266 t.imageUrl,
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
267 t.imageType,
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
268 t.x_coordinate,
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
269 t.y_coordinate,
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
270 t.imageWidth,
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
271 t.imageHeight
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
272 );
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
273 }
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
274 break;
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
275 }
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
276 case "scalebar": {
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
277 self.addScaleBar(
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
278 pdf,
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
279 width,
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
280 height,
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
281 scaleNominator,
2207
da902f0dac88 pdf-gen: add fixed coordinates and values
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2205
diff changeset
282 t.x_coordinate,
2205
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
283 t.y_coordinate
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
284 );
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
285 break;
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
286 }
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
287 case "textbox": {
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
288 self.addText(
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
289 pdf,
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
290 t.x_coordinate,
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
291 t.y_coordinate,
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
292 t.elementSize,
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
293 t.color,
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
294 100,
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
295 t.text
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
296 );
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
297 break;
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
298 }
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
299 case "docinfo": {
2207
da902f0dac88 pdf-gen: add fixed coordinates and values
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2205
diff changeset
300 self.addPageInfo(
da902f0dac88 pdf-gen: add fixed coordinates and values
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2205
diff changeset
301 pdf,
da902f0dac88 pdf-gen: add fixed coordinates and values
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2205
diff changeset
302 t.x_coordinate,
da902f0dac88 pdf-gen: add fixed coordinates and values
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2205
diff changeset
303 t.y_coordinate,
da902f0dac88 pdf-gen: add fixed coordinates and values
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2205
diff changeset
304 t.elementWidth,
da902f0dac88 pdf-gen: add fixed coordinates and values
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2205
diff changeset
305 t.elementHeight,
da902f0dac88 pdf-gen: add fixed coordinates and values
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2205
diff changeset
306 t.textSize
da902f0dac88 pdf-gen: add fixed coordinates and values
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2205
diff changeset
307 );
2205
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
308 break;
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
309 }
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
310 case "aboutbox": {
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
311 self.addAboutBox(pdf, width, height);
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
312 break;
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
313 }
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
314 /* case "docinfo": {
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
315 self.addAboutBox(
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
316 pdf,
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
317 t.x_coordinate,
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
318 t.y_coordinate,
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
319 t.elementWidth,
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
320 t.elementHeight
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
321 );
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
322 } */
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
323 }
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
324 });
1928
76ca071cb006 client: pdf-gen: add legend graphic
Bernhard Reiter <bernhard@intevation.de>
parents: 1914
diff changeset
325
2205
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
326 pdf.save("map.pdf");
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
327 } else {
2207
da902f0dac88 pdf-gen: add fixed coordinates and values
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2205
diff changeset
328 self.addScaleBar(pdf, width, height, scaleNominator, 226.5, 204);
da902f0dac88 pdf-gen: add fixed coordinates and values
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2205
diff changeset
329 self.addPageInfo(pdf, 0, 0, 110, 8, 9);
2205
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
330 self.addAboutBox(pdf, width, height);
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
331 pdf.save("map.pdf");
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
332 }
1874
bad32adafef2 client: add real pdf generation with jspdf
Bernhard Reiter <bernhard@intevation.de>
parents: 1635
diff changeset
333 // reset to original size
bad32adafef2 client: add real pdf generation with jspdf
Bernhard Reiter <bernhard@intevation.de>
parents: 1635
diff changeset
334 map.setSize(mapSize);
bad32adafef2 client: add real pdf generation with jspdf
Bernhard Reiter <bernhard@intevation.de>
parents: 1635
diff changeset
335 map.getView().fit(mapExtent, { size: mapSize });
bad32adafef2 client: add real pdf generation with jspdf
Bernhard Reiter <bernhard@intevation.de>
parents: 1635
diff changeset
336
1947
4235fa8f59d7 clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents: 1936
diff changeset
337 // as we are done: re-enable button
4235fa8f59d7 clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents: 1936
diff changeset
338 self.readyToGenerate = true;
1874
bad32adafef2 client: add real pdf generation with jspdf
Bernhard Reiter <bernhard@intevation.de>
parents: 1635
diff changeset
339 });
bad32adafef2 client: add real pdf generation with jspdf
Bernhard Reiter <bernhard@intevation.de>
parents: 1635
diff changeset
340
bad32adafef2 client: add real pdf generation with jspdf
Bernhard Reiter <bernhard@intevation.de>
parents: 1635
diff changeset
341 // trigger rendering
1947
4235fa8f59d7 clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents: 1936
diff changeset
342 this.prepareRendering(function() {
4235fa8f59d7 clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents: 1936
diff changeset
343 map.setSize(mapSizeForPrint);
4235fa8f59d7 clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents: 1936
diff changeset
344 map.getView().fit(mapExtent, { size: mapSizeForPrint });
1635
ca48145dba9c client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents: 1613
diff changeset
345
1947
4235fa8f59d7 clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents: 1936
diff changeset
346 /*
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
347 let a = document.createElement("a");
1947
4235fa8f59d7 clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents: 1936
diff changeset
348 a.href = src; // need the generated PDF in here (as dataURL?)
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
349
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
350 if (this.form.downloadType === "download")
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
351 a.download = src.substr(src.lastIndexOf("/") + 1);
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
352 else a.target = "_blank";
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
353
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
354 document.body.appendChild(a);
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
355 a.click();
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
356 document.body.removeChild(a);
1874
bad32adafef2 client: add real pdf generation with jspdf
Bernhard Reiter <bernhard@intevation.de>
parents: 1635
diff changeset
357 */
1947
4235fa8f59d7 clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents: 1936
diff changeset
358 });
4235fa8f59d7 clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents: 1936
diff changeset
359 },
4235fa8f59d7 clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents: 1936
diff changeset
360 prepareRendering(callback) {
4235fa8f59d7 clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents: 1936
diff changeset
361 // call callback() once the preparations are done
4235fa8f59d7 clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents: 1936
diff changeset
362 this.logoImageForPDF = new Image();
4235fa8f59d7 clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents: 1936
diff changeset
363
4235fa8f59d7 clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents: 1936
diff changeset
364 this.logoImageForPDF.onload = function() {
4235fa8f59d7 clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents: 1936
diff changeset
365 callback();
4235fa8f59d7 clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents: 1936
diff changeset
366 };
4235fa8f59d7 clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents: 1936
diff changeset
367
4235fa8f59d7 clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents: 1936
diff changeset
368 if (this.logoForPDF) {
4235fa8f59d7 clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents: 1936
diff changeset
369 this.logoImageForPDF.src = this.logoForPDF;
4235fa8f59d7 clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents: 1936
diff changeset
370 } else {
4235fa8f59d7 clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents: 1936
diff changeset
371 this.logoImageForPDF.src = "/img/gemma-logo-for-pdf.png";
4235fa8f59d7 clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents: 1936
diff changeset
372 }
1876
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
373 },
1883
76a6d334e681 Client: pdf-gen: refactor addScaleBar
Bernhard Reiter <bernhard@intevation.de>
parents: 1882
diff changeset
374 addRoundedBox(doc, x, y, w, h) {
76a6d334e681 Client: pdf-gen: refactor addScaleBar
Bernhard Reiter <bernhard@intevation.de>
parents: 1882
diff changeset
375 // draws a rounded background box at (x,y) width x height
76a6d334e681 Client: pdf-gen: refactor addScaleBar
Bernhard Reiter <bernhard@intevation.de>
parents: 1882
diff changeset
376 // using jsPDF units
1876
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
377 doc.setDrawColor(255, 255, 255);
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
378 doc.setFillColor(255, 255, 255);
1883
76a6d334e681 Client: pdf-gen: refactor addScaleBar
Bernhard Reiter <bernhard@intevation.de>
parents: 1882
diff changeset
379 doc.roundedRect(x, y, w, h, 3, 3, "FD");
76a6d334e681 Client: pdf-gen: refactor addScaleBar
Bernhard Reiter <bernhard@intevation.de>
parents: 1882
diff changeset
380 },
2207
da902f0dac88 pdf-gen: add fixed coordinates and values
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2205
diff changeset
381 addScaleBar(doc, docWidth, docHeight, scaleNominator, x, y) {
1897
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
382 // scaleNominator is the x in 1:x of the map scale
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
383
1933
1aa2921d8832 client: pdf-gen: make scalebar box size dynamic
Bernhard Reiter <bernhard@intevation.de>
parents: 1931
diff changeset
384 // hardcode maximal width for now and place in lower right corner
1aa2921d8832 client: pdf-gen: make scalebar box size dynamic
Bernhard Reiter <bernhard@intevation.de>
parents: 1931
diff changeset
385 let maxWidth = 80; // in mm
1aa2921d8832 client: pdf-gen: make scalebar box size dynamic
Bernhard Reiter <bernhard@intevation.de>
parents: 1931
diff changeset
386
1897
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
387 // reduce width until we'll find a nice number for printing
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
388 // strategy:
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
389 // 1. check which unit prefix we shall use to get [10:10000[
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
390 // 2. using a mapping for the leading digit to get [1:10[
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
391 // 3. select a smaller number which is nicely dividable
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
392 // 4. scale up again to get length in paper mm and to be shown
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
393
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
394 // from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log10#Polyfill
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
395 let log10 =
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
396 Math.log10 || // more precise, but unsupported by IE
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
397 function(x) {
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
398 return Math.log(x) * Math.LOG10E;
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
399 };
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
400
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
401 let maxLength = maxWidth * scaleNominator;
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
402
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
403 let unit = "mm";
1914
3d2b55d2d8a6 client: pdf-gen: fix scale bar calculation
Bernhard Reiter <bernhard@intevation.de>
parents: 1903
diff changeset
404 let unitConversionFactor = 1;
3d2b55d2d8a6 client: pdf-gen: fix scale bar calculation
Bernhard Reiter <bernhard@intevation.de>
parents: 1903
diff changeset
405 if (maxLength >= 1e7) {
3d2b55d2d8a6 client: pdf-gen: fix scale bar calculation
Bernhard Reiter <bernhard@intevation.de>
parents: 1903
diff changeset
406 // >= 10 km
1897
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
407 unit = "km";
1914
3d2b55d2d8a6 client: pdf-gen: fix scale bar calculation
Bernhard Reiter <bernhard@intevation.de>
parents: 1903
diff changeset
408 unitConversionFactor = 1e6;
3d2b55d2d8a6 client: pdf-gen: fix scale bar calculation
Bernhard Reiter <bernhard@intevation.de>
parents: 1903
diff changeset
409 } else if (maxLength >= 1e4) {
3d2b55d2d8a6 client: pdf-gen: fix scale bar calculation
Bernhard Reiter <bernhard@intevation.de>
parents: 1903
diff changeset
410 // >= 10 m
1897
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
411 unit = "m";
1914
3d2b55d2d8a6 client: pdf-gen: fix scale bar calculation
Bernhard Reiter <bernhard@intevation.de>
parents: 1903
diff changeset
412 unitConversionFactor = 1e3;
1897
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
413 }
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
414
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
415 maxLength /= unitConversionFactor;
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
416
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
417 // DEBUG console.log(maxLength, unit);
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
418 let unroundedLength = maxLength;
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
419 let numberOfDigits = Math.floor(log10(unroundedLength));
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
420 let factor = Math.pow(10, numberOfDigits);
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
421 let mapped = unroundedLength / factor;
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
422 // DEBUG console.log(mapped);
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
423
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
424 var length = Math.floor(maxLength); // just to have an upper limit
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
425
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
426 // manually only use numbers that are very nice to devide by 4
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
427 // note that this is taken into account for rounding later
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
428 if (mapped > 8) {
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
429 length = 8 * factor;
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
430 } else if (mapped > 4) {
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
431 length = 4 * factor;
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
432 } else if (mapped > 2) {
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
433 length = 2 * factor;
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
434 } else {
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
435 length = factor;
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
436 }
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
437
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
438 let size = (length * unitConversionFactor) / scaleNominator / 4;
1933
1aa2921d8832 client: pdf-gen: make scalebar box size dynamic
Bernhard Reiter <bernhard@intevation.de>
parents: 1931
diff changeset
439
2207
da902f0dac88 pdf-gen: add fixed coordinates and values
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2205
diff changeset
440 //let x = docWidth - (size * 4 + 8);
2205
59c21dee6315 pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2124
diff changeset
441 //let y = docHeight - 6;
1933
1aa2921d8832 client: pdf-gen: make scalebar box size dynamic
Bernhard Reiter <bernhard@intevation.de>
parents: 1931
diff changeset
442
1936
17b6d2a6fb76 client: pdf-gen (minor) fix formatto
Bernhard Reiter <bernhard@intevation.de>
parents: 1933
diff changeset
443 this.addRoundedBox(doc, x - 4, y - 4, size * 4 + 12, 10);
1897
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
444
1876
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
445 doc.setDrawColor(0, 0, 0);
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
446 doc.setFillColor(0, 0, 0);
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
447 doc.rect(x, y, size, 1, "FD");
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
448 doc.setFillColor(255, 255, 255);
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
449 doc.setDrawColor(0, 0, 0);
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
450 doc.rect(x + size, y, size, 1, "FD");
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
451 doc.setFillColor(0, 0, 0);
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
452 doc.setDrawColor(0, 0, 0);
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
453 doc.rect(x + size * 2, y, size * 2, 1, "FD");
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
454 doc.setFontSize(5);
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
455 doc.text(x, y + 3, "0");
1897
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
456 // /4 and could give 2.5. We still round, because of floating point arith
1884
59ef76d83de7 client: pdf-gen: make scalebar dynamic
Bernhard Reiter <bernhard@intevation.de>
parents: 1883
diff changeset
457 doc.text(
1897
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
458 x + size,
1884
59ef76d83de7 client: pdf-gen: make scalebar dynamic
Bernhard Reiter <bernhard@intevation.de>
parents: 1883
diff changeset
459 y + 3,
1897
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
460 (Math.round((length * 10) / 4) / 10).toString()
1884
59ef76d83de7 client: pdf-gen: make scalebar dynamic
Bernhard Reiter <bernhard@intevation.de>
parents: 1883
diff changeset
461 );
1897
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
462 doc.text(x + size * 2, y + 3, Math.round(length / 2).toString());
c78efb1ddb02 client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents: 1887
diff changeset
463 doc.text(x + size * 4, y + 3, Math.round(length).toString() + " " + unit);
1876
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
464 },
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
465
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
466 addNorthArrow(doc, x1, y1, size) {
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
467 var y2 = y1 + size * 3;
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
468 var x3 = x1 - size * 2;
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
469 var y3 = y1 + size * 5;
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
470 var x4 = x1 + size * 2;
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
471 //white triangle
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
472 doc.setFillColor(255, 255, 255);
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
473 doc.setDrawColor(255, 255, 255);
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
474 doc.triangle(x3 - 0.8, y3 + 1.2, x1, y1 - 1.2, x1, y2 + 0.6, "F");
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
475 doc.triangle(x1, y1 - 1.2, x1, y2 + 0.6, x4 + 0.8, y3 + 1.2, "F");
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
476 //north arrow
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
477 doc.setDrawColor(0, 0, 0);
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
478 doc.setFillColor(255, 255, 255);
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
479 doc.triangle(x3, y3, x1, y1, x1, y2, "FD");
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
480 doc.setFillColor(0, 0, 0);
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
481 doc.triangle(x1, y1, x1, y2, x4, y3, "FD");
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
482 doc.setFontSize(size * 3.1);
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
483 doc.setTextColor(255, 255, 255);
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
484 doc.setFontStyle("bold");
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
485 doc.text(size < 3 ? x1 - 0.5 : x1 - 1.3, y3 + 1, "N");
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
486 doc.setFontSize(size * 3);
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
487 doc.setTextColor(0, 0, 0);
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
488 doc.setFontStyle("normal");
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
489 doc.text(size < 3 ? x1 - 0.5 : x1 - 1.3, y3 + 1, "N");
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
490 },
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
491 // add some text at specific coordinates and determine how many wrolds in single line
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
492 addText(doc, postitionX, positionY, size, color, lineWidth, text) {
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
493 // split the incoming string to an array, each element is a string of words in a single line
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
494 var textLines = doc.splitTextToSize(text, lineWidth);
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
495 doc.setTextColor(color);
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
496 doc.setFontSize(size);
e53924abb4a2 client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1874
diff changeset
497 doc.text(postitionX, positionY, textLines);
1903
7247ac316cb7 client: pdf-gen: improve layout and ui
Bernhard Reiter <bernhard@intevation.de>
parents: 1897
diff changeset
498 },
2207
da902f0dac88 pdf-gen: add fixed coordinates and values
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2205
diff changeset
499 addPageInfo(doc, x, y, width, height, textSize) {
da902f0dac88 pdf-gen: add fixed coordinates and values
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2205
diff changeset
500 this.addRoundedBox(doc, x, y, width, height);
1903
7247ac316cb7 client: pdf-gen: improve layout and ui
Bernhard Reiter <bernhard@intevation.de>
parents: 1897
diff changeset
501 let str =
7247ac316cb7 client: pdf-gen: improve layout and ui
Bernhard Reiter <bernhard@intevation.de>
parents: 1897
diff changeset
502 this.$gettext("Date of publication:") +
7247ac316cb7 client: pdf-gen: improve layout and ui
Bernhard Reiter <bernhard@intevation.de>
parents: 1897
diff changeset
503 " " +
7247ac316cb7 client: pdf-gen: improve layout and ui
Bernhard Reiter <bernhard@intevation.de>
parents: 1897
diff changeset
504 new Date().toLocaleString(locale2) +
7247ac316cb7 client: pdf-gen: improve layout and ui
Bernhard Reiter <bernhard@intevation.de>
parents: 1897
diff changeset
505 " " +
1962
b275d5e14087 client: pdf-gen: improve page info text
Bernhard Reiter <bernhard@intevation.de>
parents: 1947
diff changeset
506 this.$gettext("– generated by:") +
1903
7247ac316cb7 client: pdf-gen: improve layout and ui
Bernhard Reiter <bernhard@intevation.de>
parents: 1897
diff changeset
507 " " +
7247ac316cb7 client: pdf-gen: improve layout and ui
Bernhard Reiter <bernhard@intevation.de>
parents: 1897
diff changeset
508 this.user;
2207
da902f0dac88 pdf-gen: add fixed coordinates and values
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2205
diff changeset
509 this.addText(doc, x + 5, y + 5, textSize, "black", 100, str);
1903
7247ac316cb7 client: pdf-gen: improve layout and ui
Bernhard Reiter <bernhard@intevation.de>
parents: 1897
diff changeset
510 },
7247ac316cb7 client: pdf-gen: improve layout and ui
Bernhard Reiter <bernhard@intevation.de>
parents: 1897
diff changeset
511 addAboutBox(doc, docWidth, docHeight) {
7247ac316cb7 client: pdf-gen: improve layout and ui
Bernhard Reiter <bernhard@intevation.de>
parents: 1897
diff changeset
512 let top = docHeight - 20;
7247ac316cb7 client: pdf-gen: improve layout and ui
Bernhard Reiter <bernhard@intevation.de>
parents: 1897
diff changeset
513 this.addRoundedBox(doc, 0, top, 120, 20);
1947
4235fa8f59d7 clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents: 1936
diff changeset
514
4235fa8f59d7 clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents: 1936
diff changeset
515 let logoImage = this.logoImageForPDF;
4235fa8f59d7 clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents: 1936
diff changeset
516 let aspectRatio = logoImage.width / logoImage.height;
4235fa8f59d7 clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents: 1936
diff changeset
517 doc.addImage(logoImage, "PNG", 5, docHeight - 19, 110, 110 / aspectRatio);
4235fa8f59d7 clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents: 1936
diff changeset
518
1903
7247ac316cb7 client: pdf-gen: improve layout and ui
Bernhard Reiter <bernhard@intevation.de>
parents: 1897
diff changeset
519 let str =
7247ac316cb7 client: pdf-gen: improve layout and ui
Bernhard Reiter <bernhard@intevation.de>
parents: 1897
diff changeset
520 "Dislaimer: Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.";
7247ac316cb7 client: pdf-gen: improve layout and ui
Bernhard Reiter <bernhard@intevation.de>
parents: 1897
diff changeset
521 this.addText(doc, 5, docHeight - 6, 8, "black", 115, str);
1931
8fb1b1a8ea85 client: pdf-gen: improve legend behaviour
Bernhard Reiter <bernhard@intevation.de>
parents: 1928
diff changeset
522 },
2137
a31c9fa47ab8 client: pdf-gen: add bottleneck details
Bernhard Reiter <bernhard@intevation.de>
parents: 2124
diff changeset
523 addLegend(doc, fromTop, docWidth) {
1931
8fb1b1a8ea85 client: pdf-gen: improve legend behaviour
Bernhard Reiter <bernhard@intevation.de>
parents: 1928
diff changeset
524 // transforming into an HTMLImageElement only to find out
8fb1b1a8ea85 client: pdf-gen: improve legend behaviour
Bernhard Reiter <bernhard@intevation.de>
parents: 1928
diff changeset
525 // the width x height of the legend image
8fb1b1a8ea85 client: pdf-gen: improve legend behaviour
Bernhard Reiter <bernhard@intevation.de>
parents: 1928
diff changeset
526 // FUTURE: find a better way to get the width and height
8fb1b1a8ea85 client: pdf-gen: improve legend behaviour
Bernhard Reiter <bernhard@intevation.de>
parents: 1928
diff changeset
527 let legendImage = new Image();
8fb1b1a8ea85 client: pdf-gen: improve legend behaviour
Bernhard Reiter <bernhard@intevation.de>
parents: 1928
diff changeset
528 legendImage.src = this.isolinesLegendImgDataURL;
8fb1b1a8ea85 client: pdf-gen: improve legend behaviour
Bernhard Reiter <bernhard@intevation.de>
parents: 1928
diff changeset
529 let aspectRatio = legendImage.width / legendImage.height;
8fb1b1a8ea85 client: pdf-gen: improve legend behaviour
Bernhard Reiter <bernhard@intevation.de>
parents: 1928
diff changeset
530
2137
a31c9fa47ab8 client: pdf-gen: add bottleneck details
Bernhard Reiter <bernhard@intevation.de>
parents: 2124
diff changeset
531 this.addRoundedBox(doc, docWidth - 54, fromTop, 54, 50 / aspectRatio + 4);
a31c9fa47ab8 client: pdf-gen: add bottleneck details
Bernhard Reiter <bernhard@intevation.de>
parents: 2124
diff changeset
532 doc.addImage(
a31c9fa47ab8 client: pdf-gen: add bottleneck details
Bernhard Reiter <bernhard@intevation.de>
parents: 2124
diff changeset
533 legendImage,
a31c9fa47ab8 client: pdf-gen: add bottleneck details
Bernhard Reiter <bernhard@intevation.de>
parents: 2124
diff changeset
534 docWidth - 52,
a31c9fa47ab8 client: pdf-gen: add bottleneck details
Bernhard Reiter <bernhard@intevation.de>
parents: 2124
diff changeset
535 fromTop + 2,
a31c9fa47ab8 client: pdf-gen: add bottleneck details
Bernhard Reiter <bernhard@intevation.de>
parents: 2124
diff changeset
536 50,
a31c9fa47ab8 client: pdf-gen: add bottleneck details
Bernhard Reiter <bernhard@intevation.de>
parents: 2124
diff changeset
537 50 / aspectRatio
a31c9fa47ab8 client: pdf-gen: add bottleneck details
Bernhard Reiter <bernhard@intevation.de>
parents: 2124
diff changeset
538 );
a31c9fa47ab8 client: pdf-gen: add bottleneck details
Bernhard Reiter <bernhard@intevation.de>
parents: 2124
diff changeset
539 },
a31c9fa47ab8 client: pdf-gen: add bottleneck details
Bernhard Reiter <bernhard@intevation.de>
parents: 2124
diff changeset
540 addBottleneckInfo(doc, height, docWidth) {
a31c9fa47ab8 client: pdf-gen: add bottleneck details
Bernhard Reiter <bernhard@intevation.de>
parents: 2124
diff changeset
541 this.addRoundedBox(doc, docWidth - 54, 0, 54, height);
2138
4a903d382901 client: pdf-gen: make bottleneck infos more fancy
Bernhard Reiter <bernhard@intevation.de>
parents: 2137
diff changeset
542
4a903d382901 client: pdf-gen: make bottleneck infos more fancy
Bernhard Reiter <bernhard@intevation.de>
parents: 2137
diff changeset
543 console.log("Fontlist =", doc.getFontList());
4a903d382901 client: pdf-gen: make bottleneck infos more fancy
Bernhard Reiter <bernhard@intevation.de>
parents: 2137
diff changeset
544 doc.setFont("times", "normal");
4a903d382901 client: pdf-gen: make bottleneck infos more fancy
Bernhard Reiter <bernhard@intevation.de>
parents: 2137
diff changeset
545
4a903d382901 client: pdf-gen: make bottleneck infos more fancy
Bernhard Reiter <bernhard@intevation.de>
parents: 2137
diff changeset
546 let name, w, str;
2137
a31c9fa47ab8 client: pdf-gen: add bottleneck details
Bernhard Reiter <bernhard@intevation.de>
parents: 2124
diff changeset
547
2138
4a903d382901 client: pdf-gen: make bottleneck infos more fancy
Bernhard Reiter <bernhard@intevation.de>
parents: 2137
diff changeset
548 doc.setFontStyle("italic");
4a903d382901 client: pdf-gen: make bottleneck infos more fancy
Bernhard Reiter <bernhard@intevation.de>
parents: 2137
diff changeset
549 name = this.$gettext("Bottleneck") + ": ";
4a903d382901 client: pdf-gen: make bottleneck infos more fancy
Bernhard Reiter <bernhard@intevation.de>
parents: 2137
diff changeset
550 w = doc.getTextWidth(name);
4a903d382901 client: pdf-gen: make bottleneck infos more fancy
Bernhard Reiter <bernhard@intevation.de>
parents: 2137
diff changeset
551 this.addText(doc, docWidth - 51, 4, 8, "black", 46, name);
4a903d382901 client: pdf-gen: make bottleneck infos more fancy
Bernhard Reiter <bernhard@intevation.de>
parents: 2137
diff changeset
552 doc.setFontStyle("bold");
4a903d382901 client: pdf-gen: make bottleneck infos more fancy
Bernhard Reiter <bernhard@intevation.de>
parents: 2137
diff changeset
553 str = this.selectedBottleneck;
4a903d382901 client: pdf-gen: make bottleneck infos more fancy
Bernhard Reiter <bernhard@intevation.de>
parents: 2137
diff changeset
554 this.addText(doc, docWidth - 51 + w, 4, 8, "black", 46, str);
2137
a31c9fa47ab8 client: pdf-gen: add bottleneck details
Bernhard Reiter <bernhard@intevation.de>
parents: 2124
diff changeset
555
2138
4a903d382901 client: pdf-gen: make bottleneck infos more fancy
Bernhard Reiter <bernhard@intevation.de>
parents: 2137
diff changeset
556 doc.setFontStyle("italic");
4a903d382901 client: pdf-gen: make bottleneck infos more fancy
Bernhard Reiter <bernhard@intevation.de>
parents: 2137
diff changeset
557 name = this.$gettext("Survey date") + ": ";
4a903d382901 client: pdf-gen: make bottleneck infos more fancy
Bernhard Reiter <bernhard@intevation.de>
parents: 2137
diff changeset
558 w = doc.getTextWidth(name);
4a903d382901 client: pdf-gen: make bottleneck infos more fancy
Bernhard Reiter <bernhard@intevation.de>
parents: 2137
diff changeset
559 this.addText(doc, docWidth - 51, 7.5, 8, "black", 46, name);
4a903d382901 client: pdf-gen: make bottleneck infos more fancy
Bernhard Reiter <bernhard@intevation.de>
parents: 2137
diff changeset
560 doc.setFontStyle("normal");
4a903d382901 client: pdf-gen: make bottleneck infos more fancy
Bernhard Reiter <bernhard@intevation.de>
parents: 2137
diff changeset
561 str = this.selectedSurvey.date_info;
4a903d382901 client: pdf-gen: make bottleneck infos more fancy
Bernhard Reiter <bernhard@intevation.de>
parents: 2137
diff changeset
562 this.addText(doc, docWidth - 51 + w, 7.5, 8, "black", 46, str);
2137
a31c9fa47ab8 client: pdf-gen: add bottleneck details
Bernhard Reiter <bernhard@intevation.de>
parents: 2124
diff changeset
563
2138
4a903d382901 client: pdf-gen: make bottleneck infos more fancy
Bernhard Reiter <bernhard@intevation.de>
parents: 2137
diff changeset
564 doc.setFontStyle("italic");
4a903d382901 client: pdf-gen: make bottleneck infos more fancy
Bernhard Reiter <bernhard@intevation.de>
parents: 2137
diff changeset
565 name = this.$gettext("Ref gauge") + ": ";
4a903d382901 client: pdf-gen: make bottleneck infos more fancy
Bernhard Reiter <bernhard@intevation.de>
parents: 2137
diff changeset
566 w = doc.getTextWidth(name);
4a903d382901 client: pdf-gen: make bottleneck infos more fancy
Bernhard Reiter <bernhard@intevation.de>
parents: 2137
diff changeset
567 this.addText(doc, docWidth - 51, 11, 8, "black", 46, name);
4a903d382901 client: pdf-gen: make bottleneck infos more fancy
Bernhard Reiter <bernhard@intevation.de>
parents: 2137
diff changeset
568 doc.setFontStyle("normal");
4a903d382901 client: pdf-gen: make bottleneck infos more fancy
Bernhard Reiter <bernhard@intevation.de>
parents: 2137
diff changeset
569 str = this.selectedSurvey.gauge_objname;
4a903d382901 client: pdf-gen: make bottleneck infos more fancy
Bernhard Reiter <bernhard@intevation.de>
parents: 2137
diff changeset
570 this.addText(doc, docWidth - 51 + w, 11, 8, "black", 46, str);
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
571 }
2212
733cfc3db48a started pdf template administration
Markus Kottlaender <markus@intevation.de>
parents: 2207
diff changeset
572 },
733cfc3db48a started pdf template administration
Markus Kottlaender <markus@intevation.de>
parents: 2207
diff changeset
573 mounted() {
733cfc3db48a started pdf template administration
Markus Kottlaender <markus@intevation.de>
parents: 2207
diff changeset
574 this.$store.dispatch("application/loadPdfTemplates").then(() => {
2214
5a4b0c85e7a8 values in template select are now the actual objects
Markus Kottlaender <markus@intevation.de>
parents: 2212
diff changeset
575 this.form.template = this.pdfTemplates[0];
2212
733cfc3db48a started pdf template administration
Markus Kottlaender <markus@intevation.de>
parents: 2207
diff changeset
576 });
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
577 }
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
578 };
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
579 </script>