Sto tentando di aggiungere una semplice "pagina x di y" a un rapporto realizzato con ReportLab. Ho trovato this old post al riguardo, ma forse sei anni dopo è emerso qualcosa di più semplice? ^^;
Ho trovato this recipe troppo, ma quando lo uso, il PDF risultante manca le immagini ..Visualizzazione del conteggio delle pagine con ReportLab
risposta
Sono stato in grado di implementare l'approccio di NumberedCanvas da ActiveState. E 'stato molto facile da fare e non ha cambiato gran parte del mio codice esistente. Tutto quello che dovevo fare era aggiungere la classe NumberedCanvas e aggiungere l'attributo canvasmaker quando costruisci il mio documento. Ho cambiato anche le misure di cui è stato visualizzato il "X di Y":
self.doc.build(pdf)
divenne
self.doc.build(pdf, canvasmaker=NumberedCanvas)
doc è un BaseDocTemplate e pdf è la mia lista di elementi fluidi.
Le immagini si sono presentate normalmente con questo approccio? – Joril
Ho immagini che mostrano sul pdf senza problemi. Se hai problemi con le immagini, potresti elaborare o iniziare una nuova domanda? – adam
Sembra che questa tecnica interrompa i collegamenti intra-documenti. Quando l'ho usato, tutti i collegamenti da una parte del documento a un'altra parte iniziarono a navigare verso la parte inferiore della prima pagina, piuttosto che andare ai loro obiettivi reali. – CoreDumpError
solo di scavare un po 'di codice per voi, usiamo questo:
SimpleDocTemplate(...).build(self.story,
onFirstPage=self._on_page,
onLaterPages=self._on_page)
Ora self._on_page
è un metodo che viene chiamato per ogni pagina come:
def _on_page(self, canvas, doc):
# ... do any additional page formatting here for each page
print doc.page
Sì, ma la parte difficile è come capire la parte "di y" :) Cioè, la numero totale di pagine – Joril
uso doc.multiBuild
e nel metodo pagina intestazione (definito da "onLaterPages ="):
global TOTALPAGES
if doc.page > TOTALPAGES:
TOTALPAGES = doc.page
else:
canvas.drawString(270 * mm, 5 * mm, "Seite %d/%d" % (doc.page,TOTALPAGES))
funziona solo se hai più pass – jake77
- 1. Più pagine usando Reportlab - Django
- 2. conteggio preciso delle pagine visualizzate in Django
- 3. Come ottenere il conteggio delle pagine utilizzando Kaminari
- 4. Incremento di un conteggio di pagine con vernice e ESI
- 5. Conteggio delle cartelle con PowerShell
- 6. MsElementi del conteggio delle condizioni del padre
- 7. Trova il conteggio delle pagine PDF con il nodo (su Windows)
- 8. Conteggio delle stringhe nella piscina con println
- 9. Problemi con il conteggio delle faccette
- 10. Visualizzazione dei risultati del conteggio totale usando prefetch di Typeahead.js
- 11. Python Reportlab Page Break
- 12. Utilizzo del filtro con conteggio
- 13. Visualizzazione del conteggio errato dopo l'importazione della tabella in Hive
- 14. Visualizzazione di semplici pagine HTML DJango
- 15. Visualizzazione delle proprietà del sistema Java con Swing
- 16. Miglior strategia di conteggio delle immagini
- 17. sedano conteggio delle attività
- 18. Conteggio delle ritrasmissioni TCP
- 19. Visualizzazione dell'albero delle dipendenze completo con Leiningen
- 20. Ciclo automatico delle pagine Web
- 21. Trasparenza in PNG con reportlab 2.3
- 22. Modelli pdf per fatture con ReportLab
- 23. ReportLab: funziona con caratteri cinesi/Unicode
- 24. conteggio delle relazioni all'interno del loop nel ramoscello
- 25. Django e Reportlab Domanda
- 26. Esiste un modo migliore per ottenere il conteggio delle pagine da un PrintDocument rispetto a questo?
- 27. visualizzazione delle immagini con ashx Handler
- 28. Determinare il conteggio delle righe del ripetitore in asp.net
- 29. Come tenere traccia del conteggio delle istanze di un tipo?
- 30. vantaggi del design senza tablature delle pagine web?
Ho avuto questo stesso problema. Ecco la ricetta di ActiveState che utilizza NumberedCanvas che funziona effettivamente: http://code.activestate.com/recipes/576832/ – Esteban