2014-09-19 15:01 GMT+02:00 Daniele Varrazzo <p...@develer.com>: > On 2014-09-19 13:32, Manlio Perillo wrote: > >> 2014-09-19 14:08 GMT+02:00 Daniele Varrazzo <p...@develer.com>: >> >> [...] >>> >> >> Proprio pochi minuti fa mi e' venuto in mente che sia chordlab che rst2pdf >> >>> usano reportlab come motore di rendering. Anziche' usare chordlab come >>> processo esterno potrei usarlo come libreria e scrivere nello stesso >>> documento che sto generando. >>> >>> >>> Piccola nota: il suggerimento che ti avevo dato era esattamente quanto hai scritto sopra. Usare chordlab come libreria che generi un flowable di reportlab da includere nel tuo documento.
> Potrebbe essere una alternativa, ma significa fare a meno di reST ed usare >> reportlab per la gestione del documento finale. >> > > Perdendo reST per la gestione del documento finale non mi perdo molto: > docutils e' debole in questo e Sphinx in effetti e' nato proprio per > coprire questa mancanza (ed e' stato quello il momento in cui si e' potuto > usare reST per generare la documentazione di roba grossa come Python). Si, infatti stavo assumendo l'uso di sphinx; solo dopo la precedente risposta ho notato che rst2pdf è un package esterno; ma il discorso non cambia. > Gia' usare rst2pdf mi consente di avere di piu', e questo non lo perderei: > la struttura del documento rimane quella che avevo in mente: > > titolo > ------ > > Qualche parola di circostanza > > .. song:: the-man-who-sold-the-world.cho > .. song:: karma-police.cho > .. song:: personal-jesus.cho > > Ringraziamenti finali > > solo che la direttiva song, invece di generare un pdf in un file > temporaneo da unire al documento in una fase successiva al rendering, > consiste nel richiamare chordlib (la libreria di chordlab), passargli il > "canvas" o quello che sia di reportlab, e fargli fare la sua cosa li'. > > Si, quello che intendevo. Io avevo complicato un pò le cose, facendo fare a chordlab il parsing + rendering di un solo elemento o linea (in modo da avere un formato reST pseudo-intermedio per il formato cho) ma meglio fargli renderizzare tutto il documento a meno che non si debba personalizzare qualcosa. Salto il resto perchè direi che stiamo dicendo la stessa cosa. Non ero stato preciso, ma non volevo suggerti di reimplementare tutto quello che fa chordlab nella tua direttiva, ma di usare chordlab come libreria, opportunamente rifattorizzato. > [...] > Credo tu non abbia nemmeno bisogno di generare il documento reST >> intermedio, ma puoi generare l'AST direttamente e renderizzarlo in PDF. >> Rispetto a reportlab almeno hai tutte le feature "document oriented" di >> reST. >> >> Tutto questo è solo ad intuito, non avendo mai utilizzato reST per fare >> cose più complicate di un rst2html di un documento standard, ma mi >> stupirei >> se non fosse possibile. >> > > Diciamo che il mio compito e' semplificato dal fatto che il songsheet e' > sempre una pagina a se', mai completamente integrato nel documento. La > strada di avere un unico AST globale, Non devi avere proprio un AST globale. Ripendandoci, come ho già scritto, ti basta un elemento SongBook da includere nell'AST di reST. Tale elemento contiene solo il path al song book, e lo puoi renderizzare usando chordlab come libreria facendogli usare lo stesso canvas che usa rst2pdf. comprendente sia le parti di documento che quelle dei songsheet, e' di > sicuro "elegante", ma se mi costringe a risolvere problemi "specializzati" > tentando di usare una struttura e un renderer generico potrebbe non essere > la piu' semplice. Su questo c'e' il fattore risparmio, per cui se ho gia' > queste due toolchain funzionanti: > > [documento .rst] -> (rst2pdf+reportlab) -> [file PDF] > [documento .cho] -> (chordlab+reportlab) -> [file PDF] > > uno dove prova ad integrarsi? Pigro 1: coi pdf. Pigro 2: con reportlab. > L'alternativa: > > [documento .cho] -> [documento .rst+cho] -> (chorst2pdf) -> [file PDF] > > Si, ma ti costringe a fare cose orrende come parsare i documenti PDF generat per patcharli (se ho capito bene). > [...] Ciao Manlio
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python