[Bash] Browser testuale: stampa pagina web su file (PDF)

Linguaggi di programmazione: php, perl, python, C, bash, ecc.

Re: [Bash] Browser testuale: stampa pagina web su file (PDF)

Messaggioda UbuNuovo » martedì 13 marzo 2018, 17:02

Si è ottimo!
Ieri mi sono dimenticato di postare le modifiche allo script, per l'ordinamento si deve mettere lo zero ai nume da 1 a 9.
Codice: Seleziona tutto
#!/bin/bash

mainURL="http://www.deeplearningbook.org/"
i=1
while read l;do
   nome=$(basename "$l" .html)
   i_zero=$(printf "%02d\n" $i)
   chromium-browser --headless --disable-gpu --print-to-pdf="${i_zero}_${nome}.pdf" "$l" 2>/dev/null
   echo "Elaboro ${i}_${nome}"
   ((i++))
done < <(wget -qO- $mainURL | sed -n "s|.*href=\"\(contents.*\)\".*|$mainURL\1|p")

pdfunite *.pdf Deep_Learning.pdf
Nel caso in cui sia il primo a rispondere ad una richiesta di aiuto...chiunque abbia una soluzione migliore o anche solo diversa dalla mia è incoraggiato ad intervenire liberamente senza inviarmi alcun messaggio privato. In programmazione è basilare sapere che si può ottenere il medesimo risultato utilizzando metodi diversi.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 3179
Iscrizione: dicembre 2009
Desktop: Mate
Distribuzione: Ubuntu 14.04
Sesso: Maschile

Re: [Bash] Browser testuale: stampa pagina web su file (PDF)

Messaggioda vaeVictis » martedì 13 marzo 2018, 18:57

A parte che la discussione era nata per capire come stampare su PDF usando un browser testuale, non ti preoccupare di produrre lo script completo.
Apprezzo la dedizione, e ti ringrazio, ma qualcosa in bash la so fare :D
Inoltre per risolvere il problema dell'ordinamento, che avevo già presente ma su cui non ti avevo detto nulla, mi ero regolato diversamente.
Ti dico solo una parola: array :)
Proprio perché se devo riciclare in futuro lo script non so quanti sono i PDF da cucire... E se superano i 100?

Appena ho modo posto la mia versione.

Grazie ancora.
Pirates arrrrrrrrrrr awesome!!!
«I fear not the man who has practiced 10000 kicks once, but I fear the man who has practiced one kick 10000 times.»
Avatar utente
vaeVictis
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 4093
Iscrizione: luglio 2012
Desktop: Unity
Distribuzione: Ubuntu 16.04 64bit

Re: [Bash] Browser testuale: stampa pagina web su file (PDF)

Messaggioda UbuNuovo » martedì 13 marzo 2018, 19:08

Lo so che conosci bene Bash credevo che volessi fare lo script in python. :asd:,
Io non ammattirei tanto per gli zero, basta aumentare gli zero con printf tanto i pdf singoli servono solo temporaneamente, anzi andrebbero cancellati una volta riuniti.
Se metti 'printf "%05d\n"' o anche più vai sul sicuro. :D
Nel caso in cui sia il primo a rispondere ad una richiesta di aiuto...chiunque abbia una soluzione migliore o anche solo diversa dalla mia è incoraggiato ad intervenire liberamente senza inviarmi alcun messaggio privato. In programmazione è basilare sapere che si può ottenere il medesimo risultato utilizzando metodi diversi.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 3179
Iscrizione: dicembre 2009
Desktop: Mate
Distribuzione: Ubuntu 14.04
Sesso: Maschile

Re: [Bash] Browser testuale: stampa pagina web su file (PDF)

Messaggioda vaeVictis » martedì 13 marzo 2018, 19:12

Infatti uso Larry l'array proprio per non pensare minimamente ai numeri.
Poi te lo posto.
Pirates arrrrrrrrrrr awesome!!!
«I fear not the man who has practiced 10000 kicks once, but I fear the man who has practiced one kick 10000 times.»
Avatar utente
vaeVictis
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 4093
Iscrizione: luglio 2012
Desktop: Unity
Distribuzione: Ubuntu 16.04 64bit

Re: [Bash] Browser testuale: stampa pagina web su file (PDF)

Messaggioda UbuNuovo » martedì 13 marzo 2018, 19:20

