Browse Source

Some resources

Jimmy 2 years ago
parent
commit
8ec54585cd

+ 19 - 0
.vscode/launch.json

@@ -0,0 +1,19 @@
+{
+    // Use IntelliSense to learn about possible attributes.
+    // Hover to view descriptions of existing attributes.
+    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
+    "version": "0.2.0",
+    "configurations": [
+        {
+            "name": "fis_lib_pdf",
+            "request": "launch",
+            "type": "dart",
+            "program": "lib/main.dart",
+            "args": [
+                "--web-port=8081",
+                "--web-hostname=127.0.0.1",
+                "--dart-define=FLUTTER_WEB_CANVASKIT_URL=\"/canvaskit/\""
+            ]
+        }
+    ]
+}

File diff suppressed because it is too large
+ 3 - 0
assets/calendar.svg


+ 15 - 0
assets/document.svg

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg viewBox="0 0 150 230"
+  xmlns="http://www.w3.org/2000/svg"
+  xmlns:xlink="http://www.w3.org/1999/xlink">
+  <defs>
+    <linearGradient id="gradient-1">
+      <stop offset="0" style="stop-color: rgb(255, 255, 255);"/>
+      <stop offset="1" style="stop-color: rgb(161, 161, 161);"/>
+    </linearGradient>
+    <linearGradient id="gradient-1-0" gradientUnits="userSpaceOnUse" x1="119.315" y1="36.313" x2="119.315" y2="216.359" xlink:href="#gradient-1"/>
+  </defs>
+  <rect x="-67.203" y="-48.72" width="276.134" height="354.501" style="fill: rgb(93, 32, 205);"/>
+  <ellipse style="fill: rgb(141, 81, 252);" cx="119.315" cy="126.336" rx="139.238" ry="98.673" transform="matrix(0.93642, 0.35088, -0.35088, 0.93642, -15.610807, -59.255697)"/>
+  <ellipse style="fill: url(#gradient-1-0);" cx="119.315" cy="126.336" rx="130.398" ry="90.023" transform="matrix(0.952861, 0.303408, -0.303408, 0.952861, -26.924128, -56.954295)"/>
+</svg>

BIN
assets/fonts/DroidSansFallback.ttf


File diff suppressed because it is too large
+ 2 - 0
assets/garland.svg


+ 11 - 0
assets/invoice.svg

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg viewBox="0 0 500 92.355" version="1.1" id="svg10" xmlns="http://www.w3.org/2000/svg">
+  <defs id="defs14">
+    <linearGradient gradientUnits="userSpaceOnUse" x1="249.08" y1="1.221" x2="249.08" y2="61.398" id="gradient-0">
+      <stop offset="0" style="stop-color: rgba(0, 150, 135, 1)" id="stop10"/>
+      <stop offset="1" style="stop-color: rgba(0, 48, 43, 1)" id="stop12"/>
+    </linearGradient>
+  </defs>
+  <path id="path22" style="fill:url(#gradient-0);fill-opacity:1;stroke-width:11.5843;stroke-linejoin:bevel" d="M -3.996,39.674 C 8.273617,49.160161 35.005192,56.203995 82.221078,55.342874 129.43696,54.481753 207.42049,40.875492 276.53351,31.064139 345.64653,21.252786 456.00551,7.1441756 497.588,1.283 c 41.58249,-5.8611756 58.59922,9.526128 22.4,11.065 C 483.78878,13.886872 395.42397,17.664198 328.57509,26.666859 261.72621,35.66952 174.3037,56.887679 121.88359,61.404474 69.463477,65.92127 40.62983,63.238679 15.79525,56.147125 -9.0393296,49.055571 -17.563513,36.527873 -20.827733,32.373831 -24.091952,28.219789 -16.265617,30.187839 -3.996,39.674 Z"/>
+  <path id="path24" style="fill:#0c92d6;fill-opacity:1;stroke-width:11.5843;stroke-linejoin:bevel" d="M -17.566 96.408 L 511.464 93.956 L 512.077 14.16 C 469.043 16.127 424.67 19.39 371.361 23.79 C 318.053 28.19 214.33 47.844 158.734 58.537 C 103.138 69.23 57.993 65.275 27.883 60.798 C -2.227 56.321 -7.734 44.147 -18.596 43.062 L -17.566 96.408 Z"/>
+</svg>

BIN
assets/logo.jpg


File diff suppressed because it is too large
+ 0 - 0
assets/logo.svg


+ 9 - 0
assets/medail.svg

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.1" viewBox="0 0 112.86 169.26" xmlns="http://www.w3.org/2000/svg">
+<polygon points="87.429 163.55 87.429 85.111 23.453 85.134 23.43 163.55 55.429 142.24" fill="#ed5564"/>
+<path d="m98.085 56.892c0 23.562-19.094 42.656-42.656 42.656s-42.663-19.094-42.663-42.656 19.102-42.663 42.663-42.663c23.562 0 42.656 19.1 42.656 42.663z" fill="#f6bb42"/>
+<g transform="translate(-200.57 -183.11)" fill="#ffce54">
+<path d="m256 293.34c-29.405 0-53.335-23.937-53.335-53.343s23.93-53.334 53.335-53.334c29.406 0 53.344 23.928 53.344 53.334s-23.938 53.343-53.344 53.343zm0-85.342c-17.647 0-31.999 14.351-31.999 31.999s14.352 32 31.999 32c17.656 0 32-14.352 32-32s-14.344-31.999-32-31.999z"/>
+<circle cx="256" cy="240" r="10.664"/>
+</g>
+</svg>

BIN
assets/p1.jpeg


BIN
assets/p2.jpeg


BIN
assets/p3.jpeg


BIN
assets/profile.jpg


