martedì 11 dicembre 2018

Da HTML a PDF con WkHtmlToX

Delphi WkHtmlToX Library

In un progetto su cui sto lavorando da qualche tempo avevo bisogno di trasformare file HTML in PDF. Cercando un po’ in giro mi sono imbattuto in  WkHtmlToPdf. WkHtmlToPDF e WkHtmlToImage sono due tool open source (LGPLv3.0) che permettono, tramite il rendering engine WebKit, di trasformare delle pagine HTML in PDF o immagini.

Scaricando il software si trovano sia i due tool a linea di comando che una DLL. Dovendolo integrare in un progetto Delphi ho cominciato a tradurre l’API e di seguito a scriverci sopra un piccolo wrapper che ne semplificasse l’uso. Trovate il tutto su GitHub pubblicato con licenza apache (fondamentalmente potete farci quello che volete). Nella directory sample ci sono 4 demo:

  • ApiDemo: programma di test che usa direttamente le API di WkHtmlToX
  • WrapperDemo: stesso esempio ma che usa la classe IWkHtmlToPdf
  • ThreadedDemo: un esempio di implementazione thread-safe
  • StreamDemo: esempio che usa un HTML in memoria invece che su file

Configurazione


Il tool comprende una miriade di opzioni di configurazione:

  • Dimensione e orientamento della pagina
  • Impostazione dei dpi
  • Impostazione dei margini della pagina
  • Possibilità di personalizzare intestazione e piè pagina
  • Abilitare o meno JavaScript
  • Possibilità di usare un CSS personalizzato
  • Ignorare lo sfondo della pagina

Per l’elenco completo dei parametri di configurazione potete far riferimento a questa pagina:
https://wkhtmltopdf.org/libwkhtmltox/pagesettings.html

Problemi noti


Il tool funziona piuttosto bene, anche con pagine complesse, in effetti il motore di rendering è lo stesso di google chrome. Ci sono un paio di problemi. Uno è che la libreria non è thread-safe. Nell’esempio ThreadedDemo trovate un workaround che permette di usare WkHtmlToX  in più thread senza bisogno di lock. L’altro problema è che se invece di convertire un file gli passate l’HTML come stringa o in uno stream non viene rilevato correttamente l’encoding. Anche questo problema può essere aggirato aggiungendo un tag <meta> alla pagina. Trovate un esempio del demo StreamDemo.

Download


Pagina del progetto: https://github.com/lminuti/Delphi-WkHtmlToX
Pagina dove scaricare la DLL: https://wkhtmltopdf.org/


lunedì 23 luglio 2018

Benvenuta Delphi Community Edition!


Embarcadero ha detto addio all'edizione Starter! A sostituirla la nuovissima Delphi (e C++ Builder) Community Edition!

La Community Edition è dedicata a tutti i programmatori giovani, agli studenti, alle startup e alle piccole società e organizzazioni che vogliano sperimentare ed imparare a sviluppare utilizzando uno strumento altamente professionale. E' installabile anche da programmatori Delphi e C++ Builder che lavorano per una società ma che a casa vogliono usarlo per progetti personali o per partecipare a progetti Open Source.

Come per la Starter, anche per la Community Edition ci sono alcune restrizioni relative all'uso per scopi commerciali: puoi sfruttare questa edizione ad uso personale o commerciale con un limite di 5.000$ di entrate annue, superata questa cifra o il numero di 5 programmatori, dovrai acquistare un'edizione completa come la Professional, l'Enterprise o l'Architect.


Ma non preoccuparti, quando i tuoi progetti spiccheranno il volo potrai continuare a lavorare con un'edizione a pagamento ma con la base di codice che ha già creato.

La Delphi Community Edition è un IDE completo che grazie a tutte le sue funzionalità permette di creare applicazioni iOS, Android, Windows e macOS da un'unica base di codice Delphi.


Con questa mossa Embarcadero ritorna a spingere per un'adozione massiccia di Delphi da parte di studenti, hobbisti ed in generale tutti quelli che vogliono provare a programmare con questo fantastico strumento di sviluppo. Se vuoi provare immediatamente la Community Edition di Delphi o C++ Builder, scaricala, guarda il video per l'installazione e... inizia a creare le app che hai in mente!





Go Delphi forever!

lunedì 9 aprile 2018

Idera, Inc.: cosa ci aspetta nel 2018




Quali sono stati i trend di sviluppo del 2017 e cosa ci aspetta nel 2018?

Lo scopriamo con il "pronostico" di Atanas Popov, Embarcadero General Manager:


Il nostro scopo è quello di fornire i migliori strumenti per lo sviluppo, il database management e per i testing.
Monitoriamo con attenzione gli sviluppi del settore per assicurarci che i nostri prodotti si evolvano e garantiscano valore ai migliaia di utenti sparsi in tutto il mondo. 

