MozillaItalia / firefox-vademecum

A little italian 2 pages manual for users that want to discover Firefox and the community
6 stars 8 forks source link

css in cm and automatic pdf generation #112

Closed mone27 closed 6 years ago

mone27 commented 6 years ago

Ho convertito le dimensioni di stile.css da px a cm per fare in modo che entri perfettamente in un A4 e che si possa usare uno script per generare il pdf senza dover ritagliare e zoomare a mano. Ho anche fatto uno script che genera il pdf in automatico. Appena ho tempo provo a fare un file travis per CI e build del pdf dopo il commit

Sav22999 commented 6 years ago

Perfetto. Verifico il file css e accetto, in caso tutto sia corretto :)

Mte90 commented 6 years ago

Tutto in cm, perfetto per la stampa :-D

Mte90 commented 6 years ago

Rimane solo da aggiornare il readme per documentare come usare lo script

Sav22999 commented 6 years ago

Esatto. Li aveva trasformati in pt e gli ho consigliato di farlo in cm che sono le dimensioni effettive dell'a4. ha anche fatto lo script per automatizzare il tutto... ben fatto!

Sav22999 commented 6 years ago

@Mte90 fai tu la revisione del css?

Mte90 commented 6 years ago

Ci provo a farla ma se la fai anche tu è meglio così ci prendi la mano :-D

Sav22999 commented 6 years ago

Si, stavo già facendo xD Ho visto che inserivi commenti per lo script e ho pensato volessi fare tutto tu :) Facciamola entrambi allora xD

Sav22999 commented 6 years ago

Una volta finito tutto il vademecum e che viene approvato anche il testo è necessario ottimizzare il css ovviamente.

mone27 commented 6 years ago

ho sistemato i due problemi che @Mte90 aveva trovato

Sav22999 commented 6 years ago

Mi chiedevo, inoltre, è proprio necessario inserire nel NOME del pdf generato la data? Non sarebbe meglio che, ad ogni nuova generazione, venga "aggiornato" (quindi sostituito) lo stesso file? Altrimenti si avrebbero moltissimi PDF anche per una minima modifica...

mone27 commented 6 years ago

Lo script potrebbe eliminare i pdf, avevo messo la data perché essendo una build automatica temevo che potesse cambiare il file senza che ce ne accorgevamo

Sav22999 commented 6 years ago

Automatica? Sempre che qualcuno deve eseguirla o no?

Mte90 commented 6 years ago

Lo script mi sembra a posto, per la questione data la rimuoverei anche perché se poi il vademecum lo committiamo abbiamo lo storico già qui riguardo la data quindi non è necessario. Per il resto devo provare come ho tempo il codice css a meno che ci siano delle migliorie che si possano fare ma le possiamo fare dopo con un ticket a parte

mone27 commented 6 years ago

Okay non ci avevo pensato che ci stava comunque git per mantenere le diverse versioni

Sav22999 commented 6 years ago

Esatto, c'è la "History" per questo motivo ?? @Mte90 quando puoi leggi il post pubblicato sul forum, per favore