+ 6 - 0
assets/resume.svg

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg viewBox="0 0 150 230" xmlns="http://www.w3.org/2000/svg">
+  <polygon style="fill: rgb(205, 241, 231);" points="0 0 0 230 60 0 "/>
+  <polygon style="fill: rgb(156, 229, 208);" points="0 0 0 100 100 0 "/>
+  <polygon style="fill: rgb(205, 241, 231);" points="30 0 110 50 150 0 "/>
+</svg>

BIN
assets/song.ttf


+ 7 - 0
assets/swirls.svg

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg viewBox="-.965 153.8 328.07 69.047" xmlns="http://www.w3.org/2000/svg">
+ <g fill="#ffe435" fill-rule="evenodd">
+  <path d="m130.42 192.48c5.3472-7.5674 3.6727-18.679-0.89786-21.885-8.0631-5.8563-16.876 6.3663-12.837 18.527 4.0311 12.517 14.122 21.268 27.86 23.77 29.803 5.2656 88.754-27.178 126.14-37.106 27.773-7.375 44.738 3.707 53.892 15.981-18.815-13.327-35.963-8.692-53.611-5.4198-40.492 7.5078-82.376 39.384-126.76 34.37-20.721-3.0955-35.239-23.671-34.045-39.805 0.10605-1.4338 0.33619-2.8325 0.69714-4.1808 2.7276-9.5617 7.52-13.483 11.766-14.646 11.541-3.1619 22.973 17.872 7.7949 30.395z"/>
+  <path d="m120.25 199.32c-8.213-7.289-16.686-18.602-24.247-23.606-79.487-52.616-120.23 18.467-79.465 38.895 6.2895 3.152 19.323 5.044 28.661-7.507-11.426 8.713-24.104 5.722-29.342 1.216-13.942-11.992-9.053-29.009 7.3432-36.78 25.826-9.861 49.152 0.688 69.564 15.316 14.578 8.736 18.32 12.813 30.067 18.151-6.674 0.27699-3.168-8.494-9.519-12.61l6.937 6.925z"/>
+ </g>
+</svg>

File diff suppressed because it is too large
+ 3 - 0
assets/swirls1.svg


+ 9 - 0
assets/swirls2.svg

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg viewBox="27.318 120.08 598.65 158.05" xmlns="http://www.w3.org/2000/svg">
+<g transform="matrix(1 0 0 .64549 0 44.076)" fill="#ffe435" fill-rule="evenodd">
+<path transform="matrix(.000253 -.64549 1.5492 -.000456 -186.25 431)" d="m260.84 329.14c-92.581-21.534-94.129-32.561-72.333-40.61 30.779 12.081 78.822 25.61 149.69 40.445l0.526 0.012c-68.728-15.985-114.22-30.361-142.37-42.991 14.469-4.156 33.853-7.643 46.617-11.749 164.87-34.369 77.855-54.547 29.965-52.135-76.999-2.666-195.56 21.659-87.031 65.371-27.575 8.149-33.108 20.313 74.676 41.657l-1.148-0.461 1.411 0.461zm-64.882-43.509c-88.674-40.629 2.804-62.991 74.312-62.788-0.239 0.02-0.486 0.04-0.723 0.061 0.318-0.02 0.648-0.03 0.969-0.049 6.418 0.023 12.655 0.218 18.602 0.609-4.121-0.37-8.443-0.647-12.92-0.829 46.143-0.827 113.92 18.256-32.067 52.073l-48.173 10.923zm93.16-62.167c0.463 0.041 0.921 0.079 1.379 0.123h0.526c-0.628-0.046-1.271-0.082-1.905-0.123zm-19.571-0.56c-0.328 0.022-0.661 0.038-0.985 0.062h0.246c0.242-0.023 0.494-0.04 0.739-0.062z"/>
+<path transform="matrix(.000253 -.64549 1.5492 -.000456 107.36 459.86)" d="m387.38 139.3c103.07 22.456 104.8 33.954 80.537 42.347-34.268-12.599-87.758-26.707-166.66-42.177l-0.585-0.013c76.516 16.67 127.16 31.661 158.51 44.833-16.106 4.333-37.685 7.968-51.893 12.25-183.54 35.836-86.659 56.878-33.345 54.363 85.722 2.782 217.71-22.581 96.871-68.164 30.696-8.497 35.279-20.219-83.147-43.439h-0.292zm73.814 45.851c98.73 42.368-3.104 65.685-82.711 65.471 0.266-0.02 0.541-0.042 0.804-0.064-0.354 0.022-0.721 0.032-1.079 0.051-7.145-0.024-14.088-0.227-20.709-0.634 4.588 0.385 9.399 0.674 14.383 0.864-51.369 0.861-126.83-19.039 35.685-54.299 13.595-3.902 35.791-7.324 53.627-11.389zm-103.7 64.824c-0.515-0.044-1.026-0.083-1.535-0.129h-0.585c0.698 0.048 1.414 0.085 2.12 0.129zm21.788 0.583c0.366-0.022 0.736-0.039 1.097-0.064h-0.274c-0.269 0.024-0.551 0.041-0.823 0.064z"/>
+<path transform="matrix(.000253 -.64549 1.5492 -.000456 -123.91 314.59)" d="m157.93 292.58c106.21-38.229 108.11-57.839 83.263-72.171-35.368 21.464-90.512 45.489-171.79 71.82l-0.602 0.021c78.845-28.379 131.08-53.912 163.45-76.355-16.509-7.402-38.653-13.618-53.211-20.931-188.28-61.249-88.456-97.072-33.677-92.745 88.155-4.685 223.56 38.667 98.83 116.33 31.461 14.515 36.043 34.511-85.958 74.032h-0.301zm76.39-78.152c101.96-72.194-2.463-112.03-84.302-111.73 0.273 0.035 0.556 0.072 0.826 0.109-0.364-0.036-0.74-0.054-1.108-0.087-7.346 0.036-14.486 0.378-21.297 1.067 4.721-0.654 9.67-1.143 14.796-1.463-52.798-1.506-130.59 32.383 36.082 92.636 13.933 6.665 36.713 12.518 55.003 19.464zm-105.88-110.64c-0.53 0.074-1.055 0.141-1.579 0.219h-0.602c0.719-0.081 1.455-0.145 2.181-0.219zm22.405-0.98c0.376 0.039 0.756 0.068 1.127 0.11h-0.282c-0.276-0.041-0.565-0.071-0.845-0.11z"/>
+<path transform="matrix(.000253 -.64549 1.5492 -.000456 37.713 586.2)" d="m496.64 185.47c-106.21 38.229-108.11 57.839-83.263 72.171 35.368-21.464 90.512-45.489 171.8-71.82l0.601-0.021c-78.845 28.379-131.08 53.912-163.45 76.355 16.51 7.402 38.653 13.618 53.212 20.931 188.28 61.249 88.456 97.072 33.676 92.745-88.154 4.685-223.56-38.667-98.829-116.33-31.462-14.515-36.044-34.511 85.957-74.032h0.301zm-76.39 78.152c-101.96 72.194 2.463 112.03 84.303 111.73-0.274-0.035-0.556-0.072-0.827-0.109 0.364 0.036 0.741 0.054 1.109 0.087 7.345-0.036 14.486-0.378 21.296-1.067-4.721 0.654-9.67 1.143-14.796 1.463 52.799 1.506 130.59-32.383-36.082-92.636-13.933-6.665-36.712-12.518-55.003-19.464zm105.88 110.64c0.53-0.074 1.055-0.141 1.58-0.219h0.601c-0.718 0.081-1.455 0.145-2.181 0.219zm-22.405 0.98c-0.375-0.039-0.756-0.068-1.127-0.11h0.282c0.276 0.041 0.565 0.071 0.845 0.11z"/>
+</g>
+</svg>