Ok, ho aggiunto la verifica sul browser, cambio del comando se Chrome o Chromium o avvertimento e uscita se mancano; poi verifica sul file pdf, se esiste già, passa al ciclo successivo, è utile nel caso uno debba interrompere lo scaricamento per riprenderlo successivamente.
Aspetto la tua versione.
Nel caso in cui sia il primo a rispondere ad una richiesta di aiuto...chiunque abbia una soluzione migliore o anche solo diversa dalla mia è incoraggiato ad intervenire liberamente senza inviarmi alcun messaggio privato. In programmazione è basilare sapere che si può ottenere il medesimo risultato utilizzando metodi diversi.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 3179
Iscrizione: dicembre 2009
Desktop: Mate
Distribuzione: Ubuntu 14.04
Sesso: Maschile

Re: [Bash] Browser testuale: stampa pagina web su file (PDF)

Messaggioda vaeVictis » martedì 13 marzo 2018, 19:47

Vabbè, ho capito.
Quando il tutto sarà risolto, cambio il titolo della discussione e il primo messaggio... ché tu vai come un treno e hai fatto molto più del richiesto.
La verifica sull'esistenza del PDF è una buona idea, ma mi mette un po' in crisi, perché io avevo previsto di appoggiarmi a una directory temporanea nella home dell'utente e non avevo previsto che si potesse interrompere il processo.
Ma mi hai messo la pulce nell'orecchio :D
Devo mettere dei parametri per lo script, quindi... e io che volevo finirlo in un paio di giorni :D

Ma la versione con il controllo sul PDF dove sta?
Pirates arrrrrrrrrrr awesome!!!
«I fear not the man who has practiced 10000 kicks once, but I fear the man who has practiced one kick 10000 times.»
Avatar utente
vaeVictis
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 4093
Iscrizione: luglio 2012
Desktop: Unity
Distribuzione: Ubuntu 16.04 64bit

Re: [Bash] Browser testuale: stampa pagina web su file (PDF)

Messaggioda UbuNuovo » martedì 13 marzo 2018, 19:55

Aspetta, se trovi un altro modo per convertire...

Intanto come workaround si va avanti con Chrome Chromium :)

Ho provato ad interromperlo varie volte e sembra che non si verifichino pdf formati a metà, speriamo...
Codice: Seleziona tutto
#!/bin/bash

if which chrome &>/dev/null
      then cmd='chrome'
   elif which chromium-browser &>/dev/null
      then cmd='chromium-browser'
   else
      echo "Attenzione! È necessario installare Chrome o Chromium. Esco."
      exit
fi

mainURL="http://www.deeplearningbook.org/"
i=1
while read l;do
   nome=$(basename "$l" .html)
   i_zero=$(printf "%02d\n" $i)
   if [ -e "${i_zero}_${nome}.pdf" ]; then ((i++));continue;fi
   $cmd --headless --disable-gpu --print-to-pdf="${i_zero}_${nome}.pdf" "$l" 2>/dev/null
   echo "Elaboro ${i}_${nome}"
   ((i++))
done < <(wget -qO- $mainURL | sed -n "s|.*href=\"\(contents.*\)\".*|$mainURL\1|p")

pdfunite *.pdf Deep_Learning.pdf

exit


edit: Il problema più grosso, per rendere lo script flessibile è l'estrazione degli url, si deve sapere a priori la struttura e non vedo un modo di adattare lo script caso per caso senza cambiare il codice a mano.
Nel caso in cui sia il primo a rispondere ad una richiesta di aiuto...chiunque abbia una soluzione migliore o anche solo diversa dalla mia è incoraggiato ad intervenire liberamente senza inviarmi alcun messaggio privato. In programmazione è basilare sapere che si può ottenere il medesimo risultato utilizzando metodi diversi.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 3179
Iscrizione: dicembre 2009
Desktop: Mate
Distribuzione: Ubuntu 14.04
Sesso: Maschile

Re: [Bash] Browser testuale: stampa pagina web su file (PDF)

Messaggioda vaeVictis » martedì 13 marzo 2018, 20:22

Allora, al posto del which è meglio usare
Codice: Seleziona tutto
command -v <the_command>

che è posix compatibile.
Inoltre nella condizione dell'if puoi mettere direttamente l'assegnazione del comando alla variabile.
E conviene dare il path completo per il comando (cosa che fai con command)

Invece di avvertire con gli echo, conviene predisporre una funzione usage e richiamare quella.

Per adattare il codice, si può introdurre una variabile da dare allo script... poi ti faccio vedere.