La nostra attività ha avuto un notevole successo nel 2017 e Delphi continua a guadagnare terreno in maniera incredibile!
Inoltre, lo scorso agosto, abbiamo acquisito Sencha ExtJS combinando il nostro principale framework commerciale JS e gli strumenti per lo sviluppo web nel nostro portfolio.

Visto che il 2018 è appena iniziato, è il momento giusto per rivisitare i trend del 2017 del nostro settore e provare a fare alcune predizioni per il futuro. 
Perché si sa, gli sviluppatori domineranno il mondo!

La strategia da adottare è rendere le cose sempre più semplici per gli sviluppatori che premendo un solo pulsante potranno avere una serie di strumenti integrati. 

[...]

Quest'anno inizieremo anche a vedere un aumento nell'utilizzo di Progressive Web App  (PWA) con aggiornamenti nei browser mobile. Gli sviluppatori Web adotteranno velocemente le tecnologie PWA con servizio di assistenza, notifiche e sincronizzazione, e creeranno Web App PWA moderne, veloci ed affidabili come le app native.

Inoltre le aziende cercheranno un equilibrio tra uno sviluppo veloce su molte piattaforme rispetto all'esperienza nativa. I framework Web come Reactive Native (e ExtJs) continueranno a diventare sempre più popolari, ma lo saranno anche in altri framework nativi come Xamarina e FireMonkey (FMX).
Anche gli strumenti nativi per Android e iOS continueranno a migliorare.

Vedremo anche un ritorno all'IDE di programmazione orientata agli oggetti e gli IDE avranno più componenti di servizi cloud con una facile implementazione e opzioni di integrazione.

Di base possiamo dire che gli sviluppatori hanno a disposizione moltissime scelte e che questa tendenza non può che aumentare. Gli strumenti di sviluppo Idera, Inc.  offrono le migliori soluzioni al mondo per aiutare gli sviluppatori a creare delle cose straordinarie. Non vedo l'ora di vedere cosa ci sarà di nuovo nel corso del nuovo anno!

Fonte: https://community.embarcadero.com/article/16604-idera-inc-2018-predictions


martedì 20 febbraio 2018

UPGRADE: ultima occasione!


Attraverso la voce del General Manager Atanas Popov, Embarcadero ha annunciato un’importante novità: a partire dal 31 marzo 2018 verranno dismessi gli SKU relativi agli upgrade.

Dal 1° aprile 2018 (e no, non è uno scherzo!) resteranno disponibili solamente le nuove licenze e l’Update Subscription, un abbonamento annuale che consente di mantenere il proprio prodotto aggiornato alle ultime release.

Prima di ritirare l’upgrade, Embarcadero concede a tutti gli utenti che non l’avessero ancora fatto di aggiornare la propria licenza tramite un "Upgrade Amnesty". Un’ultima occasione per trasformare la propria datata versione precedente alla XE6 in una 10.2 Tokyo.


Dal post di Atanas Popov del 22/01/2018:

Cari clienti,


Alcuni anni fa abbiamo introdotto il nostro programma di Update Subscription. [...] La nostra roadmap e la strategia di realese dei prodotti sono allineate con questa filosofia, poiché ci impegniamo a rendere molto più semplici gli aggiornamenti alle nuove versioni.

[...]

Il nostro obiettivo è rendere più facile per tutti usufruire delle ultime funzionalità e correzioni che abbiamo sviluppato. Oggi, la maggior parte dei nostri clienti si è spostata su Update Subscription e lo SKU Upgrade non ha molto senso.

Questo trimestre (che termina il 31 marzo) sarà l'ultimo ad offrire aggiornamenti. In linea con la nostra pratica di avvisi anticipati, vogliamo lasciare un margine di tempo ai clienti che per qualsiasi ragione volessero effettuare l’upgrade per aggiornare il proprio prodotto.
Abbiamo eseguito diverse Amnesty (vale a dire la possibilità di eseguire l'aggiornamento da versioni datate) negli ultimi due anni e ne eseguiremo un'altra mentre ritiriamo questo SKU. 

[...]

Insieme, abbiamo fatto grandi passi avanti nella divulgazione di RAD Studio per lo sviluppo di Delphi e C ++. Monitoriamo attentamente le offerte competitive e siamo fermamente convinti che il valore che i clienti ricevono con i nostri prodotti sia di gran lunga superiore al costo. Spero che tu ti senta allo stesso modo.

Sono davvero entusiasta di alcune delle prossime versioni. Sia il 10.2.3, questo trimestre, sia le numerose release future, offriranno funzionalità e miglioramenti di qualità eccezionale. Il 2018 sarà un altro anno che vedrà Delphi e C ++ Builder prendere il volo! 

Go RAD Studio !!!

FONTE: https://community.embarcadero.com/article/articles-support/16598-upgrade-sku-to-be-discontinued-in-q4

Se hai una licenza precedente alla XE6, adesso è davvero il momento (l'ultimo momento) per aggiornarla tramite un upgrade!