+ 21 - 0
assets/swirls3.svg

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg viewBox="-27.602 -26.01 425.96 433.41" xmlns="http://www.w3.org/2000/svg">
+<g fill="#ffe435">
+<path transform="matrix(-.93883 .34438 -.34438 -.93883 141.84 178.65)" d="m35.707 130.45c-3.659-2.64-7.355-4.946-10.745-8.333-7.246-7.706-13.376-16.622-18.697-26.897-6.104-11.733-7.976-25.171-8.152-39.318 1.028-14.807 6.503-26.431 13.774-36.822 8.86-10.63 19.286-18.044 30.681-21.564 12.616-3.315 25.081-0.54 37.26 4.227 11.254 5.002 20.572 14.25 27.754 27.124 6.651 14.172 4.87 28.649 0.66 43.476-6.529 17.61-16.323 32.242-25.334 47.405-9.896 15.316-17.647 32.688-24.077 51.128-2.201 11.608-7.044 24.223-5.852 36.043 0.101 1-0.92 1.197-1.02 0.196-1.456-14.672-4.416-25.5 2.225-39.514 7.051-18.428 16.38-34.795 24.826-52 7.833-15.28 15.988-30.487 21.911-47.404 3.458-11.296 4.954-22.389 0.923-33.914-5.349-12.87-13.318-21.39-23.325-26.717-11.352-5.428-23.154-7.564-35.09-4.687-10.927 3.383-21.377 7.34-29.301 19.15-6.409 9.635-11.369 20.58-12.086 33.999-0.64 13.135 1.878 25.21 7.126 36.234 5.157 9.533 11.299 18.163 18.319 25.062 2.9 2.996 5.718 7.37 9.305 8.44 2.452 0.732 1.139 6.292-1.085 4.686z"/>
+<path transform="matrix(-.93883 .34438 -.34438 -.93883 119.83 474.07)" d="m17.097 128.99c3.583-2.52 7.447-3.692 11.354-4.791 8.131-1.808 16.336-1.259 24.415 0.647 7.898 3.01 13.666 10.197 18.99 18.423 4.689 8.882 6.048 17.81 3.105 28.067-3.912 11.008-11.825 17.081-19.002 23.448-8.855 7.348-17.968 14.049-27.006 20.944-10.407 7.149-19.728 16.518-28.791 26.482-10.39 11.945-18.759 26.558-25.871 42.366-7.055 14.862-10.597 31.666-12.71 49.021-2.006 13.043-0.11 25.415 3.135 37.66 0.252 0.948-0.715 1.44-0.966 0.492-3.288-12.451-4.893-25.318-4.604-38.637 1.561-18.131 6.165-34.791 13.226-50.239 7.484-15.88 15.334-31.568 25.689-44.17 8.875-10.735 18.444-20.367 28.588-28.675 8.81-6.999 17.754-13.788 26.022-21.99 5.749-5.724 11.435-11.775 14.861-20.597 1.63-6.585 2.084-12.873-0.603-19.171-3.396-8.417-8.877-14.17-15.249-17.901-7.308-4.541-14.907-6.051-22.805-3.519-3.679 1.238-7.372 2.687-10.766 5.065-1.476 1.033-2.487-1.888-1.012-2.925z"/>
+<path transform="matrix(-.93883 .34438 -.34438 -.93883 130 487.34)" d="m0.833 300.24c1.196-2.417 3.451-3.422 5.351-4.618 5.311-3.457 9.843-8.562 14.078-14.109 5.771-7.794 9.981-17.135 13.763-26.9 3.164-9.652 4.493-20.259 4.262-30.817-0.839-7.237-1.853-14.546-6.625-18.436-0.628-0.511-0.103-1.745 0.523-1.23 6.172 5.08 11.989 8.228 11.378 19.967-0.838 11.398-4.266 21.479-7.91 31.651-3.481 10.308-7.982 19.875-13.518 28.307-4.097 6.282-8.391 12.295-13.053 17.776-1.504 1.804-3.259 4.251-5.192 4.518-3.771 0.52-5.203-1.774-3.057-6.109z"/>
+<path transform="matrix(-.93883 .34438 -.34438 -.93883 137.86 193.25)" d="m56.132 155.23c0.635-3.32 2.923-5.701 4.524-8.368 3.998-7.372 6.32-15.714 8.23-24.463 1.384-10.176 1.27-20.395-0.818-30.327-1.702-8.29-5.057-15.61-9.546-21.502-4.8-6.012-10.501-6.777-16.663-5.738-4.246 0.903-7.783 3.486-11.386 6.533-0.622 0.525-1.157-0.696-0.536-1.221 3.703-3.123 7.302-6.569 11.35-8.8 7.524-3.4 14.874-4.149 21.552 2.842 5.589 7.241 9.192 15.937 10.674 26.452 0.83 11.103 0.342 22.047-2.541 32.599-1.807 9.077-3.929 18.257-7.181 26.536-1.27 3.272-2.451 7.326-4.982 8.652-2.336 1.224-3.317 0.154-2.677-3.195z"/>
+<path transform="matrix(-.93883 .34438 -.34438 -.93883 67.247 363.68)" d="m-35.77 230.76c1.777-2 2.854-4.804 4.032-7.47 3.048-7.088 6.679-13.621 10.417-20.021 5.366-9.286 11.343-17.809 17.501-26.073 6.194-6.804 10.988-14.995 15.729-23.627 4.34-9.341 9.704-13.337 17.398-9.554 4 2.826 5.347 8.1 7.349 13.252 0.537 0.6 1.075 1.2 1.613 1.8 0.567 0.633 0.61 0.878 0 1.429l-1.995 1.803c-3.99 3.34-8.669 3.103-12.833 0.091-1.358-4.289-4.819-2.977-7.923-2.15-7.444 3.812-13.235 9.853-18.623 17.983-6.128 8.224-12.077 16.704-17.416 25.945-3.711 6.352-7.315 12.835-10.34 19.869-1.16 2.625-2.538 5.175-3.104 8.189-0.373 1.985-2.952-0.173-1.805-1.466z"/>
+<path transform="matrix(-.93883 .34438 -.34438 -.93883 279.68 195.61)" d="m165.02 66.804c-1.712-0.206-3.438-0.496-5.166-0.664-5.346 0.072-10.555 2.275-15.616 4.474-10.085 5.703-19.023 14.378-27.706 23.349-11.805 12.584-22.111 27.553-29.942 45.121-5.798 12.466-0.34 26.272-2.488 38.906 0.813 1.665 1.625 3.329 2.438 4.994 0.408 0.836-0.448 1.637-0.854 0.799-0.842-1.741-1.685-3.482-2.527-5.222-10.137-10.78-4.137-28.284 2.362-40.433 8.347-17.284 18.382-32.739 30.396-45.311 8.758-9.046 17.776-17.788 27.948-23.534 5.073-3.289 10.252-6.137 15.773-7.606 1.916-0.434 3.954-0.89 5.82-0.08 2.549 1.107 2.223 5.527-0.438 5.207z"/>
+<path transform="matrix(-.93883 .34438 -.34438 -.93883 33.825 247.67)" d="m-38.016 157.73c1.783-2.673 3.655-5.263 5.628-7.68 5.39-6.093 10.037-13.142 14.855-20.074 4.935-8.984 11.245-16.382 17.193-24.065 7.443-8.929 14.057-11.264 23.605-8.407 1.346-1.405 2.693-2.809 4.039-4.214 0.582-0.607 1.201 0.536 0.619 1.143-1.364 1.42-2.727 2.841-4.09 4.262-2.289 13.649-6.966 20.418-16.407 25.323-7.494 3.38-14.664 7.729-22.075 11.396-6.159 4.265-12.207 8.653-17.014 15.65-1.666 2.588-3.3 5.113-4.102 8.459-0.579 2.418-3.497 0.076-2.251-1.793z"/>
+<path transform="matrix(-.93883 .34438 -.34438 -.93883 197.82 728.73)" d="m47.905 402.97c-1.562-1.164-3.086-2.496-4.659-3.673-3.598-3.491-7.544-6.22-11.515-8.783-3.93-2.765-8.066-4.938-11.82-8.162-3.172-2.582-5.281-6.066-6.147-11.001 0.585-7.465 6.772-8.208 11.079-9.304 5.818-1.844 11.759-1.688 17.671-1.244 4.121 0.259 7.894 1.423 10.986 5.34 3.07 5.856-0.768 9.517-4.678 10.729-0.693 0.383-1.387 0.766-2.081 1.149-0.676 0.374-1.056-0.957-0.379-1.328 0.659-0.361 1.319-0.722 1.978-1.083 1.335-1.944 2.502-3.598 2.463-6.299-2.04-3.891-4.938-5.877-8.416-6.754-5.751-1.187-11.597-0.723-17.292 0.875-3.206 1.459-6.481 2.811-8.017 7.267 0.491 3.723 1.891 6.435 4.171 8.789 3.569 3.374 7.348 6.262 11.29 8.712 3.918 2.745 7.862 5.476 11.987 7.578 1.762 1.152 3.691 1.976 5.196 3.733 1.669 1.949 0.104 4.891-1.817 3.459z"/>
+<path transform="matrix(-.31396 .94944 -.94944 -.31396 181.23 -8.6861)" d="m113.22 89.662c3.682-2.64 7.401-4.946 10.814-8.333 7.292-7.706 13.461-16.622 18.815-26.897 6.144-11.734 8.027-25.172 8.205-39.318-1.035-14.807-6.545-26.431-13.862-36.822-8.917-10.631-19.409-18.044-30.877-21.564-12.697-3.316-25.242-0.54-37.499 4.226-11.326 5.003-20.703 14.251-27.931 27.125-6.694 14.171-4.901 28.649-0.664 43.476 6.571 17.61 16.427 32.242 25.496 47.405 9.959 15.316 17.759 32.687 24.23 51.128 2.215 11.608 7.09 24.223 5.89 36.043-0.101 1 0.926 1.197 1.026 0.196 1.466-14.672 4.445-25.5-2.238-39.515-7.097-18.427-16.485-34.794-24.985-51.999-7.884-15.28-16.09-30.487-22.051-47.404-3.48-11.296-4.986-22.39-0.929-33.914 5.383-12.87 13.403-21.39 23.474-26.717 11.425-5.428 23.302-7.564 35.314-4.687 10.997 3.383 21.513 7.34 29.488 19.149 6.45 9.636 11.442 20.581 12.164 34 0.644 13.135-1.89 25.21-7.172 36.234-5.19 9.533-11.371 18.163-18.437 25.063-2.918 2.996-5.753 7.369-9.363 8.439-2.468 0.732-1.147 6.293 1.092 4.686z"/>
+<path transform="matrix(-.31396 .94944 -.94944 -.31396 331.01 -201.78)" d="m239.12-99.987c-3.606-2.521-7.495-3.692-11.427-4.791-8.183-1.808-16.441-1.26-24.571 0.647-7.948 3.009-13.754 10.197-19.111 18.422-4.719 8.883-6.087 17.81-3.126 28.067 3.938 11.008 11.901 17.081 19.124 23.448 8.911 7.348 18.083 14.049 27.178 20.945 10.474 7.148 19.855 16.517 28.976 26.481 10.456 11.945 18.879 26.559 26.035 42.366 7.101 14.863 10.666 31.666 12.792 49.021 2.018 13.044 0.111 25.416-3.155 37.66-0.253 0.948 0.72 1.441 0.972 0.493 3.309-12.451 4.924-25.319 4.634-38.638-1.571-18.131-6.205-34.791-13.311-50.239-7.532-15.88-15.432-31.568-25.853-44.17-8.932-10.735-18.561-20.367-28.771-28.675-8.866-6.999-17.867-13.788-26.188-21.99-5.786-5.724-11.508-11.775-14.956-20.597-1.641-6.585-2.097-12.873 0.607-19.171 3.418-8.417 8.933-14.17 15.347-17.901 7.354-4.541 15.001-6.051 22.95-3.518 3.703 1.237 7.419 2.686 10.835 5.064 1.485 1.034 2.502-1.887 1.019-2.924z"/>
+<path transform="matrix(-.31396 .94944 -.94944 -.31396 344.56 -204.23)" d="m267.09 67.394c-1.204-2.418-3.473-3.423-5.386-4.619-5.344-3.456-9.905-8.562-14.167-14.109-5.808-7.794-10.045-17.135-13.851-26.9-3.185-9.652-4.522-20.259-4.29-30.817 0.844-7.237 1.865-14.546 6.668-18.435 0.632-0.512 0.103-1.746-0.527-1.231-6.211 5.08-12.066 8.228-11.45 19.967 0.843 11.398 4.293 21.48 7.96 31.651 3.503 10.308 8.033 19.875 13.605 28.307 4.123 6.282 8.444 12.295 13.136 17.776 1.514 1.804 3.279 4.252 5.225 4.518 3.795 0.52 5.236-1.774 3.077-6.108z"/>
+<path transform="matrix(-.31396 .94944 -.94944 -.31396 186.87 -19.845)" d="m96.213 103.95c-0.639-3.321-2.941-5.701-4.553-8.369-4.023-7.371-6.361-15.713-8.283-24.462-1.392-10.176-1.278-20.395 0.823-30.327 1.713-8.29 5.09-15.61 9.608-21.503 4.83-6.012 10.568-6.776 16.769-5.738 4.273 0.904 7.833 3.487 11.459 6.533 0.626 0.526 1.165-0.695 0.539-1.22-3.726-3.123-7.348-6.569-11.422-8.8-7.572-3.4-14.97-4.15-21.69 2.842-5.625 7.241-9.251 15.937-10.743 26.451-0.835 11.103-0.343 22.048 2.558 32.6 1.818 9.077 3.954 18.257 7.227 26.536 1.278 3.271 2.466 7.326 5.014 8.652 2.35 1.223 3.338 0.154 2.694-3.195z"/>
+<path transform="matrix(-.31396 .94944 -.94944 -.31396 237.89 -163.54)" d="m215.36 47.125c-1.788-2.001-2.872-4.804-4.057-7.47-3.067-7.088-6.721-13.621-10.484-20.022-5.4-9.285-11.415-17.808-17.612-26.072-6.234-6.804-11.058-14.995-15.83-23.627-4.368-9.341-9.766-13.337-17.509-9.554-4.026 2.826-5.382 8.1-7.396 13.252l-1.623 1.8c-0.571 0.633-0.615 0.877-1e-3 1.428 0.67 0.601 1.339 1.202 2.008 1.803 4.016 3.341 8.725 3.103 12.915 0.092 1.367-4.289 4.85-2.977 7.973-2.15 7.493 3.812 13.321 9.853 18.743 17.983 6.167 8.224 12.154 16.704 17.527 25.945 3.735 6.351 7.362 12.834 10.406 19.869 1.167 2.625 2.555 5.175 3.124 8.188 0.375 1.986 2.971-0.172 1.816-1.465z"/>
+<path transform="matrix(-.31396 .94944 -.94944 -.31396 274.81 57.797)" d="m73.7 72.344c1.723-0.206 3.46-0.496 5.199-0.664 5.38 0.071 10.622 2.275 15.716 4.474 10.149 5.703 19.144 14.378 27.883 23.349 11.88 12.585 22.253 27.553 30.133 45.122 5.836 12.465 0.343 26.271 2.504 38.905-0.818 1.665-1.635 3.33-2.453 4.994-0.411 0.836 0.45 1.638 0.859 0.799 0.848-1.741 1.696-3.481 2.544-5.222 10.201-10.78 4.163-28.283-2.378-40.433-8.4-17.284-18.499-32.738-30.59-45.311-8.814-9.047-17.889-17.788-28.127-23.534-5.105-3.289-10.317-6.137-15.873-7.607-1.929-0.433-3.98-0.889-5.857-0.079-2.566 1.106-2.237 5.527 0.44 5.207z"/>
+<path transform="matrix(-.31396 .94944 -.94944 -.31396 152.06 -110.21)" d="m148.99 30.724c-1.794-2.673-3.679-5.263-5.664-7.68-5.425-6.093-10.101-13.142-14.95-20.074-4.967-8.984-11.317-16.382-17.302-24.065-7.491-8.929-14.148-11.264-23.756-8.407-1.356-1.405-2.711-2.809-4.066-4.214-0.586-0.607-1.208 0.536-0.622 1.142 1.372 1.421 2.744 2.842 4.116 4.263 2.304 13.649 7.01 20.418 16.511 25.323 7.542 3.38 14.759 7.729 22.217 11.396 6.198 4.265 12.285 8.653 17.122 15.65 1.677 2.588 3.321 5.113 4.128 8.459 0.583 2.418 3.52 0.076 2.266-1.793z"/>
+<path transform="matrix(-.31396 .94944 -.94944 -.31396 519.36 -314.16)" d="m359.38 51.593c1.571-1.164 3.106-2.495 4.688-3.672 3.621-3.492 7.592-6.22 11.589-8.784 3.955-2.765 8.117-4.938 11.896-8.161 3.192-2.583 5.314-6.067 6.186-11.002-0.59-7.465-6.816-8.207-11.15-9.304-5.855-1.844-11.834-1.688-17.784-1.243-4.147 0.258-7.945 1.422-11.056 5.34-3.09 5.856 0.773 9.516 4.707 10.728 0.699 0.383 1.397 0.767 2.095 1.15 0.68 0.373 1.063-0.958 0.381-1.328-0.663-0.362-1.327-0.723-1.99-1.084-1.344-1.944-2.518-3.597-2.479-6.299 2.053-3.891 4.969-5.876 8.47-6.753 5.787-1.187 11.671-0.724 17.402 0.874 3.226 1.46 6.522 2.812 8.068 7.267-0.493 3.724-1.903 6.435-4.197 8.789-3.592 3.375-7.395 6.262-11.363 8.712-3.942 2.745-7.912 5.477-12.063 7.579-1.773 1.152-3.714 1.976-5.229 3.733-1.68 1.948-0.105 4.891 1.829 3.458z"/>
+</g>
+</svg>