Appena ho fatto ti mando il codice qui.
Che comunque va ben oltre gli scopi della discussione :)
Ero partito pe' anda' a Frascati... m'hai fatto sali' sullo SpaceX pe' Marte :lol:
Pirates arrrrrrrrrrr awesome!!!
«I fear not the man who has practiced 10000 kicks once, but I fear the man who has practiced one kick 10000 times.»
Avatar utente
vaeVictis
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 4093
Iscrizione: luglio 2012
Desktop: Unity
Distribuzione: Ubuntu 16.04 64bit

Re: [Bash] Browser testuale: stampa pagina web su file (PDF)

Messaggioda UbuNuovo » martedì 13 marzo 2018, 21:55

Lo script è sicuramente migliorabile è solo una base per provare le funzionalità.
Ho usato which al volo proprio perché volevo inserire il path in una variabile, l'ho scritto mentre ti rispondevo. :)

edit:
Ho smesso di occuparmi dello script per trovare un'alternativa per la conversione.
I browser testuali links, links2, w3m non vanno bene, chi non interpreta javascript chi ha altri problemi, in ogni caso non sono fatti per impaginare in modo corretto le immagini.

Ho impostato come stampante predefinita la stampante virtuale pdf di CUPS, per provare:
Codice: Seleziona tutto
soffice -p http://www.deeplearningbook.org/contents/TOC.html

funge ma: è lento, non rispetta i colori e non stampa le immagini.

Codice: Seleziona tutto
html2ps http://www.deeplearningbook.org/contents/TOC.html | lpr

non funge, stampa il codice arruffato.

Codice: Seleziona tutto
unoconv -f pdf http://www.deeplearningbook.org/contents/TOC.html

le pagine vanno prima scaricate, funge bene con le pagine senza formule matematiche, con le formule fa casino.

Rimane da provare un plugin per Firefox; va usata una versione modificata (da Fabrixx) viewtopic.php?f=33&t=607056.
Nel caso in cui sia il primo a rispondere ad una richiesta di aiuto...chiunque abbia una soluzione migliore o anche solo diversa dalla mia è incoraggiato ad intervenire liberamente senza inviarmi alcun messaggio privato. In programmazione è basilare sapere che si può ottenere il medesimo risultato utilizzando metodi diversi.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 3179
Iscrizione: dicembre 2009
Desktop: Mate
Distribuzione: Ubuntu 14.04
Sesso: Maschile

Re: [Bash] Browser testuale: stampa pagina web su file (PDF)

Messaggioda vaeVictis » mercoledì 14 marzo 2018, 13:52

Lo script è pronto.
Manca solamente una cosa.
Avevi fatto riferimento in un messaggio all'interruzione dell'esecuzione dello script.
Che intendevi? A che segnali facevi riferimento nello specifico?

p.s.:
pdfunite corrompe il documento, perdendone varie parti.
Ti dico solo che il documento finale "cucito" con pdfunite pesa 15.9 MB mentre quello "cucito" con pdftk pesa 562 MB.
Meglio usare pdftk.
Pirates arrrrrrrrrrr awesome!!!
«I fear not the man who has practiced 10000 kicks once, but I fear the man who has practiced one kick 10000 times.»
Avatar utente
vaeVictis
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 4093
Iscrizione: luglio 2012
Desktop: Unity
Distribuzione: Ubuntu 16.04 64bit

Re: [Bash] Browser testuale: stampa pagina web su file (PDF)

Messaggioda UbuNuovo » mercoledì 14 marzo 2018, 15:55

Ti riferisci a:
ho aggiunto la verifica sul browser, cambio del comando se Chrome o Chromium o avvertimento e uscita se mancano

L'avvertimento è in caso non sia installato nessuno dei due browser.

Non mi sembra di vedere pagine corrotte, mi dai il numero di una pagina o di un blocco di pagine corrotti?
Tanto per verificare che non sia un fatto casuale. La mia versione con pagine unite pesa 15,0 MB (797 pagine).

562 MB mi sembrano troppi, si riduce con la conversione e riconversione PS<->PDF ?