From: mone27 notifications@github.com Sent: Thursday, May 17, 2018 10:37:07 AM To: MozillaItalia/firefox-vademecum Cc: Sav22999; Comment Subject: Re: [MozillaItalia/firefox-vademecum] css in cm and automatic pdf generation (#112)

Okay non ci avevo pensato che ci stava comunque git per mantenere le diverse versioni

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/MozillaItalia/firefox-vademecum/pull/112#issuecomment-389789902, or mute the threadhttps://github.com/notifications/unsubscribe-auth/Ae1mEgEJcOyd6ZFsDfBc2vLXUhdHUKojks5tzTazgaJpZM4T_-g1.

mone27 commented 6 years ago

Ci sono problemi per fare il merge della pr?

Mte90 commented 6 years ago

Preferisco che @Sav22999 dia la sua conferma visto che lui consoce meglio di me il css visto che lo ha fatto lui.

Sav22999 commented 6 years ago

In pomeriggio verifico :+1: se non vado errato dobbiamo accertarci (anche) che lo script funzioni correttamente. Avete controllato?


From: Daniele Scasciafratte notifications@github.com Sent: Saturday, May 26, 2018 12:30:40 PM To: MozillaItalia/firefox-vademecum Cc: Sav22999; Mention Subject: Re: [MozillaItalia/firefox-vademecum] css in cm and automatic pdf generation (#112)

Preferisco che @Sav22999https://github.com/Sav22999 dia la sua conferma visto che lui consoce meglio di me il css visto che lo ha fatto lui.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/MozillaItalia/firefox-vademecum/pull/112#issuecomment-392252512, or mute the threadhttps://github.com/notifications/unsubscribe-auth/Ae1mEoYpCGKWnGFy35GnDxzMVc4aR667ks5t2S7QgaJpZM4T_-g1.

Mte90 commented 6 years ago
./scripts/genera_pdf.sh: riga 9: read: "name=Vademecum": non è un identificatore valido
Version number (format: VV.VV): 
1.2
Version type {VG|VT}: 
VG
html-pdf not installed. installing...

> phantomjs-prebuilt@2.1.16 install /tmp/firefox-vademecum/node_modules/phantomjs-prebuilt
> node install.js

PhantomJS not found on PATH
Downloading https://github.com/Medium/phantomjs/releases/download/v2.1.1/phantomjs-2.1.1-linux-x86_64.tar.bz2
Saving to /tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2
Receiving...
  [========================================] 100%
Received 22866K total.
Extracting tar contents (via spawned process)
Removing /tmp/firefox-vademecum/node_modules/phantomjs-prebuilt/lib/phantom
Copying extracted folder /tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2-extract-1527339887780/phantomjs-2.1.1-linux-x86_64 -> /tmp/firefox-vademecum/node_modules/phantomjs-prebuilt/lib/phantom
Writing location.js file
Done. Phantomjs binary available at /tmp/firefox-vademecum/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs
npm WARN saveError ENOENT: no such file or directory, open '/tmp/firefox-vademecum/package.json'
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open '/tmp/firefox-vademecum/package.json'
npm WARN firefox-vademecum No description
npm WARN firefox-vademecum No repository field.
npm WARN firefox-vademecum No README data
npm WARN firefox-vademecum No license field.

+ html-pdf@2.2.0
added 79 packages from 73 contributors and audited 98 packages in 20.055s
found 0 vulnerabilities

./scripts/genera_pdf.sh: riga 23: html-pdf: comando non trovato
./scripts/genera_pdf.sh: riga 24: html-pdf: comando non trovato
pdf files generated. merging in a single file...
./scripts/genera_pdf.sh: riga 35: cd: ../volantino: File o directory non esistente
Error: Unable to find file.
Error: Failed to open PDF file: 
   volantino_fronte.pdf
Error: Unable to find file.
Error: Failed to open PDF file: 
   volantino_retro.pdf
Errors encountered.  No output created.
Done.  Input errors, so no output created.

Lo script ha bisogno che html-pdf sia installato globalmente

mone27 commented 6 years ago

@Mte90 aggiorno lo script per fare exit nel caso qualche comando di installazione non va. Per quello è necessario l'opzione -g che però richiede il sudo (se possibile lo eviterei), altrimenti si aggiunge al path a mano la dir con l'installazione di npm.

Mte90 commented 6 years ago

la mia versione in lavorazione:

#!/usr/bin/env bash
# author: Simone Massaro (mone27)
# date: 15/05/18
# last update: 16/15/18 || by: @Sav22999
# this scripts takes html file converts to single pdf pages and then merges the pages
# and try to install all dependencies (tested on ubuntu)
# now paths are hardcoded for firefox-vademecum repository
# UPDATE, if it's necessary, the "name" variable

read name="Vademecum"
echo "Version number (format: VV.VV): "
read version
echo "Version type {VG|VT}: "
read typeVersion

if ! [ -x "$(command -v wkhtmltopdf)" ]; then
  sudo apt install wkhtmltopdf
fi
wkhtmltopdf ../html/volantino_fronte.html ../volantino/volantino_fronte.pdf
wkhtmltopdf ../html/volantino_retro.html ../volantino/volantino_retro.pdf
echo "pdf files generated. merging in a single file..."

if ! [ -x "$(command -v pdftk)" ]; then
  if ! [ -x "$(command -v apt)" ]; then
    echo "The script does not support automatic installation of pdftk on your platform."\
    "Please install pdftk (https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/) then try again"
    exit 1
  fi
  sudo apt install pdftk
fi

pdftk ../volantino/volantino_fronte.pdf ../volantino/volantino_retro.pdf cat output ../volantino/"${name}_$version_$typeVersion.pdf"

Io direi di togliere nodejs così roba in meno da installare ed usare wkhtmltopdf che è disponibile in tutti i repo delle distro.

Togliere anche il sistema a prompt e mettere uno con dei parametri così è più veloce per i test e anche se un domani abbiamo un sistema di build.

Mte90 commented 6 years ago

Inoltre lo script così è necessario che sia lanciato da dentro la cartelal scripts cosa scomoda e che non mi faceva generare niente. Con questo script se togliamo la parte nodejs il processo dura 4 secondi, dobbiamo anche vedere il nome del file che al momento mi viene: _VG.pdf.

Mte90 commented 6 years ago

Inclduerei inoltre anche wkhtmltoimage così abbiamo anche la versione png aggiornata. Se poi togli i credits dallo script che li abbiamo già dentro il vademecum così non ci dobbiamo preoccupare di tenere aggiornato.

Per il momento toglierei anche la questione VG/VT perché io farei che cerca i file html e di quelli genera il pdf/png indefferettemente dal fatto tecnico/generale così abbiamo tutto aggiornato.

Sav22999 commented 6 years ago

Inoltre vorrei aggiungere che è necessario generare anche le immagini PNG (fronte e retro). Direi, tuttavia, di approvare questo script, se funziona, e creare una nuova pr dedicata alla rinomina del file pdf generato e alla generazione delle immagini (dal pdf, direi... oppure generando da HTML->PDF. Personalmente preferirei la prima perchè il PDF è statico, mentre l'HTML può essere interpretato in altro modo, in base alla libreria/servizio utilizzato)

Mte90 commented 6 years ago

Per me per essere approvata richiede che lo script sia adattato con tutte le mie richieste, se non vanno bene discutiamone prima di approvare.

Sav22999 commented 6 years ago

Si, va bene. Era per non prolungare maggiormente la pr. A me sta bene anche discutere direttamente qui :)

mone27 commented 6 years ago

@Mte90 toglierei volentieri nodejs ma wkhtmltopdfnon sono riuscito a configurarlo bene, mi da l'output con i margini. Il vantaggio di wkhtmltopdf sarebbe che si integra anche con pandoc, se lo volessimo usare in un secondo momento. Provo a vedere se ci sta qualche opzione di wkhtmltopdf.

mone27 commented 6 years ago

trovata la soluzione per wkhtmltopdf chiedo scusa per essere stato pigro e non aver letto la documentazione prima. Aggiorno subito lo script.

Sav22999 commented 6 years ago

@Mte90 per le versioni va bene, ma non diventerebbe troppo pesante? Cioè, se tipo dovessimo fare un'altra versione, chiamiamola VERSIONE FUTURA (VF) dovremo aggiungere nel codice anche VF... e così via. Mi sembra una roba inutile... quando si può automatizzare solamente per versione. Aspetto riscontro :)

Sav22999 commented 6 years ago

Io purtroppo non riesco ad installare pdftk

Sav22999 commented 6 years ago

@Mte90 per me si può chiudere questo issue (non hai risposto alla questione circa la VG-VT)

mone27 commented 6 years ago

per le versioni potremmo provare a usare i tag di git

Sav22999 commented 6 years ago

Quale sarebbe il tag? #112 ad esempio?

mone27 commented 6 years ago

No i tag sono un sistema di git che serve per dare un nome a un commit. #112 è il counter di github per issue/pull request che serve per riferirsi a un issue in maniera univoca nei commenti. Con i tag id git puoi dire questo commit è la versione 2.0, in questo modo è più semplice in futuro accerci. Poi non sono un esperto di git, per maggiori info https://git-scm.com/book/en/v2/Git-Basics-Tagging

Mte90 commented 6 years ago

Se sistemate questi ultimi due punti, per me è pronta per essere approvata.

Per la questione VG/VF meglio che venga generata da un bot tutto quanto così lo scipt è ancora più veloce da usare.

Sav22999 commented 6 years ago

Va bene, quindi facciamo generare ogni volta entrambi i file (VG e VT) corretto?

Mte90 commented 6 years ago

Si esatto

Sav22999 commented 6 years ago

Ho aggiornato lo script rimuovendo la scelta di VG/VT. Ho aggiunto anche i dettagli di ciò che è stato convertito a fine script. Ditemi se va bene, altrimenti lo rimuovo tranquillamente.

Sav22999 commented 6 years ago

Ok. Dopo tutte le verifiche, io approvo. @Mte90 dammi anche il tuo consenso e il tuo @mone27 così accettiamo questa pr :) (@Mte90 puoi accettarla direttamente tu, ovviamente xD)

mone27 commented 6 years ago

Per me va bene.