+ 147 - 0
lib/PDFRenderContainer.dart

@@ -0,0 +1,147 @@
+/*
+ * Copyright (C) 2017, David PHAM-VAN <dev.nfet.net@gmail.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import 'dart:async';
+import 'dart:io';
+
+import 'package:fis_lib_pdf/reportRender.dart';
+import 'package:flutter/foundation.dart';
+import 'package:flutter/material.dart';
+import 'package:open_file/open_file.dart';
+import 'package:path_provider/path_provider.dart';
+
+import 'package:pdf/pdf.dart';
+import 'package:pdf/widgets.dart' as pw;
+import 'package:printing/printing.dart';
+import 'package:fis_lib_pdf/ultils/data.dart';
+
+class PDFRenderContainer extends StatefulWidget {
+  const PDFRenderContainer({Key? key}) : super(key: key);
+
+  @override
+  PDFRenderContainerState createState() {
+    return PDFRenderContainerState();
+  }
+}
+
+class PDFRenderContainerState extends State<PDFRenderContainer>
+    with SingleTickerProviderStateMixin {
+  int _tab = 0;
+  TabController? _tabController;
+
+  PrintingInfo? printingInfo;
+  var _data = const CustomData();
+
+  @override
+  void initState() {
+    super.initState();
+    _init();
+  }
+
+  @override
+  void didChangeDependencies() {
+    super.didChangeDependencies();
+  }
+
+  Future<void> _init() async {
+    final info = await Printing.info();
+
+    _tabController = TabController(
+      vsync: this,
+      length: 1,
+      initialIndex: _tab,
+    );
+    _tabController!.addListener(() {
+      if (_tab != _tabController!.index) {
+        setState(() {
+          _tab = _tabController!.index;
+        });
+      }
+    });
+
+    setState(() {
+      printingInfo = info;
+    });
+  }
+
+  void _showPrintedToast(BuildContext context) {
+    ScaffoldMessenger.of(context).showSnackBar(
+      const SnackBar(
+        content: Text('Document printed successfully'),
+      ),
+    );
+  }
+
+  void _showSharedToast(BuildContext context) {
+    ScaffoldMessenger.of(context).showSnackBar(
+      const SnackBar(
+        content: Text('Document shared successfully'),
+      ),
+    );
+  }
+
+  double? _scale = 1060;
+  Future<void> _saveAsFile(
+    BuildContext context,
+    LayoutCallback build,
+    PdfPageFormat pageFormat,
+  ) async {
+    final bytes = await build(pageFormat);
+
+    final appDocDir = await getApplicationDocumentsDirectory();
+    final appDocPath = appDocDir.path;
+    final file = File(appDocPath + '/' + 'document.pdf');
+    print('Save as file ${file.path} ...');
+    await file.writeAsBytes(bytes);
+    await OpenFile.open(file.path);
+  }
+
+  @override
+  Widget build(BuildContext context) {
+    pw.RichText.debug = true;
+
+    if (_tabController == null) {
+      return const Center(child: CircularProgressIndicator());
+    }
+
+    final actions = <PdfPreviewAction>[
+      if (!kIsWeb)
+        PdfPreviewAction(
+          icon: const Icon(Icons.save),
+          onPressed: _saveAsFile,
+        )
+    ];
+
+    return Scaffold(
+      body: PdfPreview(
+        maxPageWidth: _scale,
+        onZoom: _onZoomInOrOut,
+        build: (format) => generateReport(format, _data),
+        actions: actions,
+        onPrinted: _showPrintedToast,
+        onShared: _showSharedToast,
+      ),
+    );
+  }
+
+  void _onZoomInOrOut(PdfZoomMode mode) {
+    final newScale =
+        mode == PdfZoomMode.PdfZoomIn ? _scale! + 100.0 : _scale! - 100.0;
+    setState(() {
+      _scale = newScale;
+    });
+  }
+}

+ 2 - 40
lib/main.dart

@@ -1,4 +1,5 @@
 import 'package:flutter/material.dart';
+import 'PDFRenderContainer.dart';
 
 void main() {
   runApp(const MyApp());
@@ -70,46 +71,7 @@ class _MyHomePageState extends State<MyHomePage> {
     // fast, so that you can just rebuild anything that needs updating rather
     // than having to individually change instances of widgets.
     return Scaffold(
-      appBar: AppBar(
-        // Here we take the value from the MyHomePage object that was created by
-        // the App.build method, and use it to set our appbar title.
-        title: Text(widget.title),
-      ),
-      body: Center(
-        // Center is a layout widget. It takes a single child and positions it
-        // in the middle of the parent.
-        child: Column(
-          // Column is also a layout widget. It takes a list of children and
-          // arranges them vertically. By default, it sizes itself to fit its
-          // children horizontally, and tries to be as tall as its parent.
-          //
-          // Invoke "debug painting" (press "p" in the console, choose the
-          // "Toggle Debug Paint" action from the Flutter Inspector in Android
-          // Studio, or the "Toggle Debug Paint" command in Visual Studio Code)
-          // to see the wireframe for each widget.
-          //
-          // Column has various properties to control how it sizes itself and
-          // how it positions its children. Here we use mainAxisAlignment to
-          // center the children vertically; the main axis here is the vertical
-          // axis because Columns are vertical (the cross axis would be
-          // horizontal).
-          mainAxisAlignment: MainAxisAlignment.center,
-          children: <Widget>[
-            const Text(
-              'You have pushed the button this many times:',
-            ),
-            Text(
-              '$_counter',
-              style: Theme.of(context).textTheme.headline4,
-            ),
-          ],
-        ),
-      ),
-      floatingActionButton: FloatingActionButton(
-        onPressed: _incrementCounter,
-        tooltip: 'Increment',
-        child: const Icon(Icons.add),
-      ), // This trailing comma makes auto-formatting nicer for build methods.
+      body: const Center(child: PDFRenderContainer()),
     );
   }
 }

File diff suppressed because it is too large
+ 448 - 0
lib/reportRender.dart


+ 12 - 0
lib/ultils/CNFont.dart

@@ -0,0 +1,12 @@
+import 'package:flutter/services.dart';
+import 'package:pdf/widgets.dart' as pw;
+
+class CNFont {
+  // ignore: public_member_api_docs
+  CNFont();
+  final Map<String, pw.Font> asd = Map<String, pw.Font>();
+  static Future<pw.Font> getSongFont() async {
+    return pw.Font.ttf(
+        await rootBundle.load('assets/fonts/DroidSansFallback.ttf'));
+  }
+}

+ 5 - 0
lib/ultils/data.dart

@@ -0,0 +1,5 @@
+class CustomData {
+  const CustomData({this.name = '[your name]'});
+
+  final String name;
+}

+ 202 - 0
pubspec.lock

@@ -1,6 +1,13 @@
 # Generated by pub
 # See https://dart.dev/tools/pub/glossary#lockfile
 packages:
+  archive:
+    dependency: transitive
+    description:
+      name: archive
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "3.3.0"
   async:
     dependency: transitive
     description:
@@ -8,6 +15,13 @@ packages:
       url: "https://pub.dartlang.org"
     source: hosted
     version: "2.8.2"
+  barcode:
+    dependency: transitive
+    description:
+      name: barcode
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "2.2.1"
   boolean_selector:
     dependency: transitive
     description:
@@ -43,6 +57,13 @@ packages:
       url: "https://pub.dartlang.org"
     source: hosted
     version: "1.15.0"
+  crypto:
+    dependency: transitive
+    description:
+      name: crypto
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "3.0.2"
   cupertino_icons:
     dependency: "direct main"
     description:
@@ -57,6 +78,20 @@ packages:
       url: "https://pub.dartlang.org"
     source: hosted
     version: "1.2.0"
+  ffi:
+    dependency: transitive
+    description:
+      name: ffi
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.2.1"
+  file:
+    dependency: transitive
+    description:
+      name: file
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "6.1.2"
   flutter:
     dependency: "direct main"
     description: flutter
@@ -74,6 +109,39 @@ packages:
     description: flutter
     source: sdk
     version: "0.0.0"
+  flutter_web_plugins:
+    dependency: transitive
+    description: flutter
+    source: sdk
+    version: "0.0.0"
+  http:
+    dependency: transitive
+    description:
+      name: http
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.13.4"
+  http_parser:
+    dependency: transitive
+    description:
+      name: http_parser
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "4.0.1"
+  image:
+    dependency: transitive
+    description:
+      name: image
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "3.1.3"
+  js:
+    dependency: transitive
+    description:
+      name: js
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.6.3"
   lints:
     dependency: transitive
     description:
@@ -102,6 +170,13 @@ packages:
       url: "https://pub.dartlang.org"
     source: hosted
     version: "1.7.0"
+  open_file:
+    dependency: "direct main"
+    description:
+      name: open_file
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "3.2.1"
   path:
     dependency: transitive
     description:
@@ -109,6 +184,111 @@ packages:
       url: "https://pub.dartlang.org"
     source: hosted
     version: "1.8.0"
+  path_parsing:
+    dependency: transitive
+    description:
+      name: path_parsing
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.0.0"
+  path_provider:
+    dependency: "direct main"
+    description:
+      name: path_provider
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "2.0.11"
+  path_provider_android:
+    dependency: transitive
+    description:
+      name: path_provider_android
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "2.0.14"
+  path_provider_ios:
+    dependency: transitive
+    description:
+      name: path_provider_ios
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "2.0.9"
+  path_provider_linux:
+    dependency: transitive
+    description:
+      name: path_provider_linux
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "2.1.7"
+  path_provider_macos:
+    dependency: transitive
+    description:
+      name: path_provider_macos
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "2.0.6"
+  path_provider_platform_interface:
+    dependency: transitive
+    description:
+      name: path_provider_platform_interface
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "2.0.4"
+  path_provider_windows:
+    dependency: transitive
+    description:
+      name: path_provider_windows
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "2.0.7"
+  pdf:
+    dependency: "direct main"
+    description:
+      name: pdf
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "3.8.1"
+  petitparser:
+    dependency: transitive
+    description:
+      name: petitparser
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "4.4.0"
+  platform:
+    dependency: transitive
+    description:
+      name: platform
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "3.1.0"
+  plugin_platform_interface:
+    dependency: transitive
+    description:
+      name: plugin_platform_interface
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "2.1.2"
+  printing:
+    dependency: "direct main"
+    description:
+      name: printing
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "5.9.1"
+  process:
+    dependency: transitive
+    description:
+      name: process
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "4.2.4"
+  qr:
+    dependency: transitive
+    description:
+      name: qr
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "3.0.1"
   sky_engine:
     dependency: transitive
     description: flutter
@@ -170,5 +350,27 @@ packages:
       url: "https://pub.dartlang.org"
     source: hosted
     version: "2.1.1"
+  win32:
+    dependency: transitive
+    description:
+      name: win32
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "2.5.2"
+  xdg_directories:
+    dependency: transitive
+    description:
+      name: xdg_directories
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.2.0+1"
+  xml:
+    dependency: transitive
+    description:
+      name: xml
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "5.3.1"
 sdks:
   dart: ">=2.16.2 <3.0.0"
+  flutter: ">=2.8.1"

+ 11 - 33
pubspec.yaml

@@ -34,6 +34,10 @@ dependencies:
   # The following adds the Cupertino Icons font to your application.
   # Use with the CupertinoIcons class for iOS style icons.
   cupertino_icons: ^1.0.2
+  pdf: ^3.8.1
+  printing: ^5.9.1
+  open_file: ^3.2.1
+  path_provider: ^2.0.11
 
 dev_dependencies:
   flutter_test:
@@ -51,39 +55,13 @@ dev_dependencies:
 
 # The following section is specific to Flutter.
 flutter:
-
-  # The following line ensures that the Material Icons font is
-  # included with your application, so that you can use the icons in
-  # the material Icons class.
   uses-material-design: true
-
-  # To add assets to your application, add an assets section, like this:
-  # assets:
-  #   - images/a_dot_burr.jpeg
-  #   - images/a_dot_ham.jpeg
-
-  # An image asset can refer to one or more resolution-specific "variants", see
-  # https://flutter.dev/assets-and-images/#resolution-aware.
-
-  # For details regarding adding assets from package dependencies, see
-  # https://flutter.dev/assets-and-images/#from-packages
-
-  # To add custom fonts to your application, add a fonts section here,
-  # in this "flutter" section. Each entry in this list should have a
-  # "family" key with the font family name, and a "fonts" key with a
-  # list giving the asset and other descriptors for the font. For
-  # example:
+  assets:
+    - assets/
+    - assets/fonts/
+  #   - assets/fonts
   # fonts:
-  #   - family: Schyler
-  #     fonts:
-  #       - asset: fonts/Schyler-Regular.ttf
-  #       - asset: fonts/Schyler-Italic.ttf
-  #         style: italic
-  #   - family: Trajan Pro
+  #   #fix issue 70101 - https://github.com/flutter/flutter/issues/70101
+  #   - family: Song
   #     fonts:
-  #       - asset: fonts/TrajanPro.ttf
-  #       - asset: fonts/TrajanPro_Bold.ttf
-  #         weight: 700
-  #
-  # For details regarding fonts from package dependencies,
-  # see https://flutter.dev/custom-fonts/#from-packages
+  #       - asset: assets/fonts/song.ttf

+ 3 - 0
windows/flutter/generated_plugin_registrant.cc

@@ -6,6 +6,9 @@
 
 #include "generated_plugin_registrant.h"
 
+#include <printing/printing_plugin.h>
 
 void RegisterPlugins(flutter::PluginRegistry* registry) {
+  PrintingPluginRegisterWithRegistrar(
+      registry->GetRegistrarForPlugin("PrintingPlugin"));
 }

+ 1 - 0
windows/flutter/generated_plugins.cmake

@@ -3,6 +3,7 @@
 #
 
 list(APPEND FLUTTER_PLUGIN_LIST
+  printing
 )
 
 set(PLUGIN_BUNDLED_LIBRARIES)

Some files were not shown because too many files changed in this diff