edit ho provato ad unire i pdf con pdftk e ottengo un file finale uguale a quello creato con pdfunite, anzi di qualche byte inferiore.
Codice: Seleziona tutto
8-) ls -l
totale 29312
-rw------- 1 giovanni giovanni    74643 mar 13 14:17 01_TOC.pdf
-rw------- 1 giovanni giovanni    50018 mar 13 14:17 02_acknowledgements.pdf
-rw------- 1 giovanni giovanni    89372 mar 13 14:17 03_notation.pdf
-rw------- 1 giovanni giovanni   694098 mar 13 14:17 04_intro.pdf
-rw------- 1 giovanni giovanni    26420 mar 13 14:17 05_part_basics.pdf
-rw------- 1 giovanni giovanni   268388 mar 13 14:17 06_linear_algebra.pdf
-rw------- 1 giovanni giovanni   292322 mar 13 14:17 07_prob.pdf
-rw------- 1 giovanni giovanni   290185 mar 13 14:17 08_numerical.pdf
-rw------- 1 giovanni giovanni  1669125 mar 13 14:18 09_ml.pdf
-rw------- 1 giovanni giovanni    31663 mar 13 14:18 10_part_practical.pdf
-rw------- 1 giovanni giovanni   716915 mar 13 14:19 11_mlp.pdf
-rw------- 1 giovanni giovanni   607019 mar 13 14:19 12_regularization.pdf
-rw------- 1 giovanni giovanni   728709 mar 13 14:19 13_optimization.pdf
-rw------- 1 giovanni giovanni  1001604 mar 13 14:20 14_convnets.pdf
-rw------- 1 giovanni giovanni   655683 mar 13 14:20 15_rnn.pdf
-rw------- 1 giovanni giovanni   259370 mar 13 14:20 16_guidelines.pdf
-rw------- 1 giovanni giovanni   626492 mar 13 14:22 17_applications.pdf
-rw------- 1 giovanni giovanni    47922 mar 13 14:22 18_part_research.pdf
-rw------- 1 giovanni giovanni   396026 mar 13 14:22 19_linear_factors.pdf
-rw------- 1 giovanni giovanni   785403 mar 13 14:22 20_autoencoders.pdf
-rw------- 1 giovanni giovanni   780404 mar 13 14:22 21_representation.pdf
-rw------- 1 giovanni giovanni  1483842 mar 13 14:22 22_graphical_models.pdf
-rw------- 1 giovanni giovanni   322026 mar 13 14:22 23_monte_carlo.pdf
-rw------- 1 giovanni giovanni   347486 mar 13 14:23 24_partition.pdf
-rw------- 1 giovanni giovanni   298863 mar 13 14:23 25_inference.pdf
-rw------- 1 giovanni giovanni  1764606 mar 13 14:23 26_generative_models.pdf
-rw------- 1 giovanni giovanni   567797 mar 13 14:24 27_bib.pdf
-rw------- 1 giovanni giovanni    88226 mar 13 14:24 28_index-.pdf
-rwxr-xr-x 1 giovanni giovanni      389 mar 13 14:15 html2pdf_chromium.sh~
-rw-rw-r-- 1 giovanni giovanni 14995251 mar 14 15:24 uniti.pdf
Nel caso in cui sia il primo a rispondere ad una richiesta di aiuto...chiunque abbia una soluzione migliore o anche solo diversa dalla mia è incoraggiato ad intervenire liberamente senza inviarmi alcun messaggio privato. In programmazione è basilare sapere che si può ottenere il medesimo risultato utilizzando metodi diversi.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 3179
Iscrizione: dicembre 2009
Desktop: Mate
Distribuzione: Ubuntu 14.04
Sesso: Maschile

Re: [Bash] Browser testuale: stampa pagina web su file (PDF)

Messaggioda vaeVictis » mercoledì 14 marzo 2018, 17:45

UbuNuovo ha scritto:Ti riferisci a:
ho aggiunto la verifica sul browser, cambio del comando se Chrome o Chromium o avvertimento e uscita se mancano


L'avvertimento è in caso non sia installato nessuno dei due browser.

No, pensavo avessi predisposto qualcosa nel caso in cui l'utente interrompesse l'esecuzione dello script (avevo letto che controllavi se i file erano già presenti).
Io ho inserito una "trap" nel caso di interruzione, con la cancellazione della directory temporanea di lavoro.


Detto questo, ho rifatto il download e mi sono cucito i file sia con pdfunite sia con pdftk.
In effetti vengono due documenti identici. E pesano 15.9 MB.
E il motivo è che i singoli capitoli scaricati in questo modo si perdono svariati pezzi rispetto ai capitoli ottenuti scaricandoseli dal browser grafico.
Senza che controlli tutto, scaricati a mano il capitolo Chapter 1 Introduction, e guarda le pagine 6, 7, 9, 10, 11, 13... e via dicendo
Si perde talmente tanta roba, che il libro intero cucito scaricandosi i file a mano pesa poco più di 500 MB.

