Blogging — 26 giugno 2009, 9:47 — 8 Commenti

Convertire in PDF i propri articoli in modo intelligente

Alcuni utenti mi hanno chiesto come riesco a mettere a disposizione la versione PDF di tutti gli articoli di Dynamick, compreso questo (guardate in fondo all’articolo). La risposta è semplice: utilizzo “as PDF“, un plugin che si occupa di tutto. La versione che è su Dynamick è però leggermente modificata per correggere alcune problematiche che presenta.

articoli-documenti-pdf Il problema principale è dovuto al massiccio utilizzo di potenza di calcolo per generare il PDF e, visto che vengono generati al volo, lo spreco di risorse è deletereo. Il problema si accuisce nel caso della presenza di uno spider che potrebbe richiedere la generazione di un numero notevole di PDF contemporaneamente, rischiando così di far crollare il server.

Ho pensato allora di apportare una piccola modifica che permette di salvare il PDF alla sua prima generazione e di fornire questo file a tutte le successive richieste. Inoltre ho cercato di salvare il file con un nome “amico” dei motori, contenente la versione sanitarizzata del titolo del post. Per esempio, se il titolo fosse “Chrome diventa virale“, il pdf verrà salvato con questo nome: chrome-diventa-virale.pdf.

Come procedere

Non dovete far altro che installare il plugin, e sostituire il file generate.php con questo file (tasto destro del mouse sul link, “salva destinazione con nome”), opportunamente modificato. Ricordatevi di creare la cartella pdf nella document root del vostro blog con i permessi di scrittura (777).

Rimane ancora un bug, peraltro ancora irrisolto che blocca lo script in presenza di immagini esterne al dominio. Aspetto nei vostri commenti la soluzione al problema!

Articoli che potrebbero interessarti...

8 Commenti

  1. [...] In una settimana sconvolta dai lutti che hanno colpito lo starsystem USA vediamo un po’ che è successo nella blogopalla di casa nostra… Twitter & FF accelerator per Explorer 8 Anche Gioxx ha fatto il suo esperimento SEO Twitter dall’altare alla polvere e ritorno Convertire i propri post in PDF [...]

  2. Ringranzio personalmente dynamick.it per aver reso disponibile questa opportunità e aver modificato il plugin appositamente per evitare i problemi di cui ha discusso nell’articolo.

    Mi riservo di installare e verificarne il funzionamento.. peccato per il bug rimasto irrisolto :)

    BUon lavoro :)

  3. Lelomar scrive:

    bello….peccato che la generazione del pdf su questo articolo non funzioni!!!
    ;)

  4. Mick scrive:

    Hai ragione Lelomar: ho notato un altro problema del plugin AS-PDF. Non riesce a generare il documento quando c’è un’immagine di tipo PNG. L’ho sostituita con un’immagine JPEG e ora viene generato correttamente. Grazie per la segnalazione.

  5. Erriko scrive:

    Ciao e complimenti per il tuo blog. Devo dire molto interessante su diversi fronti.

    Riguardo la questione plugin per generare i pdf, personalmente ho un approccio un pochino più “rude” alle cose.

    In questo caso ho fatto così: avevo già installato il plugin wp-print, al quale ho cambiato il css e parte del codice del plugin stesso in modo da visualizzarmi bene la pagina (comprese le immagini, cosa che appena installato non faceva).
    Ho piazzato su di un sottodominio dompdf.

    Fatto ciò è bastato mettere dentro single.php un link del tipo: http://urldidompdf/dompdf.php?input_file=&paper=a4&output_file=.pdf

    E’ stato leggermente macchinoso (non più di tanto) ma funziona bene: provare per credere ;)

    Se vuoi posso scriverti un guest post a riguardo ;-)

  6. Erriko scrive:

    Mi sono accorto che l’url che ho riportato è stato troncato per quanto riguarda il codice php.
    Lo scrivo così:

    http://urldidompdf/dompdf.php?input_file=?php the_permalink(); ?/print/&paper=a4&output_file=?php the_title(); ?.pdf

    Ovviamente sapete dove mettere gli :-)

  7. Mick scrive:

    @Erriko: ben volentieri, aspetto il tuo guest post, allora!

  8. Erriko scrive:

    Provvederò al più presto ;-)

Lascia il tuo commento

Ricerca
giovedì 09 settembre 2010