Questo metodo non funziona.
Ci metto un croce sopra.
Pirates arrrrrrrrrrr awesome!!!
«I fear not the man who has practiced 10000 kicks once, but I fear the man who has practiced one kick 10000 times.»
Avatar utente
vaeVictis
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 4093
Iscrizione: luglio 2012
Desktop: Unity
Distribuzione: Ubuntu 16.04 64bit

Re: [Bash] Browser testuale: stampa pagina web su file (PDF)

Messaggioda UbuNuovo » mercoledì 14 marzo 2018, 18:19

Porka vakka, non va bene! Alcune immagini vengono ingrandite e si perde il testo sotto.
In altri casi il titolo sparisce.
Comunque non guardare al peso, i pdf salvati a mano fanno schifo, il testo non è vettoriale, prova a fare un forte ingrandimento e vedi la scalettatura, sono pdf pesanti perché è come se fossero foto dell'intera pagina.
Le parti mancanti in realtà non sono molte ma comunque si verificano.
L'unica cosa da provare è il plugin di Firefox che permette di usare i comandi da terminale senza aprire Firefox.
A meno che non ti venga in mete qualche altra cosa... xdotool non va bene, neanche usando le posizioni in percentuale, i vari monitor possono avere rapporti di risoluzione diversi.
Se non puoi provare il plugin posso provarlo io dopo cena (spero).
Nel caso in cui sia il primo a rispondere ad una richiesta di aiuto...chiunque abbia una soluzione migliore o anche solo diversa dalla mia è incoraggiato ad intervenire liberamente senza inviarmi alcun messaggio privato. In programmazione è basilare sapere che si può ottenere il medesimo risultato utilizzando metodi diversi.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 3179
Iscrizione: dicembre 2009
Desktop: Mate
Distribuzione: Ubuntu 14.04
Sesso: Maschile

Re: [Bash] Browser testuale: stampa pagina web su file (PDF)

Messaggioda vaeVictis » mercoledì 14 marzo 2018, 19:58

Se vuoi provarlo, fai pure.
Io lascio stare. Era uno script per facilitare il download del libro, ma se diventa così complesso è meglio che chi lo vuole se lo scarica a mano.
Pirates arrrrrrrrrrr awesome!!!
«I fear not the man who has practiced 10000 kicks once, but I fear the man who has practiced one kick 10000 times.»
Avatar utente
vaeVictis
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 4093
Iscrizione: luglio 2012
Desktop: Unity
Distribuzione: Ubuntu 16.04 64bit

Re: [Bash] Browser testuale: stampa pagina web su file (PDF)

Messaggioda UbuNuovo » giovedì 15 marzo 2018, 0:25

Provato e funge ma c'è un grosso però! Io l'ho provato con Firefox-esr 52.6.0 (64 bit) , con l'attuale versione di Firefox non funge di sicuro in quanto è il classico plugin xul non più supportato da quantum in poi. :devilmad:
Ti incollo i miei appunti, nel plugin va aumentato il numero di versione, e va modificata una voce in about:config.
about:config

in cerca, mettere: "xpinstall.signatures.required"
impostarlo a "false"

Aprire l'archivio xpi, aprire con un editor di testo il file "install.rdf"
aumentare il numero di versione in:
da <em:maxVersion>50</em:maxVersion a <em:maxVersion>56</em:maxVersion

ok installato su firefox-esr 52.6.0 (64 bit)

"Strumenti"->"Componenti" aggiuntivi, dalla scheda "Estensioni" in "Command Line Print" clic su "Preferenze"
il nome del file sarà %TITLE%@%HOST%_%DATE%.%EXT%
impostare Default mode: PDF # NO!
Impostando PDF non si sa se e dove salvi!
.
impostare Default mode: printer

OK SALVATO IN $HOME/PDF/ubaweb_it_-_Le_pagine_di_Ubaweb__le_miniguide______le_bischerate.pdf
cerco con locate
Codice: Seleziona tutto
8-) sudo updatedb
[sudo] password for giovanni:
8-) locate '*ubaweb*it*Le_pagine_di_Ubaweb*.pdf'
/home/giovanni/PDF/ubaweb_it_-_Le_pagine_di_Ubaweb__le_miniguide______le_bischerate.pdf

NIENTE! prima con PDF non è stato salvato.

uso:
firefox -print URL

provo
Codice: Seleziona tutto
8-) firefox-esr -print http://www.ubaweb.it


Provo sul capitolo 1
Codice: Seleziona tutto
firefox-esr -print http://www.deeplearningbook.org/contents/intro.html

Purtroppo la qualità è quella della stampa a mano su pdf, in compenso non ci sono errori!
Nel caso in cui sia il primo a rispondere ad una richiesta di aiuto...chiunque abbia una soluzione migliore o anche solo diversa dalla mia è incoraggiato ad intervenire liberamente senza inviarmi alcun messaggio privato. In programmazione è basilare sapere che si può ottenere il medesimo risultato utilizzando metodi diversi.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 3179
Iscrizione: dicembre 2009
Desktop: Mate
Distribuzione: Ubuntu 14.04
Sesso: Maschile

Re: [Bash] Browser testuale: stampa pagina web su file (PDF)

Messaggioda vaeVictis » giovedì 15 marzo 2018, 16:57

Ti lascio il codice che avevo scritto, ma io alzo le mani come detto.
Pensavo si potesse fare tranquillamente da riga di comando, ma così non ha più senso.
Grazie.
Codice: Seleziona tutto
#!/bin/bash


trap cleanUp INT

function cleanUp {
    rm -r $tempDir
}

function dependences {
    echo "Lo script necessita dei programmi:"
    echo "Google Chrome o Chromium come browser"
    echo "pdfunite per unire i PDF"
    exit 1
}
 
mainURL="http://www.deeplearningbook.org/"
declare -a contents

#
# Controllo e imposto il browser
#
if browser=`command -v google-chrome`
then
    echo "Sto usando il browser Google Chrome"
elif browser=`command -v chromium-browser`
then
    echo "Sto usando il browser Chromium"
else
    dependences
fi

#
#Controllo e imposto pdftk
#
if PDFmerger=`command -v pdfunite`
then
    echo "Sto usando pdfunite per unire il PDF finale"
else
    dependences
fi


#crea una directory temporanea
tempDir=`mktemp -d $HOME/DeepLearningBook.XXXXXX`
if [[ ! "$tempDir" || ! -d "$tempDir" ]]; then
    echo "Non sono riuscito a creare la directory di lavoro"
    exit 1
else
    echo "Ho creato $tempDir"
fi


while read url;
do
    fileName=`sed 's|^.*/||;s|html|pdf|' <<< $url`
    filePath="$tempDir/$fileName"
    $browser --headless --disable-gpu --print-to-pdf=$filePath $url 2> /dev/null
    contents+=("$filePath")
done < <(wget -qO- $mainURL | sed -n "s|.*href=\"\(contents.*\)\".*|$mainURL\1|p")


PDFmerger ${contents[@]} $tempDir/DeepLearningBook.pdf
rm ${contents[@]}

echo "Il documento è stato prodotto nella directory $tempDir"


p.s.: ci sono sicuramente alcuni aspetti da migliorare, nell'ottica di renderlo "riutilizzabile", ma non funzionando bene per il caso specifico ho lasciato stare.
Gli aspetti comunque sono:
1) passare mainURL come variabile allo script.
2) rimaneggiare un po' la modifica fatta con sed per rendere case insensitive la sostituzione di html ed essere sicuri di beccarlo come estensione e non prima.
3) passare una variabile per far capire quali link "sedare". Al momento sono quelli che contengono "contents", ma si può generalizzare a seconda delle esigenze.
Ce ne sono altri, ma dato che non funziona, non mi avventuro.
Pirates arrrrrrrrrrr awesome!!!
«I fear not the man who has practiced 10000 kicks once, but I fear the man who has practiced one kick 10000 times.»
Avatar utente
vaeVictis
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 4093
Iscrizione: luglio 2012
Desktop: Unity
Distribuzione: Ubuntu 16.04 64bit

Re: [Bash] Browser testuale: stampa pagina web su file (PDF)

Messaggioda UbuNuovo » venerdì 16 marzo 2018, 2:14

Infatti, se non si trova un modo di fare la conversione in modo decente, non vale la pena!
:ciao:
Nel caso in cui sia il primo a rispondere ad una richiesta di aiuto...chiunque abbia una soluzione migliore o anche solo diversa dalla mia è incoraggiato ad intervenire liberamente senza inviarmi alcun messaggio privato. In programmazione è basilare sapere che si può ottenere il medesimo risultato utilizzando metodi diversi.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 3179
Iscrizione: dicembre 2009
Desktop: Mate
Distribuzione: Ubuntu 14.04
Sesso: Maschile

Precedente

Torna a Programmazione

Chi c’è in linea

Visualizzano questa sezione: 0 utenti registrati e 4 ospiti